Fixes #18594: asn_count sort in Sites list (#18634)

* Fixes #18594: asn_count sort in Sites list

* Fixes similar issue in `circuits.views.ProviderListView`

Thanks @bctiemann for point this out!
This commit is contained in:
Jason Novinger 2025-02-20 09:01:04 -06:00 committed by GitHub
parent 57ef44706a
commit 2a44affd03
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 5 additions and 4 deletions

View File

@ -33,7 +33,6 @@ class ProviderTable(ContactsColumnMixin, NetBoxTable):
verbose_name=_('ASNs') verbose_name=_('ASNs')
) )
asn_count = columns.LinkedCountColumn( asn_count = columns.LinkedCountColumn(
accessor=tables.A('asns__count'),
viewname='ipam:asn_list', viewname='ipam:asn_list',
url_params={'provider_id': 'pk'}, url_params={'provider_id': 'pk'},
verbose_name=_('ASN Count') verbose_name=_('ASN Count')

View File

@ -4,6 +4,7 @@ from django.shortcuts import get_object_or_404, redirect, render
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from dcim.views import PathTraceView from dcim.views import PathTraceView
from ipam.models import ASN
from netbox.views import generic from netbox.views import generic
from tenancy.views import ObjectContactsView from tenancy.views import ObjectContactsView
from utilities.forms import ConfirmationForm from utilities.forms import ConfirmationForm
@ -20,7 +21,8 @@ from .models import *
@register_model_view(Provider, 'list', path='', detail=False) @register_model_view(Provider, 'list', path='', detail=False)
class ProviderListView(generic.ObjectListView): class ProviderListView(generic.ObjectListView):
queryset = Provider.objects.annotate( queryset = Provider.objects.annotate(
count_circuits=count_related(Circuit, 'provider') count_circuits=count_related(Circuit, 'provider'),
asn_count=count_related(ASN, 'providers'),
) )
filterset = filtersets.ProviderFilterSet filterset = filtersets.ProviderFilterSet
filterset_form = forms.ProviderFilterForm filterset_form = forms.ProviderFilterForm

View File

@ -94,7 +94,6 @@ class SiteTable(TenancyColumnsMixin, ContactsColumnMixin, NetBoxTable):
verbose_name=_('ASNs') verbose_name=_('ASNs')
) )
asn_count = columns.LinkedCountColumn( asn_count = columns.LinkedCountColumn(
accessor=tables.A('asns__count'),
viewname='ipam:asn_list', viewname='ipam:asn_list',
url_params={'site_id': 'pk'}, url_params={'site_id': 'pk'},
verbose_name=_('ASN Count') verbose_name=_('ASN Count')

View File

@ -422,7 +422,8 @@ class SiteGroupContactsView(ObjectContactsView):
@register_model_view(Site, 'list', path='', detail=False) @register_model_view(Site, 'list', path='', detail=False)
class SiteListView(generic.ObjectListView): class SiteListView(generic.ObjectListView):
queryset = Site.objects.annotate( queryset = Site.objects.annotate(
device_count=count_related(Device, 'site') device_count=count_related(Device, 'site'),
asn_count=count_related(ASN, 'sites')
) )
filterset = filtersets.SiteFilterSet filterset = filtersets.SiteFilterSet
filterset_form = forms.SiteFilterForm filterset_form = forms.SiteFilterForm