mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-25 08:46:10 -06:00
Rename counter fields for accessibility
This commit is contained in:
parent
09a6257a52
commit
015964115c
@ -1,46 +1,45 @@
|
|||||||
# Generated by Django 4.2.2 on 2023-06-23 19:26
|
|
||||||
|
|
||||||
from django.db import migrations
|
from django.db import migrations
|
||||||
import utilities.fields
|
|
||||||
from django.db.models import Count
|
from django.db.models import Count
|
||||||
|
|
||||||
|
import utilities.fields
|
||||||
|
|
||||||
|
|
||||||
def recalculate_device_counts(apps, schema_editor):
|
def recalculate_device_counts(apps, schema_editor):
|
||||||
Device = apps.get_model("dcim", "Device")
|
Device = apps.get_model("dcim", "Device")
|
||||||
devices = list(Device.objects.all().annotate(
|
devices = list(Device.objects.all().annotate(
|
||||||
console_port_count=Count('consoleports', distinct=True),
|
_console_port_count=Count('consoleports', distinct=True),
|
||||||
console_server_port_count=Count('consoleserverports', distinct=True),
|
_console_server_port_count=Count('consoleserverports', distinct=True),
|
||||||
interface_count=Count('interfaces', distinct=True),
|
_interface_count=Count('interfaces', distinct=True),
|
||||||
front_port_count=Count('frontports', distinct=True),
|
_front_port_count=Count('frontports', distinct=True),
|
||||||
rear_port_count=Count('rearports', distinct=True),
|
_rear_port_count=Count('rearports', distinct=True),
|
||||||
device_bay_count=Count('devicebays', distinct=True),
|
_device_bay_count=Count('devicebays', distinct=True),
|
||||||
inventory_item_count=Count('inventoryitems', distinct=True),
|
_inventory_item_count=Count('inventoryitems', distinct=True),
|
||||||
power_port_count=Count('powerports', distinct=True),
|
_power_port_count=Count('powerports', distinct=True),
|
||||||
power_outlet_count=Count('poweroutlets', distinct=True),
|
_power_outlet_count=Count('poweroutlets', distinct=True),
|
||||||
))
|
))
|
||||||
|
|
||||||
for device in devices:
|
for device in devices:
|
||||||
device._console_port_count = device.console_port_count
|
device.console_port_count = device._console_port_count
|
||||||
device._console_server_port_count = device.console_server_port_count
|
device.console_server_port_count = device._console_server_port_count
|
||||||
device._interface_count = device.interface_count
|
device.interface_count = device._interface_count
|
||||||
device._front_port_count = device.front_port_count
|
device.front_port_count = device._front_port_count
|
||||||
device._rear_port_count = device.rear_port_count
|
device.rear_port_count = device._rear_port_count
|
||||||
device._device_bay_count = device.device_bay_count
|
device.device_bay_count = device._device_bay_count
|
||||||
device._inventory_item_count = device.inventory_item_count
|
device.inventory_item_count = device._inventory_item_count
|
||||||
device._power_port_count = device.power_port_count
|
device.power_port_count = device._power_port_count
|
||||||
device._power_outlet_count = device.power_outlet_count
|
device.power_outlet_count = device._power_outlet_count
|
||||||
|
|
||||||
Device.objects.bulk_update(
|
Device.objects.bulk_update(
|
||||||
devices,
|
devices,
|
||||||
['_console_port_count',
|
['console_port_count',
|
||||||
'_console_server_port_count',
|
'console_server_port_count',
|
||||||
'_interface_count',
|
'interface_count',
|
||||||
'_front_port_count',
|
'front_port_count',
|
||||||
'_rear_port_count',
|
'rear_port_count',
|
||||||
'_device_bay_count',
|
'device_bay_count',
|
||||||
'_inventory_item_count',
|
'inventory_item_count',
|
||||||
'_power_port_count',
|
'power_port_count',
|
||||||
'_power_outlet_count'],
|
'power_outlet_count'],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -52,47 +51,47 @@ class Migration(migrations.Migration):
|
|||||||
operations = [
|
operations = [
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='device',
|
model_name='device',
|
||||||
name='_console_port_count',
|
name='console_port_count',
|
||||||
field=utilities.fields.CounterCacheField(default=0, to_field='device', to_model='dcim.ConsolePort'),
|
field=utilities.fields.CounterCacheField(default=0, to_field='device', to_model='dcim.ConsolePort'),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='device',
|
model_name='device',
|
||||||
name='_console_server_port_count',
|
name='console_server_port_count',
|
||||||
field=utilities.fields.CounterCacheField(default=0, to_field='device', to_model='dcim.ConsoleServerPort'),
|
field=utilities.fields.CounterCacheField(default=0, to_field='device', to_model='dcim.ConsoleServerPort'),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='device',
|
model_name='device',
|
||||||
name='_device_bay_count',
|
name='device_bay_count',
|
||||||
field=utilities.fields.CounterCacheField(default=0, to_field='device', to_model='dcim.DeviceBay'),
|
field=utilities.fields.CounterCacheField(default=0, to_field='device', to_model='dcim.DeviceBay'),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='device',
|
model_name='device',
|
||||||
name='_front_port_count',
|
name='front_port_count',
|
||||||
field=utilities.fields.CounterCacheField(default=0, to_field='device', to_model='dcim.FrontPort'),
|
field=utilities.fields.CounterCacheField(default=0, to_field='device', to_model='dcim.FrontPort'),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='device',
|
model_name='device',
|
||||||
name='_interface_count',
|
name='interface_count',
|
||||||
field=utilities.fields.CounterCacheField(default=0, to_field='device', to_model='dcim.Interface'),
|
field=utilities.fields.CounterCacheField(default=0, to_field='device', to_model='dcim.Interface'),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='device',
|
model_name='device',
|
||||||
name='_inventory_item_count',
|
name='inventory_item_count',
|
||||||
field=utilities.fields.CounterCacheField(default=0, to_field='device', to_model='dcim.InventoryItem'),
|
field=utilities.fields.CounterCacheField(default=0, to_field='device', to_model='dcim.InventoryItem'),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='device',
|
model_name='device',
|
||||||
name='_power_outlet_count',
|
name='power_outlet_count',
|
||||||
field=utilities.fields.CounterCacheField(default=0, to_field='device', to_model='dcim.PowerOutlet'),
|
field=utilities.fields.CounterCacheField(default=0, to_field='device', to_model='dcim.PowerOutlet'),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='device',
|
model_name='device',
|
||||||
name='_power_port_count',
|
name='power_port_count',
|
||||||
field=utilities.fields.CounterCacheField(default=0, to_field='device', to_model='dcim.PowerPort'),
|
field=utilities.fields.CounterCacheField(default=0, to_field='device', to_model='dcim.PowerPort'),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='device',
|
model_name='device',
|
||||||
name='_rear_port_count',
|
name='rear_port_count',
|
||||||
field=utilities.fields.CounterCacheField(default=0, to_field='device', to_model='dcim.RearPort'),
|
field=utilities.fields.CounterCacheField(default=0, to_field='device', to_model='dcim.RearPort'),
|
||||||
),
|
),
|
||||||
migrations.RunPython(
|
migrations.RunPython(
|
@ -639,15 +639,43 @@ class Device(PrimaryModel, ConfigContextModel):
|
|||||||
help_text=_("GPS coordinate in decimal format (xx.yyyyyy)")
|
help_text=_("GPS coordinate in decimal format (xx.yyyyyy)")
|
||||||
)
|
)
|
||||||
|
|
||||||
_console_port_count = CounterCacheField(to_model='dcim.ConsolePort', to_field='device')
|
# Counter fields
|
||||||
_console_server_port_count = CounterCacheField(to_model='dcim.ConsoleServerPort', to_field='device')
|
console_port_count = CounterCacheField(
|
||||||
_power_port_count = CounterCacheField(to_model='dcim.PowerPort', to_field='device')
|
to_model='dcim.ConsolePort',
|
||||||
_power_outlet_count = CounterCacheField(to_model='dcim.PowerOutlet', to_field='device')
|
to_field='device'
|
||||||
_interface_count = CounterCacheField(to_model='dcim.Interface', to_field='device')
|
)
|
||||||
_front_port_count = CounterCacheField(to_model='dcim.FrontPort', to_field='device')
|
console_server_port_count = CounterCacheField(
|
||||||
_rear_port_count = CounterCacheField(to_model='dcim.RearPort', to_field='device')
|
to_model='dcim.ConsoleServerPort',
|
||||||
_device_bay_count = CounterCacheField(to_model='dcim.DeviceBay', to_field='device')
|
to_field='device'
|
||||||
_inventory_item_count = CounterCacheField(to_model='dcim.InventoryItem', to_field='device')
|
)
|
||||||
|
power_port_count = CounterCacheField(
|
||||||
|
to_model='dcim.PowerPort',
|
||||||
|
to_field='device'
|
||||||
|
)
|
||||||
|
power_outlet_count = CounterCacheField(
|
||||||
|
to_model='dcim.PowerOutlet',
|
||||||
|
to_field='device'
|
||||||
|
)
|
||||||
|
interface_count = CounterCacheField(
|
||||||
|
to_model='dcim.Interface',
|
||||||
|
to_field='device'
|
||||||
|
)
|
||||||
|
front_port_count = CounterCacheField(
|
||||||
|
to_model='dcim.FrontPort',
|
||||||
|
to_field='device'
|
||||||
|
)
|
||||||
|
rear_port_count = CounterCacheField(
|
||||||
|
to_model='dcim.RearPort',
|
||||||
|
to_field='device'
|
||||||
|
)
|
||||||
|
device_bay_count = CounterCacheField(
|
||||||
|
to_model='dcim.DeviceBay',
|
||||||
|
to_field='device'
|
||||||
|
)
|
||||||
|
inventory_item_count = CounterCacheField(
|
||||||
|
to_model='dcim.InventoryItem',
|
||||||
|
to_field='device'
|
||||||
|
)
|
||||||
|
|
||||||
# Generic relations
|
# Generic relations
|
||||||
contacts = GenericRelation(
|
contacts = GenericRelation(
|
||||||
|
@ -174,7 +174,9 @@ class CounterCacheField(models.BigIntegerField):
|
|||||||
|
|
||||||
self.to_model_name = to_model
|
self.to_model_name = to_model
|
||||||
self.to_field_name = to_field
|
self.to_field_name = to_field
|
||||||
|
|
||||||
kwargs['default'] = kwargs.get('default', 0)
|
kwargs['default'] = kwargs.get('default', 0)
|
||||||
|
kwargs['editable'] = False
|
||||||
|
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
@ -1,19 +1,18 @@
|
|||||||
# Generated by Django 4.1.8 on 2023-05-16 21:20
|
|
||||||
|
|
||||||
from django.db import migrations
|
from django.db import migrations
|
||||||
import utilities.fields
|
|
||||||
from django.db.models import Count
|
from django.db.models import Count
|
||||||
|
|
||||||
|
import utilities.fields
|
||||||
|
|
||||||
|
|
||||||
def populate_virtualmachine_counts(apps, schema_editor):
|
def populate_virtualmachine_counts(apps, schema_editor):
|
||||||
VirtualMachine = apps.get_model('virtualization', 'VirtualMachine')
|
VirtualMachine = apps.get_model('virtualization', 'VirtualMachine')
|
||||||
|
|
||||||
vms = list(VirtualMachine.objects.annotate(interface_count=Count('interfaces', distinct=True)))
|
vms = list(VirtualMachine.objects.annotate(_interface_count=Count('interfaces', distinct=True)))
|
||||||
|
|
||||||
for vm in vms:
|
for vm in vms:
|
||||||
vm._interface_count = vm.interface_count
|
vm.interface_count = vm._interface_count
|
||||||
|
|
||||||
VirtualMachine.objects.bulk_update(vms, ['_interface_count'])
|
VirtualMachine.objects.bulk_update(vms, ['interface_count'])
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
class Migration(migrations.Migration):
|
||||||
@ -24,7 +23,7 @@ class Migration(migrations.Migration):
|
|||||||
operations = [
|
operations = [
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='virtualmachine',
|
model_name='virtualmachine',
|
||||||
name='_interface_count',
|
name='interface_count',
|
||||||
field=utilities.fields.CounterCacheField(
|
field=utilities.fields.CounterCacheField(
|
||||||
default=0, to_field='virtual_machine', to_model='virtualization.VMInterface'
|
default=0, to_field='virtual_machine', to_model='virtualization.VMInterface'
|
||||||
),
|
),
|
@ -121,7 +121,11 @@ class VirtualMachine(PrimaryModel, ConfigContextModel):
|
|||||||
verbose_name='Disk (GB)'
|
verbose_name='Disk (GB)'
|
||||||
)
|
)
|
||||||
|
|
||||||
_interface_count = CounterCacheField(to_model='virtualization.VMInterface', to_field='virtual_machine')
|
# Counter fields
|
||||||
|
interface_count = CounterCacheField(
|
||||||
|
to_model='virtualization.VMInterface',
|
||||||
|
to_field='virtual_machine'
|
||||||
|
)
|
||||||
|
|
||||||
# Generic relation
|
# Generic relation
|
||||||
contacts = GenericRelation(
|
contacts = GenericRelation(
|
||||||
|
Loading…
Reference in New Issue
Block a user