mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-25 16:56:10 -06:00
6347 connect the counters
This commit is contained in:
parent
2e6bc7b53a
commit
acb58f0a31
@ -9,18 +9,45 @@ class DCIMConfig(AppConfig):
|
||||
|
||||
def ready(self):
|
||||
from . import signals, search
|
||||
from .models import CableTermination
|
||||
from .models import (
|
||||
CableTermination, ConsolePort, ConsoleServerPort, DeviceBay, FrontPort,
|
||||
Interface, InventoryItem, PowerOutlet, PowerPort, RearPort,
|
||||
)
|
||||
|
||||
from utilities.counter import connect_counter
|
||||
|
||||
# Register denormalized fields
|
||||
denormalized.register(CableTermination, '_device', {
|
||||
denormalized.register(
|
||||
CableTermination,
|
||||
'_device',
|
||||
{
|
||||
'_rack': 'rack',
|
||||
'_location': 'location',
|
||||
'_site': 'site',
|
||||
})
|
||||
denormalized.register(CableTermination, '_rack', {
|
||||
},
|
||||
)
|
||||
denormalized.register(
|
||||
CableTermination,
|
||||
'_rack',
|
||||
{
|
||||
'_location': 'location',
|
||||
'_site': 'site',
|
||||
})
|
||||
denormalized.register(CableTermination, '_location', {
|
||||
},
|
||||
)
|
||||
denormalized.register(
|
||||
CableTermination,
|
||||
'_location',
|
||||
{
|
||||
'_site': 'site',
|
||||
})
|
||||
},
|
||||
)
|
||||
|
||||
connect_counter('_console_port_count', ConsolePort.device)
|
||||
connect_counter('_console_server_port_count', ConsoleServerPort.device)
|
||||
connect_counter('_interface_count', Interface.device)
|
||||
connect_counter('_front_port_count', FrontPort.device)
|
||||
connect_counter('_rear_port_count', RearPort.device)
|
||||
connect_counter('_device_bay_count', DeviceBay.device)
|
||||
connect_counter('_inventory_item_count', InventoryItem.device)
|
||||
connect_counter('_power_port_count', PowerPort.device)
|
||||
connect_counter('_power_outlet_count', PowerOutlet.device)
|
||||
|
@ -0,0 +1,58 @@
|
||||
# Generated by Django 4.1.8 on 2023-05-16 20:18
|
||||
|
||||
from django.db import migrations
|
||||
import utilities.fields
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
('dcim', '0173_remove_napalm_fields'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='device',
|
||||
name='_console_port_count',
|
||||
field=utilities.fields.CounterCacheField(default=0),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='device',
|
||||
name='_console_server_port_count',
|
||||
field=utilities.fields.CounterCacheField(default=0),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='device',
|
||||
name='_device_bay_count',
|
||||
field=utilities.fields.CounterCacheField(default=0),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='device',
|
||||
name='_front_port_count',
|
||||
field=utilities.fields.CounterCacheField(default=0),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='device',
|
||||
name='_interface_count',
|
||||
field=utilities.fields.CounterCacheField(default=0),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='device',
|
||||
name='_inventory_item_count',
|
||||
field=utilities.fields.CounterCacheField(default=0),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='device',
|
||||
name='_power_outlet_count',
|
||||
field=utilities.fields.CounterCacheField(default=0),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='device',
|
||||
name='_power_port_count',
|
||||
field=utilities.fields.CounterCacheField(default=0),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='device',
|
||||
name='_rear_port_count',
|
||||
field=utilities.fields.CounterCacheField(default=0),
|
||||
),
|
||||
]
|
@ -21,7 +21,7 @@ from extras.querysets import ConfigContextModelQuerySet
|
||||
from netbox.config import ConfigItem
|
||||
from netbox.models import OrganizationalModel, PrimaryModel
|
||||
from utilities.choices import ColorChoices
|
||||
from utilities.fields import ColorField, NaturalOrderingField
|
||||
from utilities.fields import ColorField, CounterCacheField, NaturalOrderingField
|
||||
from .device_components import *
|
||||
from .mixins import WeightMixin
|
||||
|
||||
@ -625,6 +625,16 @@ class Device(PrimaryModel, ConfigContextModel):
|
||||
null=True
|
||||
)
|
||||
|
||||
_console_port_count = CounterCacheField()
|
||||
_console_server_port_count = CounterCacheField()
|
||||
_power_port_count = CounterCacheField()
|
||||
_power_outlet_count = CounterCacheField()
|
||||
_interface_count = CounterCacheField()
|
||||
_front_port_count = CounterCacheField()
|
||||
_rear_port_count = CounterCacheField()
|
||||
_device_bay_count = CounterCacheField()
|
||||
_inventory_item_count = CounterCacheField()
|
||||
|
||||
# Generic relations
|
||||
contacts = GenericRelation(
|
||||
to='tenancy.ContactAssignment'
|
||||
|
Loading…
Reference in New Issue
Block a user