From 88cb4745179bb4e697f071c374d3d5c4c00fa790 Mon Sep 17 00:00:00 2001 From: Renato Almeida de Oliveira Zaroubin Date: Thu, 13 Feb 2025 00:13:09 +0000 Subject: [PATCH] Add racktype_count annotation to list view queryset, create the LinkedCountColumn in ManufacturerTable --- netbox/dcim/tables/devicetypes.py | 13 +++++++++---- netbox/dcim/views.py | 1 + 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/netbox/dcim/tables/devicetypes.py b/netbox/dcim/tables/devicetypes.py index a7f8f08e87f..91f9f3b479e 100644 --- a/netbox/dcim/tables/devicetypes.py +++ b/netbox/dcim/tables/devicetypes.py @@ -31,6 +31,11 @@ class ManufacturerTable(ContactsColumnMixin, NetBoxTable): verbose_name=_('Name'), linkify=True ) + racktype_count = columns.LinkedCountColumn( + viewname='dcim:racktype_list', + url_params={'manufacturer_id': 'pk'}, + verbose_name=_('Rack Types') + ) devicetype_count = columns.LinkedCountColumn( viewname='dcim:devicetype_list', url_params={'manufacturer_id': 'pk'}, @@ -58,12 +63,12 @@ class ManufacturerTable(ContactsColumnMixin, NetBoxTable): class Meta(NetBoxTable.Meta): model = models.Manufacturer fields = ( - 'pk', 'id', 'name', 'devicetype_count', 'moduletype_count', 'inventoryitem_count', 'platform_count', - 'description', 'slug', 'tags', 'contacts', 'actions', 'created', 'last_updated', + 'pk', 'id', 'name', 'racktype_count', 'devicetype_count', 'moduletype_count', 'inventoryitem_count', + 'platform_count', 'description', 'slug', 'tags', 'contacts', 'actions', 'created', 'last_updated', ) default_columns = ( - 'pk', 'name', 'devicetype_count', 'moduletype_count', 'inventoryitem_count', 'platform_count', - 'description', 'slug', + 'pk', 'name', 'racktype_count', 'devicetype_count', 'moduletype_count', 'inventoryitem_count', + 'platform_count', 'description', 'slug', ) diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index 6efdb63f0f0..583b89f1aa5 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -964,6 +964,7 @@ class RackReservationBulkDeleteView(generic.BulkDeleteView): @register_model_view(Manufacturer, 'list', path='', detail=False) class ManufacturerListView(generic.ObjectListView): queryset = Manufacturer.objects.annotate( + racktype_count=count_related(RackType, 'manufacturer'), devicetype_count=count_related(DeviceType, 'manufacturer'), moduletype_count=count_related(ModuleType, 'manufacturer'), inventoryitem_count=count_related(InventoryItem, 'manufacturer'),