From ddab9af564c8fc9542ea4e5228d3c93d796a2870 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Wed, 7 Apr 2021 13:06:29 -0700 Subject: [PATCH] Functional add server form --- .../templates/settings/add_server_form.html | 13 -------- bookwyrm/templates/settings/edit_server.html | 16 ++++++++++ bookwyrm/templates/settings/federation.html | 14 ++++---- bookwyrm/templates/settings/server_form.html | 32 ++++++++++++------- bookwyrm/urls.py | 5 +++ bookwyrm/views/__init__.py | 2 +- bookwyrm/views/federation.py | 23 ++++++++++++- 7 files changed, 70 insertions(+), 35 deletions(-) delete mode 100644 bookwyrm/templates/settings/add_server_form.html create mode 100644 bookwyrm/templates/settings/edit_server.html diff --git a/bookwyrm/templates/settings/add_server_form.html b/bookwyrm/templates/settings/add_server_form.html deleted file mode 100644 index ffb43043..00000000 --- a/bookwyrm/templates/settings/add_server_form.html +++ /dev/null @@ -1,13 +0,0 @@ -{% extends 'components/inline_form.html' %} -{% load i18n %} - -{% block header %} -{% trans "Add server" %} -{% endblock %} - -{% block form %} -
- {% include 'settings/server_form.html' %} -
-{% endblock %} - diff --git a/bookwyrm/templates/settings/edit_server.html b/bookwyrm/templates/settings/edit_server.html new file mode 100644 index 00000000..6510222d --- /dev/null +++ b/bookwyrm/templates/settings/edit_server.html @@ -0,0 +1,16 @@ +{% extends 'settings/admin_layout.html' %} +{% load i18n %} +{% block title %}{% trans "Add server" %}{% endblock %} + +{% block header %} +{% if form.server_name.value %}{{ form.server_name.value }}{% else %}{% trans "Add server" %}{% endif %} +{% trans "Back to server list" %} +{% endblock %} + +{% block panel %} + +
+ {% include 'settings/server_form.html' %} +
+ +{% endblock %} diff --git a/bookwyrm/templates/settings/federation.html b/bookwyrm/templates/settings/federation.html index 1106bc12..da5ed084 100644 --- a/bookwyrm/templates/settings/federation.html +++ b/bookwyrm/templates/settings/federation.html @@ -5,16 +5,14 @@ {% block header %}{% trans "Federated Servers" %}{% endblock %} {% block edit-button %} -{% trans "Add server" as button_text %} -{% include 'snippets/toggle/open_button.html' with controls_text="add-server" icon="plus" text=button_text focus="add-server-header" %} -{% endblock%} + + + {% trans "Add server" %} + + +{% endblock %} {% block panel %} - -
- {% include 'settings/add_server_form.html' with controls_text="add-server" %} -
- {% url 'settings-federation' as url %} diff --git a/bookwyrm/templates/settings/server_form.html b/bookwyrm/templates/settings/server_form.html index 4b9f6ef0..b86c3d03 100644 --- a/bookwyrm/templates/settings/server_form.html +++ b/bookwyrm/templates/settings/server_form.html @@ -1,32 +1,40 @@ {% load i18n %} {% csrf_token %} -
-

+

- -

-

+ + {% for error in form.server_name.errors %} +

{{ error | escape }}

+ {% endfor %} +
+
-

+
-

+

-

-

+ {% for error in form.application_type.errors %} +

{{ error | escape }}

+ {% endfor %} +
+
-

+ {% for error in form.application_version.errors %} +

{{ error | escape }}

+ {% endfor %} +

diff --git a/bookwyrm/urls.py b/bookwyrm/urls.py index 46398806..35856a4d 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/edit/?$", + views.EditFederatedServer.as_view(), + name="settings-edit-federated-server", + ), re_path( r"^settings/invites/?$", views.ManageInvites.as_view(), name="settings-invites" ), diff --git a/bookwyrm/views/__init__.py b/bookwyrm/views/__init__.py index d053e971..404c2f31 100644 --- a/bookwyrm/views/__init__.py +++ b/bookwyrm/views/__init__.py @@ -5,7 +5,7 @@ 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 +from .federation import Federation, FederatedServer, EditFederatedServer 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 96962768..bb33c5af 100644 --- a/bookwyrm/views/federation.py +++ b/bookwyrm/views/federation.py @@ -34,10 +34,31 @@ class Federation(View): servers = servers.order_by(sort) paginated = Paginator(servers, PAGE_LENGTH) - data = {"servers": paginated.page(page), "sort": sort, "form": forms.ServerForm} + + data = { + "servers": paginated.page(page), "sort": sort, "form": forms.ServerForm() + } return TemplateResponse(request, "settings/federation.html", data) +class EditFederatedServer(View): + """ manually add a server """ + + def get(self, request): + """ add server form """ + data = {"form": forms.ServerForm()} + return TemplateResponse(request, "settings/edit_server.html", data) + + def post(self, request): + """ add a server from the admin panel """ + form = forms.ServerForm(request.POST) + if not form.is_valid(): + data = {"form": form} + return TemplateResponse(request, "settings/edit_server.html", data) + server = form.save() + return redirect("settings-federated-server", server.id) + + @method_decorator(login_required, name="dispatch") @method_decorator( permission_required("bookwyrm.control_federation", raise_exception=True),