utils.py
1.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# -*- coding: utf-8 -*-
from django.db.models import Count
# from proxy.trac.models import (Ticket, Wiki)
# from proxy.trac.models import (Revision, WikiCollabCount, TicketCollabCount)
from colab.accounts.models import User
# def get_wiki_counters():
# return {author: count for author, count in
# WikiCollabCount.objects.values_list()}
# def get_revision_counters():
# return {
# author: count for author, count in Revision.objects.values_list(
# 'author'
# ).annotate(count=Count('author'))
# }
# def get_ticket_counters():
# return {author: count for author, count in
# TicketCollabCount.objects.values_list()}
def get_users_counters():
# wiki_counters = get_wiki_counters()
# revision_counters = get_revision_counters()
# ticket_counters = get_ticket_counters()
users_counters = {}
for user in User.objects.annotate(message_count=Count('emails__message')):
users_counters[user.username] = {
'messages': user.message_count,
# 'wikis': wiki_counters.get(user.username, 0),
# 'revisions': revision_counters.get(user.username, 0),
# 'tickets': ticket_counters.get(user.username, 0),
}
return users_counters