Browse Source

Indicate when dynamic parameters are defined statically

jeremystretch 4 years ago
parent
commit
561e06e7f0
1 changed files with 10 additions and 1 deletions
  1. 10 1
      netbox/extras/forms/config.py

+ 10 - 1
netbox/extras/forms/config.py

@@ -1,4 +1,5 @@
 from django import forms
 from django import forms
+from django.conf import settings
 
 
 from netbox.config import get_config, PARAMS
 from netbox.config import get_config, PARAMS
 
 
@@ -18,10 +19,18 @@ class FormMetaclass(forms.models.ModelFormMetaclass):
         # Emulate a declared field for each supported configuration parameter
         # Emulate a declared field for each supported configuration parameter
         param_fields = {}
         param_fields = {}
         for param in PARAMS:
         for param in PARAMS:
+            is_static = hasattr(settings, param.name)
             help_text = f'{param.description}<br />' if param.description else ''
             help_text = f'{param.description}<br />' if param.description else ''
-            help_text += f'Current value: <strong>{getattr(config, param.name)}</strong>'
+            value = getattr(config, param.name)
+            if value:
+                help_text += f'Current value: <strong>{value}</strong>'
+                if is_static:
+                    help_text += ' (defined statically)'
+                elif value == param.default:
+                    help_text += ' (default)'
             field_kwargs = {
             field_kwargs = {
                 'required': False,
                 'required': False,
+                'disabled': is_static,
                 'label': param.label,
                 'label': param.label,
                 'help_text': help_text,
                 'help_text': help_text,
             }
             }