From 44e5a4c177faa98cdc6ba5b1233dec6bc20f5029 Mon Sep 17 00:00:00 2001 From: Arthur Date: Wed, 28 Jan 2026 17:12:13 -0800 Subject: [PATCH] Review feedback --- .../migrations/0226_modulebay_rebuild_tree.py | 15 ++------------- netbox/dcim/models/modules.py | 2 ++ netbox/netbox/views/generic/bulk_views.py | 3 --- 3 files changed, 4 insertions(+), 16 deletions(-) diff --git a/netbox/dcim/migrations/0226_modulebay_rebuild_tree.py b/netbox/dcim/migrations/0226_modulebay_rebuild_tree.py index 1315b701b..c5671eabe 100644 --- a/netbox/dcim/migrations/0226_modulebay_rebuild_tree.py +++ b/netbox/dcim/migrations/0226_modulebay_rebuild_tree.py @@ -1,23 +1,12 @@ from django.db import migrations import mptt.managers -import mptt.models def rebuild_mptt(apps, schema_editor): - """ - Rebuild the MPTT tree for ModuleBay to apply new ordering. - """ - ModuleBay = apps.get_model('dcim', 'ModuleBay') - - # Set MPTTMeta with the correct order_insertion_by - class MPTTMeta: - order_insertion_by = ('module', 'name',) - - ModuleBay.MPTTMeta = MPTTMeta - ModuleBay._mptt_meta = mptt.models.MPTTOptions(MPTTMeta) - manager = mptt.managers.TreeManager() + ModuleBay = apps.get_model('dcim', 'ModuleBay') manager.model = ModuleBay + mptt.register(ModuleBay) manager.contribute_to_class(ModuleBay, 'objects') manager.rebuild() diff --git a/netbox/dcim/models/modules.py b/netbox/dcim/models/modules.py index eec728817..c6fd951f1 100644 --- a/netbox/dcim/models/modules.py +++ b/netbox/dcim/models/modules.py @@ -330,6 +330,7 @@ class Module(TrackingModelMixin, PrimaryModel, ConfigContextModel): component._location = self.device.location component._rack = self.device.rack + # we handle create and update separately - this is for create if not issubclass(component_model, MPTTModel): component_model.objects.bulk_create(create_instances) # Emit the post_save signal for each newly created object @@ -349,6 +350,7 @@ class Module(TrackingModelMixin, PrimaryModel, ConfigContextModel): update_fields = ['module'] + # we handle create and update separately - this is for update component_model.objects.bulk_update(update_instances, update_fields) # Emit the post_save signal for each updated object for component in update_instances: diff --git a/netbox/netbox/views/generic/bulk_views.py b/netbox/netbox/views/generic/bulk_views.py index b510c88ae..07fea5127 100644 --- a/netbox/netbox/views/generic/bulk_views.py +++ b/netbox/netbox/views/generic/bulk_views.py @@ -534,7 +534,6 @@ class BulkImportView(GetReturnURLMixin, BaseMultiObjectView): if issubclass(self.queryset.model, MPTTModel): with self.queryset.model.objects.delay_mptt_updates(): saved_objects = self._process_import_records(form, request, records, prefetched_objects) - self.queryset.model.objects.rebuild() else: saved_objects = self._process_import_records(form, request, records, prefetched_objects) @@ -915,8 +914,6 @@ class BulkRenameView(GetReturnURLMixin, BaseMultiObjectView): for obj in selected_objects: setattr(obj, self.field_name, obj.new_name) obj.save() - - self.queryset.model.objects.rebuild() else: for obj in selected_objects: setattr(obj, self.field_name, obj.new_name)