Просмотр исходного кода

Closes #18072: Remove support for single model registration from PluginTemplateExtension

Jeremy Stretch 1 год назад
Родитель
Сommit
7e669d1a14
2 измененных файлов с 10 добавлено и 13 удалено
  1. 2 10
      netbox/netbox/plugins/registration.py
  2. 8 3
      netbox/netbox/plugins/templates.py

+ 2 - 10
netbox/netbox/plugins/registration.py

@@ -1,7 +1,7 @@
 import inspect
 import inspect
-import warnings
 
 
 from django.utils.translation import gettext_lazy as _
 from django.utils.translation import gettext_lazy as _
+
 from netbox.registry import registry
 from netbox.registry import registry
 from .navigation import PluginMenu, PluginMenuButton, PluginMenuItem
 from .navigation import PluginMenu, PluginMenuButton, PluginMenuItem
 from .templates import PluginTemplateExtension
 from .templates import PluginTemplateExtension
@@ -35,16 +35,8 @@ def register_template_extensions(class_list):
             )
             )
 
 
         if template_extension.models:
         if template_extension.models:
-            # Registration for multiple models
+            # Registration for specific models
             models = template_extension.models
             models = template_extension.models
-        elif template_extension.model:
-            # Registration for a single model (deprecated)
-            warnings.warn(
-                "PluginTemplateExtension.model is deprecated and will be removed in a future release. Use "
-                "'models' instead.",
-                DeprecationWarning
-            )
-            models = [template_extension.model]
         else:
         else:
             # Global registration (no specific models)
             # Global registration (no specific models)
             models = [None]
             models = [None]

+ 8 - 3
netbox/netbox/plugins/templates.py

@@ -11,8 +11,14 @@ class PluginTemplateExtension:
     This class is used to register plugin content to be injected into core NetBox templates. It contains methods
     This class is used to register plugin content to be injected into core NetBox templates. It contains methods
     that are overridden by plugin authors to return template content.
     that are overridden by plugin authors to return template content.
 
 
-    The `model` attribute on the class defines the which model detail page this class renders content for. It
-    should be set as a string in the form '<app_label>.<model_name>'. render() provides the following context data:
+    The `models` attribute on the class defines the which specific model detail pages this class renders content
+    for. It should be defined as a list of strings in the following form:
+
+        models = ['<app_label>.<model_name>', '<app_label>.<model_name>']
+
+    If `models` is left as None, the extension will render for _all_ models.
+
+    The `render()` method provides the following context data:
 
 
     * object - The object being viewed (object views only)
     * object - The object being viewed (object views only)
     * model - The type of object being viewed (list views only)
     * model - The type of object being viewed (list views only)
@@ -21,7 +27,6 @@ class PluginTemplateExtension:
     * config - Plugin-specific configuration parameters
     * config - Plugin-specific configuration parameters
     """
     """
     models = None
     models = None
-    model = None  # Deprecated; use `models` instead
 
 
     def __init__(self, context):
     def __init__(self, context):
         self.context = context
         self.context = context