Commit d1f1b014af5fdc9e1b94d989d3e7bf05b6905395
1 parent
0a74c018
Exists in
master
and in
39 other branches
Fixed MR suggestions
Signed-off-by: Gustavo Jaruga <darksshades@gmail.com> Signed-off-by: Siqueira Melo <rodrigosiqueiramelo@gmail.com>
Showing
4 changed files
with
33 additions
and
52 deletions
Show diff stats
colab/accounts/views.py
... | ... | @@ -65,12 +65,7 @@ class UserProfileDetailView(UserProfileBaseMixin, DetailView): |
65 | 65 | |
66 | 66 | count_types = OrderedDict() |
67 | 67 | |
68 | - # TODO: remove when mailman becomes a proxied plugin | |
69 | - messages = Message.objects.filter(from_address__user__pk=user.pk) | |
70 | - count_types[_('Emails')] = messages.count() | |
71 | - | |
72 | 68 | collaborations, count_types_extras = get_collaboration_data(user) |
73 | - collaborations.extend(messages) | |
74 | 69 | |
75 | 70 | collaborations.sort(key=lambda elem: elem.modified, reverse=True) |
76 | 71 | |
... | ... | @@ -84,6 +79,7 @@ class UserProfileDetailView(UserProfileBaseMixin, DetailView): |
84 | 79 | query = query.order_by('-received_time') |
85 | 80 | context['emails'] = query[:10] |
86 | 81 | |
82 | + messages = Message.objects.filter(from_address__user__pk=user.pk) | |
87 | 83 | count_by = 'thread__mailinglist__name' |
88 | 84 | context['list_activity'] = dict(messages.values_list(count_by) |
89 | 85 | .annotate(Count(count_by)) | ... | ... |
colab/home/views.py
... | ... | @@ -14,12 +14,8 @@ def dashboard(request): |
14 | 14 | hottest_threads = [t.latest_message for t in highest_score_threads] |
15 | 15 | |
16 | 16 | latest_threads = Thread.objects.all()[:6] |
17 | - latest_results, count_types = get_collaboration_data() | |
18 | 17 | |
19 | - # NOTE: This code will cease to exist when super_archives | |
20 | - # become a plugin | |
21 | - messages = [t.latest_message for t in latest_threads] | |
22 | - latest_results.extend(messages) | |
18 | + latest_results, count_types = get_collaboration_data() | |
23 | 19 | latest_results.sort(key=lambda elem: elem.modified, reverse=True) |
24 | 20 | |
25 | 21 | context = { | ... | ... |
colab/proxy/utils/models.py
... | ... | @@ -3,35 +3,21 @@ from django.conf import settings |
3 | 3 | from colab.accounts.models import User |
4 | 4 | |
5 | 5 | |
6 | -class CollaborationModel(models.Model): | |
6 | +class Collaboration(models.Model): | |
7 | 7 | ''' |
8 | 8 | Class to define the fields of the collaboration block |
9 | 9 | that are displayed at dashboard and profile pages. |
10 | 10 | ''' |
11 | 11 | |
12 | - @property | |
13 | - def verbose_name(self): | |
14 | - raise NotImplemented | |
15 | - | |
16 | - @property | |
17 | - def tag(self): | |
18 | - return None | |
19 | - | |
20 | - @property | |
21 | - def title(self): | |
22 | - raise NotImplemented | |
23 | - | |
24 | - @property | |
25 | - def description(self): | |
26 | - return None | |
27 | - | |
28 | - @property | |
29 | - def url(self): | |
30 | - return None | |
12 | + tag = None | |
13 | + title = None | |
14 | + description = None | |
15 | + url = None | |
16 | + modified = None | |
17 | + type = None | |
31 | 18 | |
32 | - @property | |
33 | - def modified(self): | |
34 | - return None | |
19 | + user = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, | |
20 | + on_delete=models.SET_NULL) | |
35 | 21 | |
36 | 22 | @property |
37 | 23 | def modified_by(self): |
... | ... | @@ -45,15 +31,11 @@ class CollaborationModel(models.Model): |
45 | 31 | return self.user.get_absolute_url() |
46 | 32 | return None |
47 | 33 | |
48 | - @property | |
49 | - def type(self): | |
50 | - return None | |
51 | - | |
52 | - user = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, | |
53 | - on_delete=models.SET_NULL) | |
54 | - | |
55 | 34 | def update_user(self, user_name): |
56 | - self.user = User.objects.filter(username=user_name).last() | |
35 | + try: | |
36 | + self.user = User.objects.get(username=user_name) | |
37 | + except User.DoesNotExist: | |
38 | + self.user = None | |
57 | 39 | |
58 | 40 | class Meta: |
59 | 41 | abstract = True | ... | ... |
colab/search/utils.py
... | ... | @@ -6,8 +6,8 @@ from collections import OrderedDict |
6 | 6 | from django.core.cache import cache |
7 | 7 | from django.utils.translation import ugettext as _ |
8 | 8 | from django.conf import settings |
9 | -from colab.super_archives.models import Thread | |
10 | -from colab.proxy.utils.models import CollaborationModel | |
9 | +from colab.super_archives.models import Thread, Message | |
10 | +from colab.proxy.utils.models import Collaboration | |
11 | 11 | |
12 | 12 | |
13 | 13 | def get_collaboration_data(filter_by_user=None): |
... | ... | @@ -20,29 +20,36 @@ def get_collaboration_data(filter_by_user=None): |
20 | 20 | count_types = OrderedDict() |
21 | 21 | count_types[_('Emails')] = Thread.objects.count() |
22 | 22 | |
23 | + if filter_by_user: | |
24 | + messages = Message.objects.filter(from_address__user__pk=filter_by_user.pk) | |
25 | + else: | |
26 | + latest_threads = Thread.objects.all()[:6] | |
27 | + messages = [t.latest_message for t in latest_threads] | |
28 | + | |
29 | + latest_results.extend(messages) | |
30 | + | |
23 | 31 | app_names = settings.PROXIED_APPS.keys() |
24 | 32 | |
25 | 33 | for app_name in app_names: |
26 | - module = importlib | |
27 | - module = \ | |
28 | - module.import_module('colab.proxy.{}.models'.format(app_name)) | |
34 | + module = importlib \ | |
35 | + .import_module('colab.proxy.{}.models'.format(app_name)) | |
29 | 36 | |
30 | 37 | for module_item_name in dir(module): |
31 | 38 | module_item = getattr(module, module_item_name) |
32 | 39 | if not inspect.isclass(module_item): |
33 | 40 | continue |
34 | - if not issubclass(module_item, CollaborationModel): | |
41 | + if not issubclass(module_item, Collaboration): | |
35 | 42 | continue |
36 | - if module_item == CollaborationModel: | |
43 | + if module_item == Collaboration: | |
37 | 44 | continue |
38 | 45 | |
39 | - elements = module_item.objects | |
46 | + queryset = module_item.objects | |
40 | 47 | |
41 | 48 | if filter_by_user: |
42 | - elements = elements.filter( | |
49 | + elements = queryset.filter( | |
43 | 50 | user__username=filter_by_user) |
44 | 51 | else: |
45 | - elements = elements.all() | |
52 | + elements = queryset.all() | |
46 | 53 | |
47 | 54 | latest_results.extend(elements) |
48 | 55 | elements_count = elements.count() |
... | ... | @@ -50,7 +57,7 @@ def get_collaboration_data(filter_by_user=None): |
50 | 57 | if elements_count > 1: |
51 | 58 | verbose_name = module_item._meta.verbose_name_plural.title() |
52 | 59 | else: |
53 | - verbose_name = module_item._meta.verbose_name_plural.title() | |
60 | + verbose_name = module_item._meta.verbose_name.title() | |
54 | 61 | |
55 | 62 | if populate_count_types: |
56 | 63 | count_types[verbose_name] = elements_count | ... | ... |