Parcourir la source

Move MACAddressField to utilities

jeremystretch il y a 4 ans
Parent
commit
1ce9192369

+ 0 - 1
netbox/dcim/forms/__init__.py

@@ -1,4 +1,3 @@
-from .fields import *
 from .models import *
 from .filtersets import *
 from .object_create import *

+ 0 - 25
netbox/dcim/forms/fields.py

@@ -1,25 +0,0 @@
-from django import forms
-from netaddr import EUI
-from netaddr.core import AddrFormatError
-
-__all__ = (
-    'MACAddressField',
-)
-
-
-class MACAddressField(forms.Field):
-    widget = forms.CharField
-    default_error_messages = {
-        'invalid': 'MAC address must be in EUI-48 format',
-    }
-
-    def to_python(self, value):
-        value = super().to_python(value)
-
-        # Validate MAC address format
-        try:
-            value = EUI(value.strip())
-        except AddrFormatError:
-            raise forms.ValidationError(self.error_messages['invalid'], code='invalid')
-
-        return value

+ 1 - 1
netbox/netbox/filtersets.py

@@ -5,7 +5,6 @@ from django.db import models
 from django_filters.exceptions import FieldLookupError
 from django_filters.utils import get_model_field, resolve_field
 
-from dcim.forms import MACAddressField
 from extras.choices import CustomFieldFilterLogicChoices
 from extras.filters import TagFilter
 from extras.models import CustomField
@@ -13,6 +12,7 @@ from utilities.constants import (
     FILTER_CHAR_BASED_LOOKUP_MAP, FILTER_NEGATION_LOOKUP_MAP, FILTER_TREENODE_NEGATION_LOOKUP_MAP,
     FILTER_NUMERIC_BASED_LOOKUP_MAP
 )
+from utilities.forms import MACAddressField
 from utilities import filters
 
 __all__ = (

+ 1 - 1
netbox/utilities/filters.py

@@ -3,7 +3,7 @@ from django import forms
 from django.conf import settings
 from django_filters.constants import EMPTY_VALUES
 
-from dcim.forms import MACAddressField
+from utilities.forms import MACAddressField
 
 
 def multivalue_field_factory(field_class):

+ 24 - 0
netbox/utilities/forms/fields.py

@@ -2,6 +2,7 @@ import csv
 import json
 import re
 from io import StringIO
+from netaddr import AddrFormatError, EUI
 
 import django_filters
 from django import forms
@@ -38,6 +39,7 @@ __all__ = (
     'ExpandableNameField',
     'JSONField',
     'LaxURLField',
+    'MACAddressField',
     'SlugField',
     'TagFilterField',
 )
@@ -129,6 +131,28 @@ class JSONField(_JSONField):
         return json.dumps(value, sort_keys=True, indent=4)
 
 
+class MACAddressField(forms.Field):
+    widget = forms.CharField
+    default_error_messages = {
+        'invalid': 'MAC address must be in EUI-48 format',
+    }
+
+    def to_python(self, value):
+        value = super().to_python(value)
+
+        # Validate MAC address format
+        try:
+            value = EUI(value.strip())
+        except AddrFormatError:
+            raise forms.ValidationError(self.error_messages['invalid'], code='invalid')
+
+        return value
+
+
+#
+# Content type fields
+#
+
 class ContentTypeChoiceMixin:
 
     def __init__(self, queryset, *args, **kwargs):