From d716d29c0a3ec61a12a29ece93578e2d52c1cb79 Mon Sep 17 00:00:00 2001 From: Arthur Hanson Date: Thu, 19 Sep 2024 13:40:05 -0700 Subject: [PATCH 1/3] 17419 rebuild module bay tree on upgrade --- .../migrations/0191_module_bay_rebuild.py | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 netbox/dcim/migrations/0191_module_bay_rebuild.py diff --git a/netbox/dcim/migrations/0191_module_bay_rebuild.py b/netbox/dcim/migrations/0191_module_bay_rebuild.py new file mode 100644 index 00000000000..86a57c300ec --- /dev/null +++ b/netbox/dcim/migrations/0191_module_bay_rebuild.py @@ -0,0 +1,20 @@ +from django.db import migrations + + +def rebuild_mptt(apps, schema_editor): + ModuleBay = apps.get_model('dcim', 'ModuleBay') + ModuleBay.objects.rebuild() + + +class Migration(migrations.Migration): + + dependencies = [ + ('dcim', '0190_nested_modules'), + ] + + operations = [ + migrations.RunPython( + code=rebuild_mptt, + reverse_code=migrations.RunPython.noop + ), + ] From b469e07ff9a6057c89f13b771c6bd28c5f4c2250 Mon Sep 17 00:00:00 2001 From: Arthur Hanson Date: Thu, 19 Sep 2024 14:24:08 -0700 Subject: [PATCH 2/3] 17419 rebuild module bay tree on upgrade --- netbox/dcim/migrations/0191_module_bay_rebuild.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netbox/dcim/migrations/0191_module_bay_rebuild.py b/netbox/dcim/migrations/0191_module_bay_rebuild.py index 86a57c300ec..7944c31aa3a 100644 --- a/netbox/dcim/migrations/0191_module_bay_rebuild.py +++ b/netbox/dcim/migrations/0191_module_bay_rebuild.py @@ -2,7 +2,7 @@ def rebuild_mptt(apps, schema_editor): - ModuleBay = apps.get_model('dcim', 'ModuleBay') + from dcim.models import ModuleBay ModuleBay.objects.rebuild() From b44b12dce9d553070e997fdb6fbaaa0f7269fb0f Mon Sep 17 00:00:00 2001 From: Arthur Hanson Date: Tue, 24 Sep 2024 14:46:54 -0700 Subject: [PATCH 3/3] 17419 use get_model --- netbox/dcim/migrations/0191_module_bay_rebuild.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/netbox/dcim/migrations/0191_module_bay_rebuild.py b/netbox/dcim/migrations/0191_module_bay_rebuild.py index 7944c31aa3a..2600632131f 100644 --- a/netbox/dcim/migrations/0191_module_bay_rebuild.py +++ b/netbox/dcim/migrations/0191_module_bay_rebuild.py @@ -1,9 +1,15 @@ from django.db import migrations +import mptt +import mptt.managers def rebuild_mptt(apps, schema_editor): - from dcim.models import ModuleBay - ModuleBay.objects.rebuild() + manager = mptt.managers.TreeManager() + ModuleBay = apps.get_model('dcim', 'ModuleBay') + manager.model = ModuleBay + mptt.register(ModuleBay) + manager.contribute_to_class(ModuleBay, 'objects') + manager.rebuild() class Migration(migrations.Migration):