From 61c2d2a36a8577b39654cd7ed3b56eba71dcd465 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Tue, 1 Nov 2022 18:45:03 -0700 Subject: [PATCH 1/4] Use elided page range on user admin view --- bookwyrm/views/admin/user_admin.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/bookwyrm/views/admin/user_admin.py b/bookwyrm/views/admin/user_admin.py index c6827dcb7..4611a388c 100644 --- a/bookwyrm/views/admin/user_admin.py +++ b/bookwyrm/views/admin/user_admin.py @@ -10,7 +10,7 @@ from bookwyrm import forms, models from bookwyrm.settings import PAGE_LENGTH -# pylint: disable= no-self-use +# pylint: disable=no-self-use @method_decorator(login_required, name="dispatch") @method_decorator( permission_required("bookwyrm.moderate_user", raise_exception=True), @@ -55,8 +55,12 @@ class UserAdminList(View): users = users.order_by(sort) paginated = Paginator(users, PAGE_LENGTH) + page = paginated.get_page(request.GET.get("page")) data = { - "users": paginated.get_page(request.GET.get("page")), + "users": page, + "page_range": paginated.get_elided_page_range( + page.number, on_each_side=2, on_ends=1 + ), "sort": sort, "server": server, "status": status, From 6eab1fdd6d97fa05e0d307627f06aa3d0ebb3b5a Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Tue, 1 Nov 2022 18:59:04 -0700 Subject: [PATCH 2/4] Adds import admin view --- bookwyrm/models/import_job.py | 9 +++ bookwyrm/templates/settings/imports.html | 71 ++++++++++++++++++++++++ bookwyrm/templates/settings/layout.html | 6 ++ bookwyrm/urls.py | 3 + bookwyrm/views/__init__.py | 1 + bookwyrm/views/admin/imports.py | 33 +++++++++++ 6 files changed, 123 insertions(+) create mode 100644 bookwyrm/templates/settings/imports.html create mode 100644 bookwyrm/views/admin/imports.py diff --git a/bookwyrm/models/import_job.py b/bookwyrm/models/import_job.py index 556f133f9..7547cfcd2 100644 --- a/bookwyrm/models/import_job.py +++ b/bookwyrm/models/import_job.py @@ -48,6 +48,15 @@ class ImportJob(models.Model): """items that haven't been processed yet""" return self.items.filter(fail_reason__isnull=True, book__isnull=True) + @property + def item_count(self): + """How many books do you want to import???""" + return self.items.count() + + def pending_item_count(self): + """And how many pending items??""" + return self.pending_items.count() + class ImportItem(models.Model): """a single line of a csv being imported""" diff --git a/bookwyrm/templates/settings/imports.html b/bookwyrm/templates/settings/imports.html new file mode 100644 index 000000000..b5936abba --- /dev/null +++ b/bookwyrm/templates/settings/imports.html @@ -0,0 +1,71 @@ +{% extends 'settings/layout.html' %} +{% load i18n %} +{% load utilities %} + +{% block title %}{% trans "Imports" %}{% endblock %} + +{% block header %} +{% trans "Imports" %} +{% endblock %} + +{% block panel %} + +
+
+ +
+
+ +
+
+

{% trans "Marking an import as complete will not stop it." %}

+
+ + + {% url 'settings-imports' as url %} + + + + + + + + {% for import in imports %} + + + + + + + + + {% endfor %} +
+ {% trans "ID" %} + + {% trans "User" %} + + {% trans "Date Created" %} + + {% trans "Items" %} + + {% trans "Pending items" %} + {% trans "Actions" %}
{{ import.id }} + {{ import.user|username }} + {{ import.created_date }}{{ import.item_count }}{{ import.pending_item_count }} + +
+
+ +{% include 'snippets/pagination.html' with page=users path=request.path %} +{% endblock %} + diff --git a/bookwyrm/templates/settings/layout.html b/bookwyrm/templates/settings/layout.html index ffb21d4a6..f195bf754 100644 --- a/bookwyrm/templates/settings/layout.html +++ b/bookwyrm/templates/settings/layout.html @@ -76,6 +76,12 @@ {% endif %} {% if perms.edit_instance_settings %} +