From e1d73a8e70bcb7e4270abec07a7c238133552298 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Tue, 5 Jan 2016 08:51:14 +0100 Subject: [PATCH] Refactor applications loading. --- modoboa/core/apps.py | 68 ++++++++++++++++++++++++++++++++++++++++++ modoboa/limits/apps.py | 31 +++++++++++++++++++ 2 files changed, 99 insertions(+) create mode 100644 modoboa/core/apps.py create mode 100644 modoboa/limits/apps.py diff --git a/modoboa/core/apps.py b/modoboa/core/apps.py new file mode 100644 index 000000000..70d611fb5 --- /dev/null +++ b/modoboa/core/apps.py @@ -0,0 +1,68 @@ +"""Core config for admin.""" + +from django.apps import AppConfig + + +BASE_EVENTS = [ + "CanCreate", + + "AccountCreated", + "AccountAutoCreated", + "AccountModified", + "AccountDeleted", + "AccountExported", + "AccountImported", + "PasswordUpdated", + "ExtraAccountActions", + "RoleChanged", + "GetExtraRoles", + "GetExtraRolePermissions", + "PasswordChange", + "UserCanSetRole", + + "InitialDataLoaded", + + "UserMenuDisplay", + "AdminMenuDisplay", + "GetStaticContent", + + "UserLogin", + "UserLogout", + + "GetAnnouncement", + + "TopNotifications", + "ExtraAdminContent", + + "ExtraUprefsRoutes", + "ExtraUprefsJS", + + "GetExtraParameters", + "ExtraFormFields", + "SaveExtraFormFields", +] + + +def load_core_settings(): + """Load core settings. + + This function must be manually called (see :file:`urls.py`) in + order to load base settings. + """ + from django.utils.translation import ugettext_lazy + from modoboa.lib import parameters, events + from .app_settings import GeneralParametersForm + + parameters.register(GeneralParametersForm, ugettext_lazy("General")) + events.declare(BASE_EVENTS) + + +class CoreConfig(AppConfig): + + """App configuration.""" + + name = "modoboa.core" + verbose_name = "Modoboa core" + + def ready(self): + load_core_settings() diff --git a/modoboa/limits/apps.py b/modoboa/limits/apps.py new file mode 100644 index 000000000..f6401a959 --- /dev/null +++ b/modoboa/limits/apps.py @@ -0,0 +1,31 @@ +"""App config for limits.""" + +from django.apps import AppConfig + + +EVENTS = [ + 'GetExtraLimitTemplates' +] + + +def load_limits_settings(): + """Load settings.""" + from django.utils.translation import ugettext as _ + from modoboa.lib import events, parameters + from .app_settings import ParametersForm + + parameters.register(ParametersForm, _("Limits")) + events.declare(EVENTS) + from . import controls + from . import general_callbacks + + +class LimitsConfig(AppConfig): + + """App configuration.""" + + name = "modoboa.limits" + verbose_name = "Modoboa admin limits" + + def ready(self): + load_limits_settings()