diff --git a/netbox/ipam/api/serializers_/vlans.py b/netbox/ipam/api/serializers_/vlans.py index f35d294cf..bba7afe3d 100644 --- a/netbox/ipam/api/serializers_/vlans.py +++ b/netbox/ipam/api/serializers_/vlans.py @@ -41,7 +41,7 @@ class VLANGroupSerializer(NetBoxModelSerializer): class Meta: model = VLANGroup fields = [ - 'id', 'url', 'display', 'name', 'slug', 'scope_type', 'scope_id', 'scope', 'min_vid', 'max_vid', + 'id', 'url', 'display', 'name', 'slug', 'scope_type', 'scope_id', 'scope', 'description', 'tags', 'custom_fields', 'created', 'last_updated', 'vlan_count', 'utilization' ] brief_fields = ('id', 'url', 'display', 'name', 'slug', 'description', 'vlan_count') diff --git a/netbox/ipam/filtersets.py b/netbox/ipam/filtersets.py index 32395d22b..7d354fabc 100644 --- a/netbox/ipam/filtersets.py +++ b/netbox/ipam/filtersets.py @@ -915,7 +915,6 @@ class VLANGroupFilterSet(OrganizationalModelFilterSet): class Meta: model = VLANGroup fields = ('id', 'name', 'slug', 'description', 'scope_id') - # fields = ('id', 'name', 'slug', 'min_vid', 'max_vid', 'description', 'scope_id') def search(self, queryset, name, value): if not value.strip(): diff --git a/netbox/ipam/forms/bulk_edit.py b/netbox/ipam/forms/bulk_edit.py index da752a8db..837dc4ce7 100644 --- a/netbox/ipam/forms/bulk_edit.py +++ b/netbox/ipam/forms/bulk_edit.py @@ -408,18 +408,6 @@ class FHRPGroupBulkEditForm(NetBoxModelBulkEditForm): class VLANGroupBulkEditForm(NetBoxModelBulkEditForm): - min_vid = forms.IntegerField( - min_value=VLAN_VID_MIN, - max_value=VLAN_VID_MAX, - required=False, - label=_('Minimum child VLAN VID') - ) - max_vid = forms.IntegerField( - min_value=VLAN_VID_MIN, - max_value=VLAN_VID_MAX, - required=False, - label=_('Maximum child VLAN VID') - ) description = forms.CharField( label=_('Description'), max_length=200, @@ -486,7 +474,6 @@ class VLANGroupBulkEditForm(NetBoxModelBulkEditForm): model = VLANGroup fieldsets = ( - # FieldSet('site', 'min_vid', 'max_vid', 'description'), FieldSet('site', 'description'), FieldSet( 'scope_type', 'region', 'sitegroup', 'site', 'location', 'rack', 'clustergroup', 'cluster', name=_('Scope') diff --git a/netbox/ipam/forms/bulk_import.py b/netbox/ipam/forms/bulk_import.py index bfff1f4f4..79cf8d55a 100644 --- a/netbox/ipam/forms/bulk_import.py +++ b/netbox/ipam/forms/bulk_import.py @@ -411,22 +411,10 @@ class VLANGroupImportForm(NetBoxModelImportForm): required=False, label=_('Scope type (app & model)') ) - min_vid = forms.IntegerField( - min_value=VLAN_VID_MIN, - max_value=VLAN_VID_MAX, - required=False, - label=_('Minimum child VLAN VID (default: {minimum})').format(minimum=VLAN_VID_MIN) - ) - max_vid = forms.IntegerField( - min_value=VLAN_VID_MIN, - max_value=VLAN_VID_MAX, - required=False, - label=_('Maximum child VLAN VID (default: {maximum})').format(maximum=VLAN_VID_MIN) - ) class Meta: model = VLANGroup - fields = ('name', 'slug', 'scope_type', 'scope_id', 'min_vid', 'max_vid', 'description', 'tags') + fields = ('name', 'slug', 'scope_type', 'scope_id', 'description', 'tags') labels = { 'scope_id': 'Scope ID', } diff --git a/netbox/ipam/models/vlans.py b/netbox/ipam/models/vlans.py index fb88d68e6..47d2d6607 100644 --- a/netbox/ipam/models/vlans.py +++ b/netbox/ipam/models/vlans.py @@ -91,8 +91,8 @@ class VLANGroup(OrganizationalModel): def save(self, *args, **kwargs): self._total_vlan_ids = 0 - for vlan_range in vland_id_ranges: - self._total_vlan_ids += vlan_range.upper - vlan_range.lower + 1 + for vlan_range in self.vlan_id_ranges: + self._total_vlan_ids += int(vlan_range.upper) - int(vlan_range.lower) + 1 super().save(*args, **kwargs) @@ -124,7 +124,7 @@ class VLANGroup(OrganizationalModel): @property def vlan_ranges(self): - return ','.join([f"{self.vlan_id_ranges.lower}-{self.vlan_id_ranges.upper}" for val in value]) + return ','.join([f"{vlan_range.lower}-{vlan_range.upper}" for vlan_range in self.vlan_id_ranges]) class VLAN(PrimaryModel): diff --git a/netbox/ipam/querysets.py b/netbox/ipam/querysets.py index c84231c4b..076d05445 100644 --- a/netbox/ipam/querysets.py +++ b/netbox/ipam/querysets.py @@ -63,7 +63,7 @@ class VLANGroupQuerySet(RestrictedQuerySet): return self.annotate( vlan_count=count_related(VLAN, 'group'), - utilization=Round(F('vlan_count') / F('_total_vlan_ids') * 100, 2) + utilization=Round(F('vlan_count') * 100 / F('_total_vlan_ids'), 2) ) diff --git a/netbox/ipam/search.py b/netbox/ipam/search.py index 298289b5b..59b741b8f 100644 --- a/netbox/ipam/search.py +++ b/netbox/ipam/search.py @@ -154,9 +154,7 @@ class VLANGroupIndex(SearchIndex): ('name', 100), ('slug', 110), ('description', 500), - ('max_vid', 2000), ) - # display_attrs = ('scope_type', 'min_vid', 'max_vid', 'description') display_attrs = ('scope_type', 'description')