diff --git a/core/signals.py b/core/signals.py index c2f8d3f1..9f63ea63 100644 --- a/core/signals.py +++ b/core/signals.py @@ -65,6 +65,9 @@ def create_promocode_on_user_referring(instance, created, **_kwargs): @receiver(post_save, sender=Order) def process_order_changes(instance, created, **_kwargs): + if type(instance.attributes) is not dict: + instance.attributes = {} + if not created: if instance.status != "PENDING" and instance.user: pending_orders = Order.objects.filter(user=instance.user, status="PENDING") @@ -116,6 +119,8 @@ def process_order_changes(instance, created, **_kwargs): instance.save() if instance.status == "FINISHED" and not instance.attributes.get("system_email_sent", False): + instance.attributes["system_email_sent"] = True + instance.save() send_order_finished_email.delay(instance.uuid) diff --git a/core/utils/emailing.py b/core/utils/emailing.py index 0f8d9388..dcdcdec7 100644 --- a/core/utils/emailing.py +++ b/core/utils/emailing.py @@ -163,10 +163,4 @@ def send_order_finished_email(order_pk: str) -> tuple[bool, str]: send_thank_you_email(shipped_ops) - if type(order.attributes) is not dict: - order.attributes = {} - - order.attributes["system_email_sent"] = True - order.save() - return True, str(order.uuid)