diff --git a/netbox/extras/forms/config.py b/netbox/extras/forms/config.py
deleted file mode 100644
index 4a7dba614..000000000
--- a/netbox/extras/forms/config.py
+++ /dev/null
@@ -1,82 +0,0 @@
-from django import forms
-from django.conf import settings
-
-from netbox.config import get_config, PARAMS
-
-__all__ = (
- 'ConfigRevisionForm',
-)
-
-
-EMPTY_VALUES = ('', None, [], ())
-
-
-class FormMetaclass(forms.models.ModelFormMetaclass):
-
- def __new__(mcs, name, bases, attrs):
-
- # Emulate a declared field for each supported configuration parameter
- param_fields = {}
- for param in PARAMS:
- field_kwargs = {
- 'required': False,
- 'label': param.label,
- 'help_text': param.description,
- }
- field_kwargs.update(**param.field_kwargs)
- param_fields[param.name] = param.field(**field_kwargs)
- attrs.update(param_fields)
-
- return super().__new__(mcs, name, bases, attrs)
-
-
-class ConfigRevisionForm(forms.BaseModelForm, metaclass=FormMetaclass):
- """
- Form for creating a new ConfigRevision.
- """
- class Meta:
- widgets = {
- 'comment': forms.Textarea(),
- }
-
- def __init__(self, *args, **kwargs):
- super().__init__(*args, **kwargs)
-
- # Append current parameter values to form field help texts and check for static configurations
- config = get_config()
- for param in PARAMS:
- value = getattr(config, param.name)
- is_static = hasattr(settings, param.name)
- if value:
- help_text = self.fields[param.name].help_text
- if help_text:
- help_text += '
' # Line break
- help_text += f'Current value: {value}'
- if is_static:
- help_text += ' (defined statically)'
- elif value == param.default:
- help_text += ' (default)'
- self.fields[param.name].help_text = help_text
- if is_static:
- self.fields[param.name].disabled = True
-
- def save(self, commit=True):
- instance = super().save(commit=False)
-
- # Populate JSON data on the instance
- instance.data = self.render_json()
-
- if commit:
- instance.save()
-
- return instance
-
- def render_json(self):
- json = {}
-
- # Iterate through each field and populate non-empty values
- for field_name in self.declared_fields:
- if field_name in self.cleaned_data and self.cleaned_data[field_name] not in EMPTY_VALUES:
- json[field_name] = self.cleaned_data[field_name]
-
- return json
diff --git a/netbox/extras/forms/model_forms.py b/netbox/extras/forms/model_forms.py
index 6da17f9ed..621052c96 100644
--- a/netbox/extras/forms/model_forms.py
+++ b/netbox/extras/forms/model_forms.py
@@ -383,7 +383,7 @@ class JournalEntryForm(NetBoxModelForm):
EMPTY_VALUES = ('', None, [], ())
-class FormMetaclass(forms.models.ModelFormMetaclass):
+class ConfigFormMetaclass(forms.models.ModelFormMetaclass):
def __new__(mcs, name, bases, attrs):
@@ -402,7 +402,7 @@ class FormMetaclass(forms.models.ModelFormMetaclass):
return super().__new__(mcs, name, bases, attrs)
-class ConfigRevisionForm(BootstrapMixin, forms.ModelForm, metaclass=FormMetaclass):
+class ConfigRevisionForm(BootstrapMixin, forms.ModelForm, metaclass=ConfigFormMetaclass):
"""
Form for creating a new ConfigRevision.
"""
diff --git a/netbox/netbox/navigation/menu.py b/netbox/netbox/navigation/menu.py
index b227a3c55..b98f4a4b0 100644
--- a/netbox/netbox/navigation/menu.py
+++ b/netbox/netbox/navigation/menu.py
@@ -353,7 +353,7 @@ ADMIN_MENU = Menu(
items=(
MenuItem(
link='extras:configrevision',
- link_text=_('Config Revision'),
+ link_text=_('Config Revisions'),
permissions=['extras.config_revision']
),
),
diff --git a/netbox/templates/extras/configrevision.html b/netbox/templates/extras/configrevision.html
index 0fabf39c9..5c62bc10a 100644
--- a/netbox/templates/extras/configrevision.html
+++ b/netbox/templates/extras/configrevision.html
@@ -105,19 +105,19 @@
Banner login: | +Login banner: | {{ object.data.BANNER_LOGIN }} |
---|---|---|
Banner maintenance: | +Maintenance banner: | {{ object.data.BANNER_MAINTENANCE }} |
Banner top: | +Top banner: | {{ object.data.BANNER_TOP }} |
Banner bottom: | +Bottom banner: | {{ object.data.BANNER_BOTTOM }} |