|
|
@@ -1,6 +1,7 @@
|
|
|
from django.contrib.contenttypes.models import ContentType
|
|
|
-from django.db.models import Prefetch
|
|
|
+from django.db.models import F, Prefetch
|
|
|
from django.db.models.expressions import RawSQL
|
|
|
+from django.db.models.functions import Round
|
|
|
from django.shortcuts import get_object_or_404, redirect, render
|
|
|
from django.urls import reverse
|
|
|
from django.utils.translation import gettext as _
|
|
|
@@ -882,9 +883,7 @@ class IPAddressRelatedIPsView(generic.ObjectChildrenView):
|
|
|
#
|
|
|
|
|
|
class VLANGroupListView(generic.ObjectListView):
|
|
|
- queryset = VLANGroup.objects.annotate(
|
|
|
- vlan_count=count_related(VLAN, 'group')
|
|
|
- )
|
|
|
+ queryset = VLANGroup.objects.annotate_utilization().prefetch_related('tags')
|
|
|
filterset = filtersets.VLANGroupFilterSet
|
|
|
filterset_form = forms.VLANGroupFilterForm
|
|
|
table = tables.VLANGroupTable
|
|
|
@@ -892,7 +891,7 @@ class VLANGroupListView(generic.ObjectListView):
|
|
|
|
|
|
@register_model_view(VLANGroup)
|
|
|
class VLANGroupView(generic.ObjectView):
|
|
|
- queryset = VLANGroup.objects.all()
|
|
|
+ queryset = VLANGroup.objects.annotate_utilization().prefetch_related('tags')
|
|
|
|
|
|
def get_extra_context(self, request, instance):
|
|
|
related_models = (
|
|
|
@@ -934,18 +933,14 @@ class VLANGroupBulkImportView(generic.BulkImportView):
|
|
|
|
|
|
|
|
|
class VLANGroupBulkEditView(generic.BulkEditView):
|
|
|
- queryset = VLANGroup.objects.annotate(
|
|
|
- vlan_count=count_related(VLAN, 'group')
|
|
|
- )
|
|
|
+ queryset = VLANGroup.objects.annotate_utilization().prefetch_related('tags')
|
|
|
filterset = filtersets.VLANGroupFilterSet
|
|
|
table = tables.VLANGroupTable
|
|
|
form = forms.VLANGroupBulkEditForm
|
|
|
|
|
|
|
|
|
class VLANGroupBulkDeleteView(generic.BulkDeleteView):
|
|
|
- queryset = VLANGroup.objects.annotate(
|
|
|
- vlan_count=count_related(VLAN, 'group')
|
|
|
- )
|
|
|
+ queryset = VLANGroup.objects.annotate_utilization().prefetch_related('tags')
|
|
|
filterset = filtersets.VLANGroupFilterSet
|
|
|
table = tables.VLANGroupTable
|
|
|
|