diff --git a/bookwyrm/templates/settings/email_blocklist.html b/bookwyrm/templates/settings/email_blocklist.html
index d35b6342..f9e79378 100644
--- a/bookwyrm/templates/settings/email_blocklist.html
+++ b/bookwyrm/templates/settings/email_blocklist.html
@@ -45,11 +45,14 @@
- {% trans "Delete" as button_text %}
-
+
|
{% endfor %}
diff --git a/bookwyrm/urls.py b/bookwyrm/urls.py
index 0beff4de..f80ef791 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 36717f4a..2ed8c152 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")