Misc cleanup

This commit is contained in:
Jeremy Stretch 2023-10-17 10:01:25 -04:00
parent 3d05bdba87
commit 46b8c0e230
2 changed files with 4 additions and 13 deletions

View File

@ -62,7 +62,7 @@ def post_save_receiver(sender, instance, created, **kwargs):
update_counter(parent_model, new_pk, counter_name, 1) update_counter(parent_model, new_pk, counter_name, 1)
def post_delete_receiver(sender, instance, **kwargs): def post_delete_receiver(sender, instance, origin, **kwargs):
""" """
Update counter fields on related objects when a TrackingModelMixin subclass is deleted. Update counter fields on related objects when a TrackingModelMixin subclass is deleted.
""" """
@ -72,8 +72,7 @@ def post_delete_receiver(sender, instance, **kwargs):
# Decrement the parent's counter by one # Decrement the parent's counter by one
if parent_pk is not None: if parent_pk is not None:
# MPTT sends two delete signals if child element so guard against multiple decrements # MPTT sends two delete signals for child elements so guard against multiple decrements
origin = kwargs.get('origin')
if not origin or origin == instance: if not origin or origin == instance:
update_counter(parent_model, parent_pk, counter_name, -1) update_counter(parent_model, parent_pk, counter_name, -1)

View File

@ -87,11 +87,12 @@ class CountersTest(TestCase):
def test_mptt_child_delete(self): def test_mptt_child_delete(self):
device1, device2 = Device.objects.all() device1, device2 = Device.objects.all()
inventory_item1 = InventoryItem.objects.create(device=device1, name='Inventory Item 1') inventory_item1 = InventoryItem.objects.create(device=device1, name='Inventory Item 1')
inventory_item2 = InventoryItem.objects.create(device=device1, name='Inventory Item 1', parent=inventory_item1) inventory_item2 = InventoryItem.objects.create(device=device1, name='Inventory Item 2', parent=inventory_item1)
device1.refresh_from_db() device1.refresh_from_db()
self.assertEqual(device1.inventory_item_count, 2) self.assertEqual(device1.inventory_item_count, 2)
# Setup bulk_delete for the inventory items # Setup bulk_delete for the inventory items
self.add_permissions('dcim.delete_inventoryitem')
pk_list = device1.inventoryitems.values_list('pk', flat=True) pk_list = device1.inventoryitems.values_list('pk', flat=True)
data = { data = {
'pk': pk_list, 'pk': pk_list,
@ -99,15 +100,6 @@ class CountersTest(TestCase):
'_confirm': True, # Form button '_confirm': True, # Form button
} }
# Assign unconstrained permission
obj_perm = ObjectPermission(
name='Test permission',
actions=['delete']
)
obj_perm.save()
obj_perm.users.add(self.user.pk)
obj_perm.object_types.add(ContentType.objects.get_for_model(InventoryItem))
# Try POST with model-level permission # Try POST with model-level permission
self.client.post(reverse("dcim:inventoryitem_bulk_delete"), data) self.client.post(reverse("dcim:inventoryitem_bulk_delete"), data)
device1.refresh_from_db() device1.refresh_from_db()