fixes asn_count on asn range #13047

This commit is contained in:
Abhimanyu Saharan 2023-06-29 20:13:39 +05:30
parent b13f9d27d9
commit 4076df7acb
2 changed files with 10 additions and 5 deletions

View File

@ -1,4 +1,5 @@
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from drf_spectacular.types import OpenApiTypes
from drf_spectacular.utils import extend_schema_field from drf_spectacular.utils import extend_schema_field
from rest_framework import serializers from rest_framework import serializers
@ -24,7 +25,7 @@ class ASNRangeSerializer(NetBoxModelSerializer):
url = serializers.HyperlinkedIdentityField(view_name='ipam-api:asnrange-detail') url = serializers.HyperlinkedIdentityField(view_name='ipam-api:asnrange-detail')
rir = NestedRIRSerializer() rir = NestedRIRSerializer()
tenant = NestedTenantSerializer(required=False, allow_null=True) tenant = NestedTenantSerializer(required=False, allow_null=True)
asn_count = serializers.IntegerField(read_only=True) asn_count = serializers.SerializerMethodField(read_only=True)
class Meta: class Meta:
model = ASNRange model = ASNRange
@ -33,6 +34,10 @@ class ASNRangeSerializer(NetBoxModelSerializer):
'custom_fields', 'created', 'last_updated', 'asn_count', 'custom_fields', 'created', 'last_updated', 'asn_count',
] ]
@extend_schema_field(OpenApiTypes.INT)
def get_asn_count(self, obj):
return obj.get_child_asns().count()
# #
# ASNs # ASNs

View File

@ -21,10 +21,10 @@ class ASNRangeTable(TenancyColumnsMixin, NetBoxTable):
tags = columns.TagColumn( tags = columns.TagColumn(
url_name='ipam:asnrange_list' url_name='ipam:asnrange_list'
) )
asn_count = columns.LinkedCountColumn( asn_count = columns.TemplateColumn(
viewname='ipam:asn_list', orderable=False,
url_params={'asn_id': 'pk'}, verbose_name=_('ASN Count'),
verbose_name=_('ASN Count') template_code='''{{ record.get_child_asns.count }}'''
) )
class Meta(NetBoxTable.Meta): class Meta(NetBoxTable.Meta):