diff --git a/scipost_django/submissions/factories/report.py b/scipost_django/submissions/factories/report.py index 7c04bffbdbf65fb1eec9aec7395b9adc408577a3..dd6915934937e37d68d68e9440f31088594eecae 100644 --- a/scipost_django/submissions/factories/report.py +++ b/scipost_django/submissions/factories/report.py @@ -2,6 +2,7 @@ __copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)" __license__ = "AGPL v3" +from django.db.models.signals import post_save import factory from common.faker import LazyRandEnum, fake @@ -22,6 +23,7 @@ from submissions.constants import ( from submissions.models import Report +@factory.django.mute_signals(post_save) class ReportFactory(factory.django.DjangoModelFactory): class Meta: model = Report diff --git a/scipost_django/submissions/models/report.py b/scipost_django/submissions/models/report.py index c532f16449b54f7695e35e8ff9e1292f1888ea19..c2965329186409f5eca0c078bc2d3d978bba9d92 100644 --- a/scipost_django/submissions/models/report.py +++ b/scipost_django/submissions/models/report.py @@ -5,6 +5,8 @@ __license__ = "AGPL v3" import subprocess from django.contrib.contenttypes.fields import GenericRelation from django.db import models +from django.db.models.signals import post_save +from django.dispatch import receiver from django.urls import reverse from django.utils.functional import cached_property @@ -169,12 +171,7 @@ class Report(SubmissionRelatedObjectMixin, models.Model): new_report_nr = 1 self.report_nr = new_report_nr - super_save = super().save(*args, **kwargs) - - if self.pdf_report and self.anonymous: - clean_pdf(self.pdf_report.path) - - return super_save + return super().save(*args, **kwargs) def get_absolute_url(self): """Return url of the Report on the Submission detail page.""" @@ -323,3 +320,9 @@ class Report(SubmissionRelatedObjectMixin, models.Model): .order_by("submission__submission_date") .last() ) + + +@receiver(post_save, sender=Report) +def clean_anonymous_report_pdf(sender, instance, created, **kwargs): + if instance.pdf_report and instance.anonymous: + clean_pdf(instance.pdf_report.path)