Skip to content

Commit

Permalink
Merge pull request #132 from colab/fix-dashboard
Browse files Browse the repository at this point in the history
Moved collaboration to super_archives and plugins
  • Loading branch information
MatheusFaria committed Dec 8, 2015
2 parents 3ecd9d8 + bcbde82 commit ee4a2fd
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 35 deletions.
3 changes: 2 additions & 1 deletion colab/accounts/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@

from colab.super_archives.models import (EmailAddress,
EmailAddressValidation)
from colab.search.utils import get_collaboration_data, get_visible_threads
from colab.plugins.utils.collaborations import (get_collaboration_data,
get_visible_threads)
from colab.accounts.models import User

from .forms import (UserCreationForm, ListsForm, UserUpdateForm)
Expand Down
2 changes: 1 addition & 1 deletion colab/home/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from django.shortcuts import render
from django.http import HttpResponse, Http404

from colab.search.utils import get_collaboration_data
from colab.plugins.utils.collaborations import get_collaboration_data
from colab.super_archives.models import Thread
from colab.accounts.utils import mailman
from colab.accounts.models import User
Expand Down
37 changes: 4 additions & 33 deletions colab/search/utils.py → colab/plugins/utils/collaborations.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,39 +6,10 @@
from django.core.cache import cache
from django.utils.translation import ugettext as _
from django.conf import settings
from django.db.models import Q as Condition

from colab.super_archives.models import Thread, Message
from colab.plugins.utils.models import Collaboration
from colab.accounts.utils import mailman


def get_visible_threads_queryset(logged_user):
queryset = Thread.objects
listnames_for_user = []
if logged_user:
lists_for_user = mailman.get_user_mailinglists(logged_user)
listnames_for_user = mailman.extract_listname_from_list(lists_for_user)

user_lists = Condition(mailinglist__name__in=listnames_for_user)
public_lists = Condition(mailinglist__is_private=False)
queryset = Thread.objects.filter(user_lists | public_lists)

return queryset


def get_visible_threads(logged_user, filter_by_user=None):
thread_qs = get_visible_threads_queryset(logged_user)

if filter_by_user:
message_qs = Message.objects.filter(thread__in=thread_qs)
messages = message_qs.filter(
from_address__user__pk=filter_by_user.pk)
else:
latest_threads = thread_qs.all()
messages = [t.latest_message for t in latest_threads]

return messages
from colab.super_archives.utils.collaborations import (get_visible_threads,
count_threads)


def get_collaboration_data(logged_user, filter_by_user=None):
Expand All @@ -52,8 +23,8 @@ def get_collaboration_data(logged_user, filter_by_user=None):
if count_types is None:
populate_count_types = True
count_types = OrderedDict()
visible_threads = get_visible_threads(logged_user, filter_by_user)
count_types[_('Emails')] = len(visible_threads)

count_types[_('Emails')] = count_threads()

messages = get_visible_threads(logged_user, filter_by_user)

Expand Down
37 changes: 37 additions & 0 deletions colab/super_archives/utils/collaborations.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@

from django.db.models import Q

from colab.accounts.utils import mailman
from colab.super_archives.models import Thread, Message


def count_threads():
return Thread.objects.count()


def get_visible_threads_queryset(logged_user):
queryset = Thread.objects
listnames_for_user = []
if logged_user:
lists_for_user = mailman.get_user_mailinglists(logged_user)
listnames_for_user = mailman.extract_listname_from_list(lists_for_user)

user_lists = Q(mailinglist__name__in=listnames_for_user)
public_lists = Q(mailinglist__is_private=False)
queryset = Thread.objects.filter(user_lists | public_lists)

return queryset


def get_visible_threads(logged_user, filter_by_user=None):
thread_qs = get_visible_threads_queryset(logged_user)

if filter_by_user:
message_qs = Message.objects.filter(thread__in=thread_qs)
messages = message_qs.filter(
from_address__user__pk=filter_by_user.pk)
else:
latest_threads = thread_qs.all()
messages = [t.latest_message for t in latest_threads]

return messages

0 comments on commit ee4a2fd

Please sign in to comment.