diff --git a/bookwyrm/templates/moderation/reports.html b/bookwyrm/templates/moderation/reports.html index f486711f..72cadae5 100644 --- a/bookwyrm/templates/moderation/reports.html +++ b/bookwyrm/templates/moderation/reports.html @@ -8,6 +8,7 @@ {% trans "Reports" %} {% endif %} {% endblock %} + {% block header %} {% if server %} {% blocktrans with server_name=server.server_name %}Reports: {{ server_name }}{% endblocktrans %} @@ -29,6 +30,8 @@ +{% include 'settings/user_admin_filters.html' %} +
{% if not reports %} {% trans "No reports found." %} diff --git a/bookwyrm/templates/settings/federated_server.html b/bookwyrm/templates/settings/federated_server.html index 14b78af0..386433f3 100644 --- a/bookwyrm/templates/settings/federated_server.html +++ b/bookwyrm/templates/settings/federated_server.html @@ -39,14 +39,14 @@
{% trans "Users:" %}
{{ users.count }} - {% if server.user_set.count %}({% trans "View all" %}){% endif %} + {% if server.user_set.count %}({% trans "View all" %}){% endif %}
{% trans "Reports:" %}
{{ reports.count }} - {% if reports.count %}({% trans "View all" %}){% endif %} + {% if reports.count %}({% trans "View all" %}){% endif %}
diff --git a/bookwyrm/templates/settings/server_filter.html b/bookwyrm/templates/settings/server_filter.html new file mode 100644 index 00000000..fd8760cc --- /dev/null +++ b/bookwyrm/templates/settings/server_filter.html @@ -0,0 +1,7 @@ +{% extends 'snippets/filters_panel/filter_field.html' %} +{% load i18n %} + +{% block filter %} + + +{% endblock %} diff --git a/bookwyrm/templates/settings/user_admin.html b/bookwyrm/templates/settings/user_admin.html index bb0534e0..a96d37f5 100644 --- a/bookwyrm/templates/settings/user_admin.html +++ b/bookwyrm/templates/settings/user_admin.html @@ -13,6 +13,8 @@ {% block panel %} +{% include 'settings/user_admin_filters.html' %} + {% url 'settings-users' as url %} diff --git a/bookwyrm/templates/settings/user_admin_filters.html b/bookwyrm/templates/settings/user_admin_filters.html new file mode 100644 index 00000000..a7b5c8aa --- /dev/null +++ b/bookwyrm/templates/settings/user_admin_filters.html @@ -0,0 +1,6 @@ +{% extends 'snippets/filters_panel/filters_panel.html' %} + +{% block filter_fields %} +{% include 'settings/server_filter.html' %} +{% include 'settings/username_filter.html' %} +{% endblock %} diff --git a/bookwyrm/templates/settings/username_filter.html b/bookwyrm/templates/settings/username_filter.html new file mode 100644 index 00000000..d7da033a --- /dev/null +++ b/bookwyrm/templates/settings/username_filter.html @@ -0,0 +1,8 @@ +{% extends 'snippets/filters_panel/filter_field.html' %} +{% load i18n %} + +{% block filter %} + + +{% endblock %} + diff --git a/bookwyrm/views/federation.py b/bookwyrm/views/federation.py index 3803e92e..8712c463 100644 --- a/bookwyrm/views/federation.py +++ b/bookwyrm/views/federation.py @@ -29,7 +29,7 @@ class Federation(View): except ValueError: page = 1 - servers = models.FederatedServer.objects.all() + servers = models.FederatedServer.objects sort = request.GET.get("sort") sort_fields = ["created_date", "application_type", "server_name"] diff --git a/bookwyrm/views/reports.py b/bookwyrm/views/reports.py index cb1a62ff..b6c87c50 100644 --- a/bookwyrm/views/reports.py +++ b/bookwyrm/views/reports.py @@ -29,8 +29,10 @@ class Reports(View): resolved = request.GET.get("resolved") == "true" server = request.GET.get("server") if server: - server = get_object_or_404(models.FederatedServer, id=server) - filters["user__federated_server"] = server + filters["user__federated_server__server_name"] = server + username = request.GET.get("username") + if username: + filters["user__username__icontains"] = username filters["resolved"] = resolved data = { "resolved": resolved, diff --git a/bookwyrm/views/user_admin.py b/bookwyrm/views/user_admin.py index 1eb6089f..dd430f35 100644 --- a/bookwyrm/views/user_admin.py +++ b/bookwyrm/views/user_admin.py @@ -1,7 +1,6 @@ """ manage user """ from django.contrib.auth.decorators import login_required, permission_required from django.core.paginator import Paginator -from django.shortcuts import get_object_or_404 from django.template.response import TemplateResponse from django.utils.decorators import method_decorator from django.views import View @@ -29,10 +28,14 @@ class UserAdmin(View): filters = {} server = request.GET.get("server") if server: - server = get_object_or_404(models.FederatedServer, id=server) + server = models.FederatedServer.objects.filter(server_name=server).first() filters["federated_server"] = server + filters["federated_server__isnull"] = False + username = request.GET.get("username") + if username: + filters["username__icontains"] = username - users = models.User.objects.filter(**filters).all() + users = models.User.objects.filter(**filters) sort = request.GET.get("sort", "-created_date") sort_fields = [ @@ -46,5 +49,8 @@ class UserAdmin(View): users = users.order_by(sort) paginated = Paginator(users, PAGE_LENGTH) - data = {"users": paginated.get_page(page), "sort": sort, "server": server} + data = { + "users": paginated.get_page(page), + "sort": sort, "server": server, + } return TemplateResponse(request, "settings/user_admin.html", data)