mirror of
https://github.com/pretix/pretix.git
synced 2026-05-08 15:44:02 +00:00
Fix creating to many ScheduledMails on subevent creation (#4620)
This commit is contained in:
committed by
GitHub
parent
e74d12e8b8
commit
5e4e88c91d
@@ -0,0 +1,19 @@
|
|||||||
|
# Generated by Django 4.2.16 on 2024-11-08 13:36
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
from django.db.models import F
|
||||||
|
|
||||||
|
|
||||||
|
def remove_unnecessary_mails(apps, schema_editor):
|
||||||
|
ScheduledMail = apps.get_model("sendmail", "ScheduledMail")
|
||||||
|
ScheduledMail.objects.filter(rule__subevent__isnull=False).exclude(subevent=F('rule__subevent')).delete()
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
dependencies = [
|
||||||
|
("sendmail", "0007_bigint"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RunPython(remove_unnecessary_mails),
|
||||||
|
]
|
||||||
@@ -65,11 +65,10 @@ def scheduled_mail_create(sender, **kwargs):
|
|||||||
with scope(organizer=event.organizer):
|
with scope(organizer=event.organizer):
|
||||||
existing_rules = ScheduledMail.objects.filter(subevent=subevent).values_list('rule_id', flat=True)
|
existing_rules = ScheduledMail.objects.filter(subevent=subevent).values_list('rule_id', flat=True)
|
||||||
to_create = []
|
to_create = []
|
||||||
for rule in event.sendmail_rules.all():
|
for rule in event.sendmail_rules.filter(subevent=None).exclude(id__in=existing_rules):
|
||||||
if rule.pk not in existing_rules and subevent:
|
sm = ScheduledMail(rule=rule, event=event, subevent=subevent)
|
||||||
sm = ScheduledMail(rule=rule, event=event, subevent=subevent)
|
sm.recompute()
|
||||||
sm.recompute()
|
to_create.append(sm)
|
||||||
to_create.append(sm)
|
|
||||||
ScheduledMail.objects.bulk_create(to_create)
|
ScheduledMail.objects.bulk_create(to_create)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user