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

Closes #15942: Refactor settings_and_registry() context processor

Jeremy Stretch 1 год назад
Родитель
Сommit
41504425ac
2 измененных файлов с 42 добавлено и 7 удалено
  1. 38 6
      netbox/netbox/context_processors.py
  2. 4 1
      netbox/netbox/settings.py

+ 38 - 6
netbox/netbox/context_processors.py

@@ -1,18 +1,50 @@
 from django.conf import settings as django_settings
 
 from netbox.config import get_config
-from netbox.registry import registry
+from netbox.registry import registry as registry_
 
+__all__ = (
+    'config',
+    'preferences',
+    'registry',
+    'settings',
+)
 
-def settings_and_registry(request):
+
+def config(request):
     """
-    Expose Django settings and NetBox registry stores in the template context. Example: {{ settings.DEBUG }}
+    Adds NetBox configuration parameters to the template context. Example: {{ config.BANNER_LOGIN }}
     """
-    user_preferences = request.user.config if request.user.is_authenticated else {}
     return {
-        'settings': django_settings,
         'config': get_config(),
-        'registry': registry,
+    }
+
+
+def preferences(request):
+    """
+    Adds preferences for the current user (if authenticated) to the template context.
+    Example: {{ preferences|get_key:"pagination.placement" }}
+    """
+    user_preferences = request.user.config if request.user.is_authenticated else {}
+    return {
         'preferences': user_preferences,
         'htmx_navigation': user_preferences.get('ui.htmx_navigation', False) == 'true'
     }
+
+
+def registry(request):
+    """
+    Adds NetBox registry items to the template context. Example: {{ registry.models.core }}
+    """
+    return {
+        'registry': registry_,
+    }
+
+
+def settings(request):
+    """
+    Adds Django settings to the template context. Example: {{ settings.DEBUG }}
+    """
+    return {
+        'settings': django_settings,
+    }

+ 4 - 1
netbox/netbox/settings.py

@@ -409,7 +409,10 @@ TEMPLATES = [
                 'django.template.context_processors.media',
                 'django.contrib.auth.context_processors.auth',
                 'django.contrib.messages.context_processors.messages',
-                'netbox.context_processors.settings_and_registry',
+                'netbox.context_processors.settings',
+                'netbox.context_processors.config',
+                'netbox.context_processors.registry',
+                'netbox.context_processors.preferences',
             ],
         },
     },