14947 DRY save logic

This commit is contained in:
Arthur 2024-02-02 08:51:16 -08:00
parent 6bed1cab1c
commit 110f963813

View File

@ -70,6 +70,7 @@ def handle_changed_object(sender, instance, **kwargs):
# Record an ObjectChange if applicable
objectchange = instance.to_objectchange(action)
check_and_change = False
if m2m_changed:
qs = ObjectChange.objects.filter(
changed_object_type=ContentType.objects.get_for_model(instance),
@ -77,19 +78,18 @@ def handle_changed_object(sender, instance, **kwargs):
request_id=request.id
)
if not qs:
if objectchange and objectchange.has_changes:
objectchange.user = request.user
objectchange.request_id = request.id
objectchange.save()
check_and_change = True
else:
qs.update(
postchange_data=objectchange.postchange_data
)
else:
if objectchange and objectchange.has_changes:
objectchange.user = request.user
objectchange.request_id = request.id
objectchange.save()
check_and_change = True
if check_and_change and objectchange and objectchange.has_changes:
objectchange.user = request.user
objectchange.request_id = request.id
objectchange.save()
# If this is an M2M change, update the previously queued webhook (from post_save)
queue = events_queue.get()