diff --git a/HISTORY.rst b/HISTORY.rst index 2c240ce5e5..8643eb5a80 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -9,6 +9,7 @@ Defaults to mayan/error.log. - Add support logging request exceptions. - Add document list item view. +- Sort setting by namespace label and by global name second. 2.5.2 (2017-07-08) ================== diff --git a/mayan/apps/smart_settings/classes.py b/mayan/apps/smart_settings/classes.py index b7f89c26c8..28cc3e668b 100644 --- a/mayan/apps/smart_settings/classes.py +++ b/mayan/apps/smart_settings/classes.py @@ -32,7 +32,7 @@ class Namespace(object): @classmethod def get_all(cls): - return cls._registry.values() + return sorted(cls._registry.values(), key=lambda x: x.label) @classmethod def get(cls, name): @@ -54,15 +54,19 @@ class Namespace(object): self.name = name self.label = label self.__class__._registry[name] = self - self.settings = [] + self._settings = [] def add_setting(self, **kwargs): return Setting(namespace=self, **kwargs) def invalidate_cache(self): - for setting in self.settings: + for setting in self._settings: setting.invalidate_cache() + @property + def settings(self): + return sorted(self._settings, key=lambda x: x.global_name) + @python_2_unicode_compatible class Setting(object): @@ -88,7 +92,7 @@ class Setting(object): self.default = default self.help_text = help_text self.loaded = False - namespace.settings.append(self) + namespace._settings.append(self) self.__class__._registry[global_name] = self def __str__(self):