From 0f4eea7030e600426d007e731493807d356cf94d Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Fri, 8 Apr 2011 16:35:02 +0200 Subject: [PATCH] The order parameters are displayed now depends on their declaration order. close #126 --- admin/views.py | 3 ++- extensions/webmail/main.py | 17 +++++++++-------- lib/parameters.py | 8 +++++++- userprefs/views.py | 2 +- 4 files changed, 19 insertions(+), 11 deletions(-) diff --git a/admin/views.py b/admin/views.py index 59644fb0d..8d398e48b 100644 --- a/admin/views.py +++ b/admin/views.py @@ -504,7 +504,8 @@ def viewparameters(request, tplname='admin/parameters.html'): gparams = [] for app in apps: tmp = {"name" : app, "params" : []} - for p in sorted(parameters._params[app]['A']): + for p in parameters._params_order[app]['A']: + param_def = parameters._params[app]['A'][p] newdef = {"name" : p, "value" : parameters.get_admin(p, app=app), diff --git a/extensions/webmail/main.py b/extensions/webmail/main.py index 1e1a1cff8..fd20cfe77 100644 --- a/extensions/webmail/main.py +++ b/extensions/webmail/main.py @@ -22,18 +22,22 @@ def init(): parameters.register_admin("SMTP_SERVER", type="string", deflt="127.0.0.1", help=_("Address of your SMTP server")) - parameters.register_admin("SMTP_PORT", type="int", deflt="25", - help=_("Listening port of your SMTP server")) - parameters.register_admin("SMTP_AUTHENTICATION", type="list_yesno", - deflt="no", - help=_("Server needs authentication")) parameters.register_admin("SMTP_SECURED_MODE", type="list", values=[("none", _("None")), ("starttls", "STARTTLS"), ("ssl", "SSL/TLS")], deflt="none", help=_("Use a secured connection to access SMTP server")) + parameters.register_admin("SMTP_PORT", type="int", deflt="25", + help=_("Listening port of your SMTP server")) + parameters.register_admin("SMTP_AUTHENTICATION", type="list_yesno", + deflt="no", + help=_("Server needs authentication")) + + parameters.register_user("MESSAGES_PER_PAGE", type="int", deflt=40, + label=_("Number of displayed emails per page"), + help=_("Sets the maximum number of messages displayed in a page")) parameters.register_user("REFRESH_INTERVAL", type="int", deflt=300, label=_("Listing refresh rate"), help=_("Automatic folder refresh rate (in seconds)")) @@ -57,9 +61,6 @@ def init(): label=_("Default message display mode"), values=[("html", "html"), ("plain", "text")], help=_("The default mode used when displaying a message")) - parameters.register_user("MESSAGES_PER_PAGE", type="int", deflt=40, - label=_("Number of displayed emails per page"), - help=_("Sets the maximum number of messages displayed in a page")) parameters.register_user("ENABLE_LINKS", type="list_yesno", deflt="no", label=_("Enable HTML links display"), help=_("Enable/Disable HTML links display")) diff --git a/lib/parameters.py b/lib/parameters.py index 040778464..f6ba8c127 100644 --- a/lib/parameters.py +++ b/lib/parameters.py @@ -16,6 +16,7 @@ Only super users will be able to access this part of the web interface. """ _params = {} +_params_order = {} _levels = {'A' : 'admin', 'U' : 'user'} class NotDefined(Exception): @@ -40,11 +41,16 @@ def __register(app, level, name, **kwargs): """ if not app in _params.keys(): _params[app] = {} + _params_order[app] = {} for lvl in _levels.keys(): _params[app][lvl] = {} + _params_order[app][lvl] = [] if not level in _levels.keys(): return - _params[app][level][name] = kwargs + if _params[app][level].has_key(name): + return + _params[app][level][name] = {} + _params_order[app][level] += [name] for k, v in kwargs.iteritems(): _params[app][level][name][k] = v diff --git a/userprefs/views.py b/userprefs/views.py index e1257783a..00c975e4a 100644 --- a/userprefs/views.py +++ b/userprefs/views.py @@ -44,7 +44,7 @@ def preferences(request): if not len(parameters._params[app]['U']): continue tmp = {"name" : app, "params" : []} - for p in sorted(parameters._params[app]['U']): + for p in parameters._params_order[app]['U']: param_def = parameters._params[app]['U'][p] newdef = copy.deepcopy(param_def) newdef["name"] = p