1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Closes #10197: Add a cached counter field for virtual chassis members

This commit is contained in:
Jeremy Stretch
2023-07-25 15:28:19 -04:00
parent 9b6e32896d
commit daa8f71bb6
7 changed files with 60 additions and 10 deletions

View File

@ -22,6 +22,7 @@ from netbox.config import ConfigItem
from netbox.models import OrganizationalModel, PrimaryModel
from utilities.choices import ColorChoices
from utilities.fields import ColorField, CounterCacheField, NaturalOrderingField
from utilities.tracking import TrackingModelMixin
from .device_components import *
from .mixins import WeightMixin
@ -469,7 +470,7 @@ def update_interface_bridges(device, interface_templates, module=None):
interface.save()
class Device(PrimaryModel, ConfigContextModel):
class Device(PrimaryModel, ConfigContextModel, TrackingModelMixin):
"""
A Device represents a piece of physical hardware mounted within a Rack. Each Device is assigned a DeviceType,
DeviceRole, and (optionally) a Platform. Device names are not required, however if one is set it must be unique.
@ -1206,6 +1207,12 @@ class VirtualChassis(PrimaryModel):
blank=True
)
# Counter fields
member_count = CounterCacheField(
to_model='dcim.Device',
to_field='virtual_chassis'
)
class Meta:
ordering = ['name']
verbose_name_plural = 'virtual chassis'