mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-22 11:38:45 -06:00
9627 use ArrayField on VLANGroup for allowed VLANs (#16710)
* 9627 initial commit * 9627 numeric range field * 9627 numeric range field * 9627 numeric range field * 9627 numeric range field * 9627 add stuff for utilization calc * 9627 update views * 9627 fixes * 9627 available_vlans * 9627 available_vlans * 9627 fixes * 9627 bulk import / edit * 9627 test fixes * 9627 test fixes * 9627 update validation * 9627 fix tests * 9627 fix tests * 9627 fix tests * 9627 fix tests * 9627 fix tests * 9627 fix tests * 9627 review changes * 9627 temp vlan_id filter * Clean up labels * Remove annotate_vlan_ranges() from VLANGroupQuerySet * Misc cleanup * Implement contains_vid filter * Serialize VID ranges as integer lists in REST API * Remove default value from vlan_id_ranges * 9627 fix typo in test * Require vlan_id_ranges & set default value * Fix logic for upper range boundaries * Add field to VLANGroup model documentation * Rename vlan_id_ranges to vid_ranges * Fix computation of available VLAN IDs * Clean up migration * Add tests for range utility functions * Clean up add_available_vlans() * Misc cleanup, add test for VID validation --------- Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
from django import forms
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.contrib.postgres.forms import IntegerRangeField, SimpleArrayField
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
@@ -14,7 +15,7 @@ from utilities.exceptions import PermissionsViolation
|
||||
from utilities.forms import add_blank_choice
|
||||
from utilities.forms.fields import (
|
||||
CommentField, ContentTypeChoiceField, DynamicModelChoiceField, DynamicModelMultipleChoiceField, NumericArrayField,
|
||||
SlugField,
|
||||
NumericRangeArrayField, SlugField
|
||||
)
|
||||
from utilities.forms.rendering import FieldSet, InlineFields, ObjectAttribute, TabbedGroups
|
||||
from utilities.forms.widgets import DatePicker
|
||||
@@ -632,10 +633,13 @@ class VLANGroupForm(NetBoxModelForm):
|
||||
}
|
||||
)
|
||||
slug = SlugField()
|
||||
vid_ranges = NumericRangeArrayField(
|
||||
label=_('VLAN IDs')
|
||||
)
|
||||
|
||||
fieldsets = (
|
||||
FieldSet('name', 'slug', 'description', 'tags', name=_('VLAN Group')),
|
||||
FieldSet('min_vid', 'max_vid', name=_('Child VLANs')),
|
||||
FieldSet('vid_ranges', name=_('Child VLANs')),
|
||||
FieldSet(
|
||||
'scope_type', 'region', 'sitegroup', 'site', 'location', 'rack', 'clustergroup', 'cluster',
|
||||
name=_('Scope')
|
||||
@@ -646,7 +650,7 @@ class VLANGroupForm(NetBoxModelForm):
|
||||
model = VLANGroup
|
||||
fields = [
|
||||
'name', 'slug', 'description', 'scope_type', 'region', 'sitegroup', 'site', 'location', 'rack',
|
||||
'clustergroup', 'cluster', 'min_vid', 'max_vid', 'tags',
|
||||
'clustergroup', 'cluster', 'vid_ranges', 'tags',
|
||||
]
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
||||
Reference in New Issue
Block a user