X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fipsilon.git;a=blobdiff_plain;f=ipsilon%2Fadmin%2Fcommon.py;h=2c8ff89a7fdb5a00ecaf5b5666fb4fa1e194bdca;hp=424103ec4582050984b5daedbe4600de7c5ff8bf;hb=14e8ecd7cf8ea8d342eac5c4c66b764b3a8e2dbb;hpb=d7e4bbbf32e5bfae87bfa686fbb5f86efcb04ee1 diff --git a/ipsilon/admin/common.py b/ipsilon/admin/common.py index 424103e..2c8ff89 100755 --- a/ipsilon/admin/common.py +++ b/ipsilon/admin/common.py @@ -32,22 +32,38 @@ class AdminPluginPage(Page): self.url = '%s/%s' % (parent.url, obj.name) self.facility = parent.facility self.menu = [parent] + self.back = parent.url # Get the defaults self.plugin_config = obj.get_config_desc() if not self.plugin_config: - self.plugin_config = [] + self.plugin_config = dict() # Now overlay the actual config for option in self.plugin_config: self.plugin_config[option][2] = obj.get_config_value(option) + self.options_order = [] + if hasattr(obj, 'conf_opt_order'): + self.options_order = obj.conf_opt_order + + # append any undefined options + add = [] + for k in self.plugin_config.keys(): + if k not in self.options_order: + add.append(k) + if len(add): + add.sort() + for k in add: + self.options_order.append(k) + @admin_protect def GET(self, *args, **kwargs): return self._template('admin/plugin_config.html', title=self.title, name='admin_%s_%s_form' % (self.facility, self._obj.name), - menu=self.menu, action=self.url, + menu=self.menu, action=self.url, back=self.back, + options_order=self.options_order, options=self.plugin_config) @admin_protect