from mailman.client import Client from settings import API_USER, API_PASS, MAILMAN_THEME from django.utils.translation import gettext as _ from urllib2 import HTTPError def lists_of_domain(request): """ This function is a wrapper to render a list of all available List registered to the current request URL """ domain_lists = [] domainname = None message = "" if "HTTP_HOST" in request.META.keys() :#TODO only lists of current domains if possible #get the URL web_host = request.META["HTTP_HOST"].split(":")[0] domainname = "unregistered Domain" #querry the Domain object try: c = Client('http://localhost:8001/3.0', API_USER, API_PASS) try: d = c.get_domain(None,web_host) #workaround LP:802971 - only lists of the current domain #todo a8 domainname= d.email_host for list in c.lists: if list.host_name == domainname: domain_lists.append(list) except HTTPError, e: domain_lists = c.lists message = str(e.code) + _(" - Accesing from an unregistered Domain - showing all lists") except AttributeError, e: message="REST API not found / Offline" #return a Dict with the key used in templates return {"lists":domain_lists,"domain":domainname, "message":message} def render_MAILMAN_THEME(request): """ This function is a wrapper to render the Mailman Theme Variable from Settings """ return {"MAILMAN_THEME":MAILMAN_THEME} def extend_ajax(request): """ This function checks if the request was made using AJAX Using Ajax template_extend will base_ajax.html else it will be base.html """ if request.is_ajax(): extend_template = "mailman-django/base_ajax.html" else: extend_template = "mailman-django/base.html" return {"extend_template":extend_template}