Source code for ferrosoft.apps.emiflow.apps

"""Django application configuration for the emiflow app.

Wires up settings-menu entries (under the *Emissions* category) and
hooks emiflow updater into ferrobase_update management command.
"""
from django.apps import AppConfig
from django.utils.translation import gettext_lazy as _

from ferrosoft.apps.ferrobase.apps import MenuItem


[docs] class EmiflowConfig(AppConfig): """Django AppConfig for the emiflow application. Registers the emiflow settings menu items with the shared :class:`~ferrosoft.apps.ferrobase.apps.SettingsMenuRegistry` and hooks emiflow updater into ferrobase_update management command. """ default_auto_field = "django.db.models.BigAutoField" name = "ferrosoft.apps.emiflow" verbose_name = _("Emiflow") #: Menu items contributed to the *Emissions* category of the settings #: navigation. Each item is gated by the listed model permissions. SETTINGS_MENU = [ MenuItem( category_name=_("Emissions"), display_name=_("Emitters"), permissions=["ferrobase.view_material"], view_name="emiflow:emitter_index", ), MenuItem( category_name=_("Emissions"), display_name=_("Transport Defaults"), permissions=["emiflow.view_transportchaindefaults"], view_name="emiflow:settings_transport_defaults", ), MenuItem( category_name=_("Emissions"), display_name=_("Lifecycle Categories"), permissions=["emiflow.view_lifecyclecategory"], view_name="emiflow:lifecyclecategory_index", ), MenuItem( category_name=_("Emissions"), display_name=_("Energy Carriers"), permissions=["emiflow.view_energycarrier"], view_name="emiflow:energycarrier_index", ), ]
[docs] def ready(self): """Hook the emiflow updater into ferrobase_update and contribute settings menu entries.""" from ferrosoft.apps.emiflow.services import update from ferrosoft.apps.ferrobase.apps import SettingsMenuRegistry update.init() SettingsMenuRegistry.add_items(*self.SETTINGS_MENU)