Standardize linking to related objects in tables

This commit is contained in:
jeremystretch 2023-01-25 16:20:52 -05:00 committed by jeremystretch
parent 94797bb956
commit 48e5b395b2
5 changed files with 19 additions and 5 deletions

View File

@ -28,7 +28,9 @@ class CircuitTypeTable(NetBoxTable):
tags = columns.TagColumn(
url_name='circuits:circuittype_list'
)
circuit_count = tables.Column(
circuit_count = columns.LinkedCountColumn(
viewname='circuits:circuit_list',
url_params={'type_id': 'pk'},
verbose_name='Circuits'
)

View File

@ -107,6 +107,9 @@ class PlatformTable(NetBoxTable):
name = tables.Column(
linkify=True
)
manufacturer = tables.Column(
linkify=True
)
device_count = columns.LinkedCountColumn(
viewname='dcim:device_list',
url_params={'platform_id': 'pk'},

View File

@ -49,7 +49,6 @@ class ManufacturerTable(ContactsColumnMixin, NetBoxTable):
url_params={'manufacturer_id': 'pk'},
verbose_name='Platforms'
)
slug = tables.Column()
tags = columns.TagColumn(
url_name='dcim:manufacturer_list'
)

View File

@ -19,7 +19,11 @@ __all__ = (
class RackRoleTable(NetBoxTable):
name = tables.Column(linkify=True)
rack_count = tables.Column(verbose_name='Racks')
rack_count = columns.LinkedCountColumn(
viewname='dcim:rack_list',
url_params={'role_id': 'pk'},
verbose_name='Racks'
)
color = columns.ColorColumn()
tags = columns.TagColumn(
url_name='dcim:rackrole_list'

View File

@ -843,7 +843,10 @@ class ManufacturerBulkImportView(generic.BulkImportView):
class ManufacturerBulkEditView(generic.BulkEditView):
queryset = Manufacturer.objects.annotate(
devicetype_count=count_related(DeviceType, 'manufacturer')
devicetype_count=count_related(DeviceType, 'manufacturer'),
moduletype_count=count_related(ModuleType, 'manufacturer'),
inventoryitem_count=count_related(InventoryItem, 'manufacturer'),
platform_count=count_related(Platform, 'manufacturer')
)
filterset = filtersets.ManufacturerFilterSet
table = tables.ManufacturerTable
@ -852,7 +855,10 @@ class ManufacturerBulkEditView(generic.BulkEditView):
class ManufacturerBulkDeleteView(generic.BulkDeleteView):
queryset = Manufacturer.objects.annotate(
devicetype_count=count_related(DeviceType, 'manufacturer')
devicetype_count=count_related(DeviceType, 'manufacturer'),
moduletype_count=count_related(ModuleType, 'manufacturer'),
inventoryitem_count=count_related(InventoryItem, 'manufacturer'),
platform_count=count_related(Platform, 'manufacturer')
)
table = tables.ManufacturerTable