Review feedback

This commit is contained in:
Arthur
2026-01-28 17:12:13 -08:00
parent de19447317
commit 44e5a4c177
3 changed files with 4 additions and 16 deletions
@@ -1,23 +1,12 @@
from django.db import migrations from django.db import migrations
import mptt.managers import mptt.managers
import mptt.models
def rebuild_mptt(apps, schema_editor): 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() manager = mptt.managers.TreeManager()
ModuleBay = apps.get_model('dcim', 'ModuleBay')
manager.model = ModuleBay manager.model = ModuleBay
mptt.register(ModuleBay)
manager.contribute_to_class(ModuleBay, 'objects') manager.contribute_to_class(ModuleBay, 'objects')
manager.rebuild() manager.rebuild()
+2
View File
@@ -330,6 +330,7 @@ class Module(TrackingModelMixin, PrimaryModel, ConfigContextModel):
component._location = self.device.location component._location = self.device.location
component._rack = self.device.rack component._rack = self.device.rack
# we handle create and update separately - this is for create
if not issubclass(component_model, MPTTModel): if not issubclass(component_model, MPTTModel):
component_model.objects.bulk_create(create_instances) component_model.objects.bulk_create(create_instances)
# Emit the post_save signal for each newly created object # Emit the post_save signal for each newly created object
@@ -349,6 +350,7 @@ class Module(TrackingModelMixin, PrimaryModel, ConfigContextModel):
update_fields = ['module'] update_fields = ['module']
# we handle create and update separately - this is for update
component_model.objects.bulk_update(update_instances, update_fields) component_model.objects.bulk_update(update_instances, update_fields)
# Emit the post_save signal for each updated object # Emit the post_save signal for each updated object
for component in update_instances: for component in update_instances:
@@ -534,7 +534,6 @@ class BulkImportView(GetReturnURLMixin, BaseMultiObjectView):
if issubclass(self.queryset.model, MPTTModel): if issubclass(self.queryset.model, MPTTModel):
with self.queryset.model.objects.delay_mptt_updates(): with self.queryset.model.objects.delay_mptt_updates():
saved_objects = self._process_import_records(form, request, records, prefetched_objects) saved_objects = self._process_import_records(form, request, records, prefetched_objects)
self.queryset.model.objects.rebuild()
else: else:
saved_objects = self._process_import_records(form, request, records, prefetched_objects) saved_objects = self._process_import_records(form, request, records, prefetched_objects)
@@ -915,8 +914,6 @@ class BulkRenameView(GetReturnURLMixin, BaseMultiObjectView):
for obj in selected_objects: for obj in selected_objects:
setattr(obj, self.field_name, obj.new_name) setattr(obj, self.field_name, obj.new_name)
obj.save() obj.save()
self.queryset.model.objects.rebuild()
else: else:
for obj in selected_objects: for obj in selected_objects:
setattr(obj, self.field_name, obj.new_name) setattr(obj, self.field_name, obj.new_name)