Commit 4aebe5e144bff62e3e1af7865f605c5b07f16da7

Authored by Sergio Oliveira
1 parent e2f67731

Listing membership on user profile

src/accounts/models.py
1 1
2 import urlparse 2 import urlparse
  3 +import requests
3 4
4 from django.db import models 5 from django.db import models
  6 +from django.conf import settings
5 from django.contrib.auth.models import AbstractUser 7 from django.contrib.auth.models import AbstractUser
6 from django.core.urlresolvers import reverse 8 from django.core.urlresolvers import reverse
7 9
@@ -24,6 +26,15 @@ class User(AbstractUser): @@ -24,6 +26,15 @@ class User(AbstractUser):
24 def facebook_link(self): 26 def facebook_link(self):
25 return urlparse.urljoin('https://www.facebook.com', self.facebook) 27 return urlparse.urljoin('https://www.facebook.com', self.facebook)
26 28
  29 + def mailinglists(self):
  30 + list_set = set()
  31 + for email in self.emails.all():
  32 + lists = requests.get(settings.MAILMAN_API_URL, timeout=1,
  33 + params={'address': email.address})
  34 + list_set.update(lists.json())
  35 + return tuple(list_set)
  36 +
  37 +
27 # We need to have `email` field set as unique but Django does not 38 # We need to have `email` field set as unique but Django does not
28 # support field overriding (at least not until 1.6). 39 # support field overriding (at least not until 1.6).
29 # The following workaroud allows to change email field to unique 40 # The following workaroud allows to change email field to unique
src/accounts/templates/accounts/user_detail.html
@@ -60,6 +60,15 @@ @@ -60,6 +60,15 @@
60 {% endif %} 60 {% endif %}
61 {% endif %} 61 {% endif %}
62 </ul> 62 </ul>
  63 +
  64 + {% if user_.mailinglists %}
  65 + <b>{% trans 'Subscribes: ' %}</b>
  66 + {% for list in user_.mailinglists %}
  67 + <span class="label label-primary">{{ list }}</span>
  68 + {% endfor %}
  69 + {% endif %}
  70 +
  71 + <div class="divider"></div>
63 </div> 72 </div>
64 73
65 <div class="col-lg-4 col-md-4 col-sm-8"> 74 <div class="col-lg-4 col-md-4 col-sm-8">
src/accounts/views.py
@@ -8,11 +8,11 @@ from collections import OrderedDict @@ -8,11 +8,11 @@ from collections import OrderedDict
8 from django.contrib import messages 8 from django.contrib import messages
9 from django.db.models import Count 9 from django.db.models import Count
10 from django.contrib.auth import get_user_model 10 from django.contrib.auth import get_user_model
11 -from django.views.generic import DetailView, UpdateView  
12 from django.utils.translation import ugettext as _ 11 from django.utils.translation import ugettext as _
13 from django.shortcuts import render, redirect 12 from django.shortcuts import render, redirect
14 from django.core.urlresolvers import reverse 13 from django.core.urlresolvers import reverse
15 from django.core.exceptions import PermissionDenied 14 from django.core.exceptions import PermissionDenied
  15 +from django.views.generic import DetailView, UpdateView
16 16
17 from haystack.query import SearchQuerySet 17 from haystack.query import SearchQuerySet
18 18