Procházet zdrojové kódy

Register custom actions for DataSource, Device, and VirtualMachine

Jason Novinger před 1 týdnem
rodič
revize
63fe14cf6b
3 změnil soubory, kde provedl 23 přidání a 0 odebrání
  1. 7 0
      netbox/core/apps.py
  2. 8 0
      netbox/dcim/apps.py
  3. 8 0
      netbox/virtualization/apps.py

+ 7 - 0
netbox/core/apps.py

@@ -25,12 +25,19 @@ class CoreConfig(AppConfig):
         from core.checks import check_duplicate_indexes  # noqa: F401
         from netbox import context_managers  # noqa: F401
         from netbox.models.features import register_models
+        from utilities.permissions import ModelAction, register_model_actions
 
         from . import data_backends, events, search  # noqa: F401
+        from .models import DataSource
 
         # Register models
         register_models(*self.get_models())
 
+        # Register custom permission actions
+        register_model_actions(DataSource, [
+            ModelAction('sync', help_text=_('Synchronize data from remote source')),
+        ])
+
         # Register core events
         EventType(OBJECT_CREATED, _('Object created')).register()
         EventType(OBJECT_UPDATED, _('Object updated')).register()

+ 8 - 0
netbox/dcim/apps.py

@@ -8,8 +8,11 @@ class DCIMConfig(AppConfig):
     verbose_name = "DCIM"
 
     def ready(self):
+        from django.utils.translation import gettext as _
+
         from netbox.models.features import register_models
         from utilities.counters import connect_counters
+        from utilities.permissions import ModelAction, register_model_actions
 
         from . import search, signals  # noqa: F401
         from .models import CableTermination, Device, DeviceType, ModuleType, RackType, VirtualChassis
@@ -17,6 +20,11 @@ class DCIMConfig(AppConfig):
         # Register models
         register_models(*self.get_models())
 
+        # Register custom permission actions
+        register_model_actions(Device, [
+            ModelAction('render_config', help_text=_('Render device configuration')),
+        ])
+
         # Register denormalized fields
         denormalized.register(CableTermination, '_device', {
             '_rack': 'rack',

+ 8 - 0
netbox/virtualization/apps.py

@@ -5,8 +5,11 @@ class VirtualizationConfig(AppConfig):
     name = 'virtualization'
 
     def ready(self):
+        from django.utils.translation import gettext as _
+
         from netbox.models.features import register_models
         from utilities.counters import connect_counters
+        from utilities.permissions import ModelAction, register_model_actions
 
         from . import search, signals  # noqa: F401
         from .models import VirtualMachine
@@ -16,3 +19,8 @@ class VirtualizationConfig(AppConfig):
 
         # Register counters
         connect_counters(VirtualMachine)
+
+        # Register custom permission actions
+        register_model_actions(VirtualMachine, [
+            ModelAction('render_config', help_text=_('Render VM configuration')),
+        ])