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

Fix evaluation of empty label_pattern

Jeremy Stretch 5 лет назад
Родитель
Сommit
7fab929194
2 измененных файлов с 10 добавлено и 35 удалено
  1. 8 8
      netbox/dcim/forms.py
  2. 2 27
      netbox/utilities/forms.py

+ 8 - 8
netbox/dcim/forms.py

@@ -139,14 +139,14 @@ class LabeledComponentForm(BootstrapMixin, forms.Form):
     def clean(self):
 
         # Validate that the number of components being created from both the name_pattern and label_pattern are equal
-        name_pattern_count = len(self.cleaned_data['name_pattern'])
-        label_pattern_count = len(self.cleaned_data['label_pattern'])
-        if label_pattern_count and name_pattern_count != label_pattern_count:
-            raise forms.ValidationError({
-                'label_pattern': 'The provided name pattern will create {} components, however {} labels will '
-                'be generated. These counts must match.'.format(
-                    name_pattern_count, label_pattern_count)
-            }, code='label_pattern_mismatch')
+        if self.cleaned_data['label_pattern']:
+            name_pattern_count = len(self.cleaned_data['name_pattern'])
+            label_pattern_count = len(self.cleaned_data['label_pattern'])
+            if name_pattern_count != label_pattern_count:
+                raise forms.ValidationError({
+                    'label_pattern': f'The provided name pattern will create {name_pattern_count} components, however '
+                                     f'{label_pattern_count} labels will be generated. These counts must match.'
+                }, code='label_pattern_mismatch')
 
 
 #

+ 2 - 27
netbox/utilities/forms.py

@@ -529,8 +529,8 @@ class ExpandableNameField(forms.CharField):
                 """
 
     def to_python(self, value):
-        if value is None:
-            return list()
+        if not value:
+            return ''
         if re.search(ALPHANUMERIC_EXPANSION_PATTERN, value):
             return list(expand_alphanumeric_pattern(value))
         return [value]
@@ -830,31 +830,6 @@ class ImportForm(BootstrapMixin, forms.Form):
                 })
 
 
-class LabeledComponentForm(BootstrapMixin, forms.Form):
-    """
-    Base form for adding label pattern validation to `Create` forms
-    """
-    name_pattern = ExpandableNameField(
-        label='Name'
-    )
-    label_pattern = ExpandableNameField(
-        label='Label',
-        required=False
-    )
-
-    def clean(self):
-
-        # Validate that the number of components being created from both the name_pattern and label_pattern are equal
-        name_pattern_count = len(self.cleaned_data['name_pattern'])
-        label_pattern_count = len(self.cleaned_data['label_pattern'])
-        if label_pattern_count and name_pattern_count != label_pattern_count:
-            raise forms.ValidationError({
-                'label_pattern': 'The provided name pattern will create {} components, however {} labels will '
-                'be generated. These counts must match.'.format(
-                    name_pattern_count, label_pattern_count)
-            }, code='label_pattern_mismatch')
-
-
 class TableConfigForm(BootstrapMixin, forms.Form):
     """
     Form for configuring user's table preferences.