diff --git a/bookwyrm/templates/settings/manage_invite_requests.html b/bookwyrm/templates/settings/manage_invite_requests.html
new file mode 100644
index 00000000..ef2a3356
--- /dev/null
+++ b/bookwyrm/templates/settings/manage_invite_requests.html
@@ -0,0 +1,42 @@
+{% extends 'settings/admin_layout.html' %}
+{% load i18n %}
+{% load humanize %}
+{% block header %}{% trans "Invite Requests" %}{% endblock %}
+{% block panel %}
+
+
+
+
+ {% trans "Invite Requests" %}
+
+
+
+ {% trans "Date" %} |
+ {% trans "Email" %} |
+ {% trans "Status" %} |
+
+ {% if not requests %}
+ {% trans "No requests" %} |
+ {% endif %}
+ {% for req in requests %}
+
+ {{ req.created_date | naturaltime }} |
+ {{ req.email }} |
+ {% trans "Pending" %} |
+
+ {% endfor %}
+
+ {% include 'snippets/pagination.html' with page=requests path=request.path %}
+
+{% endblock %}
diff --git a/bookwyrm/templates/settings/manage_invites.html b/bookwyrm/templates/settings/manage_invites.html
index 6bc7469b..7ce60908 100644
--- a/bookwyrm/templates/settings/manage_invites.html
+++ b/bookwyrm/templates/settings/manage_invites.html
@@ -3,6 +3,20 @@
{% block header %}{% trans "Invites" %}{% endblock %}
{% load humanize %}
{% block panel %}
+
+
+
{% trans "Generate New Invite" %}
diff --git a/bookwyrm/urls.py b/bookwyrm/urls.py
index ca58d300..e61758a8 100644
--- a/bookwyrm/urls.py
+++ b/bookwyrm/urls.py
@@ -54,6 +54,11 @@ urlpatterns = [
re_path(
r"^settings/invites/?$", views.ManageInvites.as_view(), name="settings-invites"
),
+ re_path(
+ r"^settings/requests/?$",
+ views.ManageInviteRequests.as_view(),
+ name="settings-invite-requests",
+ ),
re_path(
r"^invite-request/?$", views.InviteRequest.as_view(), name="invite-request"
),
diff --git a/bookwyrm/views/__init__.py b/bookwyrm/views/__init__.py
index 119fc492..24265741 100644
--- a/bookwyrm/views/__init__.py
+++ b/bookwyrm/views/__init__.py
@@ -13,7 +13,7 @@ from .goal import Goal, hide_goal
from .import_data import Import, ImportStatus
from .inbox import Inbox
from .interaction import Favorite, Unfavorite, Boost, Unboost
-from .invite import ManageInvites, Invite, InviteRequest
+from .invite import ManageInvites, Invite, InviteRequest, ManageInviteRequests
from .isbn import Isbn
from .landing import About, Home, Discover
from .list import Lists, List, Curate, UserLists
diff --git a/bookwyrm/views/invite.py b/bookwyrm/views/invite.py
index 0f5a65b6..03723d94 100644
--- a/bookwyrm/views/invite.py
+++ b/bookwyrm/views/invite.py
@@ -80,6 +80,27 @@ class Invite(View):
# post handling is in views.authentication.Register
+class ManageInviteRequests(View):
+ """ grant invites like the benevolent lord you are """
+
+ def get(self, request):
+ """ view a list of requests """
+ try:
+ page = int(request.GET.get("page", 1))
+ except ValueError:
+ page = 1
+
+ paginated = Paginator(
+ models.InviteRequest.objects.all().order_by("-created_date"),
+ PAGE_LENGTH,
+ )
+
+ data = {
+ "requests": paginated.page(page),
+ }
+ return TemplateResponse(request, "settings/manage_invite_requests.html", data)
+
+
class InviteRequest(View):
""" prospective users sign up here """