diff --git a/bookwyrm/templates/settings/edit_server.html b/bookwyrm/templates/settings/edit_server.html
index 6510222d..dc0de7e8 100644
--- a/bookwyrm/templates/settings/edit_server.html
+++ b/bookwyrm/templates/settings/edit_server.html
@@ -3,14 +3,56 @@
{% block title %}{% trans "Add server" %}{% endblock %}
{% block header %}
-{% if form.server_name.value %}{{ form.server_name.value }}{% else %}{% trans "Add server" %}{% endif %}
+{% if server %}{{ server.server_name }}{% else %}{% trans "Add server" %}{% endif %}
{% trans "Back to server list" %}
{% endblock %}
{% block panel %}
-
{% trans "Details" %}
diff --git a/bookwyrm/templates/settings/server_form.html b/bookwyrm/templates/settings/server_form.html
deleted file mode 100644
index b86c3d03..00000000
--- a/bookwyrm/templates/settings/server_form.html
+++ /dev/null
@@ -1,47 +0,0 @@
-{% 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 35856a4d..4cf6fd52 100644
--- a/bookwyrm/urls.py
+++ b/bookwyrm/urls.py
@@ -73,6 +73,11 @@ urlpatterns = [
views.EditFederatedServer.as_view(),
name="settings-edit-federated-server",
),
+ re_path(
+ r"^settings/federation/edit/(?P\d+)?$",
+ 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/federation.py b/bookwyrm/views/federation.py
index bb33c5af..09f5040d 100644
--- a/bookwyrm/views/federation.py
+++ b/bookwyrm/views/federation.py
@@ -44,16 +44,21 @@ class Federation(View):
class EditFederatedServer(View):
""" manually add a server """
- def get(self, request):
+ def get(self, request, server=None):
""" add server form """
- data = {"form": forms.ServerForm()}
+ if server:
+ server = get_object_or_404(models.FederatedServer, id=server)
+ data = {"form": forms.ServerForm(instance=server), "server": server}
return TemplateResponse(request, "settings/edit_server.html", data)
- def post(self, request):
+ def post(self, request, server=None):
""" add a server from the admin panel """
- form = forms.ServerForm(request.POST)
+ if server:
+ server = get_object_or_404(models.FederatedServer, id=server)
+
+ form = forms.ServerForm(request.POST, instance=server)
if not form.is_valid():
- data = {"form": form}
+ data = {"form": form, "server": server}
return TemplateResponse(request, "settings/edit_server.html", data)
server = form.save()
return redirect("settings-federated-server", server.id)