From 3bdc9e4c4b46b3f8f953b8f48ee81a72fae3a2dd Mon Sep 17 00:00:00 2001 From: Luan Date: Mon, 16 Dec 2013 16:17:45 -0200 Subject: [PATCH] Adding description on subscriptions manage page --- src/accounts/templates/accounts/manage_subscriptions.html | 2 +- src/accounts/utils/mailman.py | 13 +++++++++---- src/accounts/views.py | 9 ++++++--- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/accounts/templates/accounts/manage_subscriptions.html b/src/accounts/templates/accounts/manage_subscriptions.html index 5da66ea..9aa357c 100644 --- a/src/accounts/templates/accounts/manage_subscriptions.html +++ b/src/accounts/templates/accounts/manage_subscriptions.html @@ -21,7 +21,7 @@ {% for list, checked in lists %}
{% endfor %} diff --git a/src/accounts/utils/mailman.py b/src/accounts/utils/mailman.py index 4883b17..b09e5e8 100644 --- a/src/accounts/utils/mailman.py +++ b/src/accounts/utils/mailman.py @@ -44,18 +44,23 @@ def update_subscription(address, lists): subscribe(maillist, address) -def address_lists(address): +def address_lists(address, description=None): url = get_url() + + kwargs = {'address': address} + if description: + kwargs.update(description=description) + try: - lists = requests.get(url, timeout=TIMEOUT, params={'address': address}) + lists = requests.get(url, timeout=TIMEOUT, params=kwargs) except requests.exceptions.RequestException: return [] return lists.json() -def all_lists(): - return address_lists('') +def all_lists(*args, **kwargs): + return address_lists('', *args, **kwargs) def user_lists(user): diff --git a/src/accounts/views.py b/src/accounts/views.py index e298cbd..e62159b 100644 --- a/src/accounts/views.py +++ b/src/accounts/views.py @@ -174,17 +174,20 @@ class ManageUserSubscriptionsView(UserProfileBaseMixin, DetailView): user = self.get_object() emails = user.emails.values_list('address', flat=True) - all_lists = mailman.all_lists() + all_lists = mailman.all_lists(description=1) for email in emails: lists = [] lists_for_address = mailman.address_lists(email) - for listname in all_lists: + for listname, description in all_lists: if listname in lists_for_address: checked = True else: checked = False - lists.append((listname, checked)) + lists.append(( + {'listname': listname: 'description': description}, + checked + )) context['membership'].update({email: lists}) -- libgit2 0.21.2