diff options
author | Aurélien Bompard <aurelien@bompard.org> | 2013-05-17 16:00:14 +0200 |
---|---|---|
committer | Aurélien Bompard <aurelien@bompard.org> | 2013-05-17 16:17:38 +0200 |
commit | 3759498f4ecf5cae88eecf197b1f2cf075bc0565 (patch) | |
tree | d4b5cb4697b3d338fb955a71b0ad9b3f8b4e96d1 /hyperkitty/views/pages.py | |
parent | 3640b5249f1afa767dbd997daca628ba18ab949b (diff) | |
download | hyperkitty-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.py | 28 |
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') |