ApprovalQueue: use a materialized table #240

Merged
Oleg-Komarov merged 4 commits from approval-queue-fix into main 2024-08-23 15:11:46 +02:00
Showing only changes of commit 9362feb2dd - Show all commits

View File

@ -52,9 +52,9 @@ def _update_approval_queue(
return return
if not created: if not created:
return return
if instance.type not in ApprovalActivity.STATUS_CHANGE_TYPES:
return
activity_count = ApprovalActivity.objects.filter(extension=instance.extension).count() activity_count = ApprovalActivity.objects.filter(extension=instance.extension).count()
if instance.type in ApprovalActivity.STATUS_CHANGE_TYPES:
ApprovalQueue.objects.update_or_create( ApprovalQueue.objects.update_or_create(
extension=instance.extension, extension=instance.extension,
defaults={ defaults={
@ -63,6 +63,10 @@ def _update_approval_queue(
'sortkey': instance.queue_sortkey, 'sortkey': instance.queue_sortkey,
}, },
) )
else:
if item := ApprovalQueue.objects.filter(extension=instance.extension).first():
item.activity_count = activity_count
item.save(update_fields={'activity_count'})
@receiver(pre_delete, sender=ApprovalActivity) @receiver(pre_delete, sender=ApprovalActivity)