Commit d1f1b014af5fdc9e1b94d989d3e7bf05b6905395

Authored by Gust
1 parent 0a74c018

Fixed MR suggestions

Signed-off-by: Gustavo Jaruga <darksshades@gmail.com>
Signed-off-by: Siqueira Melo <rodrigosiqueiramelo@gmail.com>
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
... ...