diff --git a/admin/templatetags/admin_extras.py b/admin/templatetags/admin_extras.py index cdc0a1dec..5e435c7e1 100644 --- a/admin/templatetags/admin_extras.py +++ b/admin/templatetags/admin_extras.py @@ -88,6 +88,35 @@ def loadadminextmenu(perms): return render_to_string('main/menulist.html', {"menu" : menu, "perms" : perms}) +@register.simple_tag +def param(app, definition): + print definition + result = """
+ """ % definition["name"] + if definition["type"] in ["string", "int"]: + value = definition.has_key("value") \ + and definition["value"] or definition["default"] + name = "%s.%s" % (app, definition["name"]) + result += """ + """ % (name, name, value) + if definition["type"] in ["list"]: + result += """ + +""" + + if definition.has_key("help"): + result += """ + + + """ % (definition["help"], _("Help")) + result += """ +
+""" + return result + @register.filter def gender(value, target): if genders.has_key(value): diff --git a/admin/views.py b/admin/views.py index 5127f1c74..be9cf960f 100644 --- a/admin/views.py +++ b/admin/views.py @@ -408,15 +408,18 @@ def deletepermission(request, mbox_id, group): @login_required @user_passes_test(lambda u: u.is_superuser) def viewparameters(request): - params = {} - for app, app_params in parameters._params.iteritems(): - params[app] = {} - for pname, pdef in app_params.iteritems(): - params[app][pname] = pdef - params[app][pname]["value"] = parameters.get(app, pname) + apps = sorted(parameters._params.keys()) + gparams = [] + for app in apps: + tmp = {"name" : app, "params" : []} + for p in sorted(parameters._params[app]): + tmp["params"] += [{"name" : p, "value" : parameters.get(app, p), + "help" : parameters._params[app][p]["help"], + "type" : parameters._params[app][p]["type"]}] + gparams += [tmp] return _render(request, 'admin/parameters.html', { - "params" : params + "gparams" : gparams }) @login_required diff --git a/extensions/webmail/main.py b/extensions/webmail/main.py index 00cdb3ebb..d5fda042a 100644 --- a/extensions/webmail/main.py +++ b/extensions/webmail/main.py @@ -20,8 +20,14 @@ def init(): events.register("UserLogin", userlogin) parameters.register("webmail", "IMAP_SERVER", "string", "127.0.0.1", help=_("Address of your IMAP server")) + parameters.register("webmail", "IMAP_SECURED", "list", "No", + help=_("Use a secure connexion to access IMAP server")) + parameters.register("webmail", "IMAP_PORT", "int", "143", + help=_("Listening port of your IMAP server")) parameters.register("webmail", "SMTP_SERVER", "string", "127.0.0.1", help=_("Address of your SMTP server")) + parameters.register("webmail", "SMTP_PORT", "int", "25", + help=_("Listening port of your SMTP server")) def urls(): return (r'^mailng/webmail/', diff --git a/templates/admin/parameters.html b/templates/admin/parameters.html index 92637c6ce..f8f01c661 100644 --- a/templates/admin/parameters.html +++ b/templates/admin/parameters.html @@ -8,23 +8,11 @@ {% url admin.views.saveparameters as action %}
- {% for app, ps in params.items %} -

{{ app }}

+ {% for app in gparams %} +

{{ app.name }}

- {% for name, def in ps.items %} -
- - {% if def.value %} - - {% else %} - - {% endif %} - {% if def.help %} - - - - {% endif %} -
+ {% for p in app.params %} + {% param app.name p %} {% endfor %}
{% endfor %}