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" %}

+ + + + + + + + {% if not requests %} + + {% endif %} + {% for req in requests %} + + + + + + {% endfor %} +
{% trans "Date" %}{% trans "Email" %}{% trans "Status" %}
{% trans "No requests" %}
{{ req.created_date | naturaltime }}{{ req.email }}{% trans "Pending" %}
+ {% 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 """