From c612f183ef82e60e704336d8aecf8c007ccfa7cc Mon Sep 17 00:00:00 2001
From: Raphael Michel
Date: Tue, 28 Mar 2023 09:23:42 +0200
Subject: [PATCH] Disable email rules if event is not live (#3181)
---
src/pretix/plugins/sendmail/signals.py | 2 ++
.../pretixplugins/sendmail/rule_create.html | 5 +++++
.../pretixplugins/sendmail/rule_inspect.html | 5 +++++
.../pretixplugins/sendmail/rule_list.html | 5 +++++
.../pretixplugins/sendmail/rule_update.html | 5 +++++
src/tests/plugins/sendmail/conftest.py | 2 +-
src/tests/plugins/sendmail/test_rules.py | 14 ++++++++++++++
7 files changed, 37 insertions(+), 1 deletion(-)
diff --git a/src/pretix/plugins/sendmail/signals.py b/src/pretix/plugins/sendmail/signals.py
index cc05479a2..043e7ad76 100644
--- a/src/pretix/plugins/sendmail/signals.py
+++ b/src/pretix/plugins/sendmail/signals.py
@@ -161,12 +161,14 @@ def sendmail_run_rules(sender, **kwargs):
mails.filter(
state=ScheduledMail.STATE_SCHEDULED,
computed_datetime__lte=timezone.now() - datetime.timedelta(days=2),
+ event__live=True,
).update(
state=ScheduledMail.STATE_MISSED
)
for m_id in mails.filter(
state__in=(ScheduledMail.STATE_SCHEDULED, ScheduledMail.STATE_FAILED),
rule__enabled=True,
+ event__live=True,
computed_datetime__gte=timezone.now() - datetime.timedelta(days=2),
computed_datetime__lte=timezone.now(),
).values_list('pk', flat=True):
diff --git a/src/pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_create.html b/src/pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_create.html
index 0dedc62e2..a34e1dc92 100644
--- a/src/pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_create.html
+++ b/src/pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_create.html
@@ -4,6 +4,11 @@
{% block title %}{% trans "Create Email Rule" %}{% endblock %}
{% block content %}
{% trans "Create Email Rule" %}
+ {% if not request.event.live %}
+
+ {% trans "Automated emails are not sent as long as your ticket shop is offline." %}
+
+ {% endif %}
{% block inner %}
+ {% if not request.event.live %}
+
+ {% trans "Automated emails are not sent as long as your ticket shop is offline." %}
+
+ {% endif %}
- {% trans "Email subject" %}
- {{ rule.subject }}
diff --git a/src/pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_list.html b/src/pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_list.html
index a6138e96d..d3fe4617e 100644
--- a/src/pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_list.html
+++ b/src/pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_list.html
@@ -10,6 +10,11 @@
your event.
{% endblocktrans %}
+ {% if not request.event.live %}
+
+ {% trans "Automated emails are not sent as long as your ticket shop is offline." %}
+
+ {% endif %}
{% if rules %}
diff --git a/src/pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_update.html b/src/pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_update.html
index 22d707c3e..893932380 100644
--- a/src/pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_update.html
+++ b/src/pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_update.html
@@ -5,6 +5,11 @@
{% block title %}{% trans "Update Email Rule" %}{% endblock %}
{% block content %}
{% trans "Update Email Rule" %}
+ {% if not request.event.live %}
+
+ {% trans "Automated emails are not sent as long as your ticket shop is offline." %}
+
+ {% endif %}
{% block inner %}