From e095ec6860f0864a35688d9b15b3a8073976e8b8 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Wed, 29 May 2024 11:33:09 -0400 Subject: [PATCH] Fixes #13422: Rebuild MPTT trees for applicable models when merging staged changes --- netbox/extras/models/staging.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/netbox/extras/models/staging.py b/netbox/extras/models/staging.py index 6e381ce70..7ffbde089 100644 --- a/netbox/extras/models/staging.py +++ b/netbox/extras/models/staging.py @@ -4,6 +4,7 @@ from django.contrib.auth import get_user_model from django.contrib.contenttypes.fields import GenericForeignKey from django.db import models, transaction from django.utils.translation import gettext_lazy as _ +from mptt.models import MPTTModel from extras.choices import ChangeActionChoices from netbox.models import ChangeLoggedModel @@ -124,6 +125,11 @@ class StagedChange(CustomValidationMixin, EventRulesMixin, models.Model): instance = self.model.objects.get(pk=self.object_id) logger.info(f'Deleting {self.model._meta.verbose_name} {instance}') instance.delete() + + # Rebuild the MPTT tree where applicable + if issubclass(self.model, MPTTModel): + self.model.objects.rebuild() + apply.alters_data = True def get_action_color(self):