From b51108ab229cb7cb470903e87e89b122484cf939 Mon Sep 17 00:00:00 2001 From: julia-luna <72915853+julia-luna@users.noreply.github.com> Date: Thu, 5 Nov 2020 18:40:53 +0100 Subject: [PATCH] Confirm disabling all notifications (#1845) --- .../pretixcontrol/user/notifications_disable.html | 13 +++++++++++++ src/pretix/control/views/user.py | 4 +++- src/tests/control/test_user.py | 4 ++-- 3 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 src/pretix/control/templates/pretixcontrol/user/notifications_disable.html diff --git a/src/pretix/control/templates/pretixcontrol/user/notifications_disable.html b/src/pretix/control/templates/pretixcontrol/user/notifications_disable.html new file mode 100644 index 000000000..a84ef01f2 --- /dev/null +++ b/src/pretix/control/templates/pretixcontrol/user/notifications_disable.html @@ -0,0 +1,13 @@ +{% extends "pretixcontrol/auth/base.html" %} +{% load i18n %} +{% load bootstrap3 %} +{% block title %}{% trans "Disable notifications" %}{% endblock %} +{% block content %} +
+ {% csrf_token %} +
+

Please confirm that you no longer want to receive notifications for any of your events.

+

+
+
+{% endblock %} \ No newline at end of file diff --git a/src/pretix/control/views/user.py b/src/pretix/control/views/user.py index 795d91f70..913c965e8 100644 --- a/src/pretix/control/views/user.py +++ b/src/pretix/control/views/user.py @@ -576,7 +576,9 @@ class User2FARegenerateEmergencyView(RecentAuthenticationRequiredMixin, Template class UserNotificationsDisableView(TemplateView): - def get(self, request, *args, **kwargs): + template_name = 'pretixcontrol/user/notifications_disable.html' + + def post(self, request, *args, **kwargs): user = get_object_or_404(User, notifications_token=kwargs.get('token'), pk=kwargs.get('id')) user.notifications_send = False user.save() diff --git a/src/tests/control/test_user.py b/src/tests/control/test_user.py index b7f09faa5..776d731ed 100644 --- a/src/tests/control/test_user.py +++ b/src/tests/control/test_user.py @@ -417,13 +417,13 @@ class UserSettingsNotificationsTest(SoupTest): def test_disable_all_via_link(self): assert self.user.notifications_send - self.client.get('/control/settings/notifications/off/{}/{}/'.format(self.user.pk, self.user.notifications_token)) + self.client.post('/control/settings/notifications/off/{}/{}/'.format(self.user.pk, self.user.notifications_token)) self.user.refresh_from_db() assert not self.user.notifications_send def test_disable_all_via_link_anonymous(self): self.client.logout() assert self.user.notifications_send - self.client.get('/control/settings/notifications/off/{}/{}/'.format(self.user.pk, self.user.notifications_token)) + self.client.post('/control/settings/notifications/off/{}/{}/'.format(self.user.pk, self.user.notifications_token)) self.user.refresh_from_db() assert not self.user.notifications_send