mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
32 lines
874 B
Python
32 lines
874 B
Python
from django.db import migrations
|
|
|
|
from utilities.utils import to_meters
|
|
|
|
|
|
def recalculate_abs_length(apps, schema_editor):
|
|
"""
|
|
Recalculate absolute lengths for all cables with a length and length unit defined. Fixes
|
|
incorrectly calculated values as reported under bug #8377.
|
|
"""
|
|
Cable = apps.get_model('dcim', 'Cable')
|
|
|
|
cables = Cable.objects.filter(length__isnull=False).exclude(length_unit='')
|
|
for cable in cables:
|
|
cable._abs_length = to_meters(cable.length, cable.length_unit)
|
|
|
|
Cable.objects.bulk_update(cables, ['_abs_length'], batch_size=100)
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
('dcim', '0143_remove_primary_for_related_name'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.RunPython(
|
|
code=recalculate_abs_length,
|
|
reverse_code=migrations.RunPython.noop
|
|
),
|
|
]
|