summaryrefslogtreecommitdiffstats
path: root/hyperkitty/views/pages.py
diff options
context:
space:
mode:
authorAurélien Bompard <aurelien@bompard.org>2013-05-17 16:00:14 +0200
committerAurélien Bompard <aurelien@bompard.org>2013-05-17 16:17:38 +0200
commit3759498f4ecf5cae88eecf197b1f2cf075bc0565 (patch)
treed4b5cb4697b3d338fb955a71b0ad9b3f8b4e96d1 /hyperkitty/views/pages.py
parent3640b5249f1afa767dbd997daca628ba18ab949b (diff)
downloadhyperkitty-3759498f4ecf5cae88eecf197b1f2cf075bc0565.tar.gz
hyperkitty-3759498f4ecf5cae88eecf197b1f2cf075bc0565.tar.xz
hyperkitty-3759498f4ecf5cae88eecf197b1f2cf075bc0565.zip
Load the lists descriptions from Mailman dynamically
Diffstat (limited to 'hyperkitty/views/pages.py')
-rw-r--r--hyperkitty/views/pages.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/hyperkitty/views/pages.py b/hyperkitty/views/pages.py
index d3f2b0b..6ec7f7b 100644
--- a/hyperkitty/views/pages.py
+++ b/hyperkitty/views/pages.py
@@ -17,10 +17,18 @@
# HyperKitty. If not, see <http://www.gnu.org/licenses/>.
#
# Author: Aamir Khan <syst3m.w0rm@gmail.com>
+# Author: Aurelien Bompard <abompard@fedoraproject.org>
#
+
+import urllib2
+
+import django.utils.simplejson as json
+
from django.shortcuts import render
from django.conf import settings
+from django.http import HttpResponse
+from mailmanclient import Client
from hyperkitty.lib import get_store
from forms import SearchForm
@@ -35,3 +43,23 @@ def index(request):
'search_form': SearchForm(auto_id=False),
}
return render(request, "index.html", context)
+
+
+def list_properties(request):
+ """Get JSON encoded list properties"""
+ store = get_store(request)
+ lists = store.get_lists()
+ client = Client('%s/3.0' % settings.MAILMAN_REST_SERVER,
+ settings.MAILMAN_API_USER, settings.MAILMAN_API_PASS)
+ props = {}
+ for ml in lists:
+ try:
+ mm_list = client.get_list(ml.name)
+ except urllib2.HTTPError:
+ continue
+ props[ml.name] = {
+ "display_name": mm_list.display_name,
+ "description": mm_list.settings["description"],
+ }
+ return HttpResponse(json.dumps(props),
+ mimetype='application/javascript')