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 # Record an ObjectChange if applicable
objectchange = instance.to_objectchange(action) objectchange = instance.to_objectchange(action)
check_and_change = False
if m2m_changed: if m2m_changed:
qs = ObjectChange.objects.filter( qs = ObjectChange.objects.filter(
changed_object_type=ContentType.objects.get_for_model(instance), changed_object_type=ContentType.objects.get_for_model(instance),
@ -77,16 +78,15 @@ def handle_changed_object(sender, instance, **kwargs):
request_id=request.id request_id=request.id
) )
if not qs: if not qs:
if objectchange and objectchange.has_changes: check_and_change = True
objectchange.user = request.user
objectchange.request_id = request.id
objectchange.save()
else: else:
qs.update( qs.update(
postchange_data=objectchange.postchange_data postchange_data=objectchange.postchange_data
) )
else: else:
if objectchange and objectchange.has_changes: check_and_change = True
if check_and_change and objectchange and objectchange.has_changes:
objectchange.user = request.user objectchange.user = request.user
objectchange.request_id = request.id objectchange.request_id = request.id
objectchange.save() objectchange.save()