|
@@ -16,6 +16,7 @@ from mptt.models import MPTTModel
|
|
|
|
|
|
|
|
from ipam.formfields import IPFormField
|
|
from ipam.formfields import IPFormField
|
|
|
from utilities.exceptions import AbortTransaction
|
|
from utilities.exceptions import AbortTransaction
|
|
|
|
|
+from utilities.validators import MaxPrefixLengthValidator, MinPrefixLengthValidator
|
|
|
from .constants import LOG_DEFAULT, LOG_FAILURE, LOG_INFO, LOG_SUCCESS, LOG_WARNING
|
|
from .constants import LOG_DEFAULT, LOG_FAILURE, LOG_INFO, LOG_SUCCESS, LOG_WARNING
|
|
|
from .forms import ScriptForm
|
|
from .forms import ScriptForm
|
|
|
from .signals import purge_changelog
|
|
from .signals import purge_changelog
|
|
@@ -162,6 +163,21 @@ class IPNetworkVar(ScriptVariable):
|
|
|
"""
|
|
"""
|
|
|
form_field = IPFormField
|
|
form_field = IPFormField
|
|
|
|
|
|
|
|
|
|
+ def __init__(self, min_prefix_length=None, max_prefix_length=None, *args, **kwargs):
|
|
|
|
|
+ super().__init__(*args, **kwargs)
|
|
|
|
|
+
|
|
|
|
|
+ self.field_attrs['validators'] = list()
|
|
|
|
|
+
|
|
|
|
|
+ # Optional minimum/maximum prefix lengths
|
|
|
|
|
+ if min_prefix_length is not None:
|
|
|
|
|
+ self.field_attrs['validators'].append(
|
|
|
|
|
+ MinPrefixLengthValidator(min_prefix_length)
|
|
|
|
|
+ )
|
|
|
|
|
+ if max_prefix_length is not None:
|
|
|
|
|
+ self.field_attrs['validators'].append(
|
|
|
|
|
+ MaxPrefixLengthValidator(max_prefix_length)
|
|
|
|
|
+ )
|
|
|
|
|
+
|
|
|
|
|
|
|
|
#
|
|
#
|
|
|
# Scripts
|
|
# Scripts
|