diff --git a/bookwyrm/templates/settings/federated_server.html b/bookwyrm/templates/settings/federated_server.html index 249d7106..6996557d 100644 --- a/bookwyrm/templates/settings/federated_server.html +++ b/bookwyrm/templates/settings/federated_server.html @@ -71,14 +71,34 @@
-

{% trans "Notes" %}

-

{{ server.notes }}

+
+
+

{% trans "Notes" %}

+
+
+ {% trans "Edit" as button_text %} + {% include 'snippets/toggle/open_button.html' with text=button_text icon="pencil" controls_text="edit-notes" %} +
+
+ {% if server.notes %} +

{{ server.notes }}

+ {% endif %} +

{% trans "Actions" %}

{% if server.status != 'blocked' %} -
+ {% csrf_token %}

{% trans "All users from this instance will be deactivated." %}

diff --git a/bookwyrm/tests/views/test_federation.py b/bookwyrm/tests/views/test_federation.py index 1ba18143..b31aaf09 100644 --- a/bookwyrm/tests/views/test_federation.py +++ b/bookwyrm/tests/views/test_federation.py @@ -64,7 +64,7 @@ class FederationViews(TestCase): self.assertEqual(server.status, "federated") - view = views.FederatedServer.as_view() + view = views.federation.block_server request = self.factory.post("") request.user = self.local_user request.user.is_superuser = True diff --git a/bookwyrm/urls.py b/bookwyrm/urls.py index f2d43a13..c5c52800 100644 --- a/bookwyrm/urls.py +++ b/bookwyrm/urls.py @@ -68,6 +68,11 @@ urlpatterns = [ views.FederatedServer.as_view(), name="settings-federated-server", ), + re_path( + r"^settings/federation/(?P\d+)/block?$", + views.federation.block_server, + name="settings-federated-server-block", + ), re_path( r"^settings/federation/(?P\d+)/unblock?$", views.federation.unblock_server, diff --git a/bookwyrm/views/__init__.py b/bookwyrm/views/__init__.py index 2dc7a1c6..d7bc4e13 100644 --- a/bookwyrm/views/__init__.py +++ b/bookwyrm/views/__init__.py @@ -5,7 +5,8 @@ from .block import Block, unblock from .books import Book, EditBook, ConfirmEditBook, Editions from .books import upload_cover, add_description, switch_edition, resolve_book from .directory import Directory -from .federation import Federation, FederatedServer, AddFederatedServer, unblock_server +from .federation import Federation, FederatedServer, AddFederatedServer +from .federation import block_server, unblock_server from .feed import DirectMessage, Feed, Replies, Status from .follow import follow, unfollow from .follow import accept_follow_request, delete_follow_request diff --git a/bookwyrm/views/federation.py b/bookwyrm/views/federation.py index 8a21c5a5..f34f7d19 100644 --- a/bookwyrm/views/federation.py +++ b/bookwyrm/views/federation.py @@ -88,12 +88,24 @@ class FederatedServer(View): return TemplateResponse(request, "settings/federated_server.html", data) def post(self, request, server): # pylint: disable=unused-argument - """ block a server """ + """ update note """ server = get_object_or_404(models.FederatedServer, id=server) - server.block() + server.notes = request.POST.get("notes") + server.save() return redirect("settings-federated-server", server.id) +@login_required +@require_POST +@permission_required("bookwyrm.control_federation", raise_exception=True) +# pylint: disable=unused-argument +def block_server(request, server): + """ block a server """ + server = get_object_or_404(models.FederatedServer, id=server) + server.block() + return redirect("settings-federated-server", server.id) + + @login_required @require_POST @permission_required("bookwyrm.control_federation", raise_exception=True)