From 30003bee98aaa3ede9b1b617438cea80787ad46e Mon Sep 17 00:00:00 2001 From: Arthur Hanson Date: Wed, 31 Jul 2024 12:52:01 +0700 Subject: [PATCH] 17032 Convert Virtual Disk size from GB -> MB --- .../templates/virtualization/virtualdisk.html | 2 +- .../migrations/0041_convert_disk_size.py | 23 +++++++++++++++++++ .../virtualization/models/virtualmachines.py | 2 +- .../virtualization/tables/virtualmachines.py | 6 +++++ 4 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 netbox/virtualization/migrations/0041_convert_disk_size.py diff --git a/netbox/templates/virtualization/virtualdisk.html b/netbox/templates/virtualization/virtualdisk.html index 2cad4fcd8..c58a2fcd0 100644 --- a/netbox/templates/virtualization/virtualdisk.html +++ b/netbox/templates/virtualization/virtualdisk.html @@ -29,7 +29,7 @@ {% trans "Size" %} {% if object.size %} - {{ object.size }} {% trans "GB" context "Abbreviation for gigabyte" %} + {{ object.size|humanize_megabytes }} {% else %} {{ ''|placeholder }} {% endif %} diff --git a/netbox/virtualization/migrations/0041_convert_disk_size.py b/netbox/virtualization/migrations/0041_convert_disk_size.py new file mode 100644 index 000000000..dc391f77e --- /dev/null +++ b/netbox/virtualization/migrations/0041_convert_disk_size.py @@ -0,0 +1,23 @@ +# Generated by Django 5.0.7 on 2024-07-31 05:40 + +from django.db import migrations +from django.db.models import F + + +def convert_disk_size(apps, schema_editor): + VirtualDisk = apps.get_model('virtualization', 'VirtualDisk') + VirtualDisk.objects.filter(disk__isnull=False).update(disk=F('size') * 1000) + + +class Migration(migrations.Migration): + + dependencies = [ + ('virtualization', '0040_virtualmachine_serial_number'), + ] + + operations = [ + migrations.RunPython( + code=convert_disk_size, + reverse_code=migrations.RunPython.noop + ), + ] diff --git a/netbox/virtualization/models/virtualmachines.py b/netbox/virtualization/models/virtualmachines.py index 2b61a7d86..2a63a4547 100644 --- a/netbox/virtualization/models/virtualmachines.py +++ b/netbox/virtualization/models/virtualmachines.py @@ -431,7 +431,7 @@ class VMInterface(ComponentModel, BaseInterface, TrackingModelMixin): class VirtualDisk(ComponentModel, TrackingModelMixin): size = models.PositiveIntegerField( - verbose_name=_('size (GB)'), + verbose_name=_('size (MB)'), ) class Meta(ComponentModel.Meta): diff --git a/netbox/virtualization/tables/virtualmachines.py b/netbox/virtualization/tables/virtualmachines.py index 50be18ac5..9783013db 100644 --- a/netbox/virtualization/tables/virtualmachines.py +++ b/netbox/virtualization/tables/virtualmachines.py @@ -208,6 +208,9 @@ class VirtualDiskTable(NetBoxTable): 'data-name': lambda record: record.name, } + def render_size(self, value): + return humanize_megabytes(value) + class VirtualMachineVirtualDiskTable(VirtualDiskTable): actions = columns.ActionsColumn( @@ -219,3 +222,6 @@ class VirtualMachineVirtualDiskTable(VirtualDiskTable): 'pk', 'id', 'name', 'size', 'description', 'tags', 'actions', ) default_columns = ('pk', 'name', 'size', 'description') + + def render_size(self, value): + return humanize_megabytes(value)