From d28db51a1442ecddf78cb6acd25368f75384e389 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Wed, 8 Sep 2021 16:24:13 -0700 Subject: [PATCH] Adds delete functionality --- bookwyrm/templates/settings/email_blocklist.html | 13 ++++++++----- bookwyrm/urls.py | 5 +++++ bookwyrm/views/email_blocklist.py | 13 ++++++++++++- 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/bookwyrm/templates/settings/email_blocklist.html b/bookwyrm/templates/settings/email_blocklist.html index d35b63429..f9e793788 100644 --- a/bookwyrm/templates/settings/email_blocklist.html +++ b/bookwyrm/templates/settings/email_blocklist.html @@ -45,11 +45,14 @@ - {% trans "Delete" as button_text %} - +
+ {% csrf_token %} + {% trans "Delete" as button_text %} + +
{% endfor %} diff --git a/bookwyrm/urls.py b/bookwyrm/urls.py index 0beff4de9..f80ef791a 100644 --- a/bookwyrm/urls.py +++ b/bookwyrm/urls.py @@ -146,6 +146,11 @@ urlpatterns = [ views.EmailBlocklist.as_view(), name="settings-email-blocks", ), + re_path( + r"^settings/email-blocks/(?P\d+)/delete/?$", + views.EmailBlocklist.as_view(), + name="settings-email-blocks-delete", + ), # moderation re_path(r"^settings/reports/?$", views.Reports.as_view(), name="settings-reports"), re_path( diff --git a/bookwyrm/views/email_blocklist.py b/bookwyrm/views/email_blocklist.py index 36717f4a5..2ed8c1524 100644 --- a/bookwyrm/views/email_blocklist.py +++ b/bookwyrm/views/email_blocklist.py @@ -1,5 +1,6 @@ """ moderation via flagged posts and users """ from django.contrib.auth.decorators import login_required, permission_required +from django.shortcuts import get_object_or_404, redirect from django.template.response import TemplateResponse from django.utils.decorators import method_decorator from django.views import View @@ -23,8 +24,11 @@ class EmailBlocklist(View): } return TemplateResponse(request, "settings/email_blocklist.html", data) - def post(self, request): + def post(self, request, domain_id=None): """create a new domain block""" + if domain_id: + return self.delete(request, domain_id) + form = forms.EmailBlocklistForm(request.POST) data = { "domains": models.EmailBlocklist.objects.order_by("-created_date").all(), @@ -36,3 +40,10 @@ class EmailBlocklist(View): data["form"] = forms.EmailBlocklistForm() return TemplateResponse(request, "settings/email_blocklist.html", data) + + # pylint: disable=unused-argument + def delete(self, request, domain_id): + """remove a domain block""" + domain = get_object_or_404(models.EmailBlocklist, id=domain_id) + domain.delete() + return redirect("settings-email-blocks")