From 3759498f4ecf5cae88eecf197b1f2cf075bc0565 Mon Sep 17 00:00:00 2001 From: Aurélien Bompard Date: Fri, 17 May 2013 16:00:14 +0200 Subject: Load the lists descriptions from Mailman dynamically --- hyperkitty/views/pages.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'hyperkitty/views/pages.py') 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 . # # Author: Aamir Khan +# Author: Aurelien Bompard # + +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') -- cgit