diff --git a/bookwyrm/templates/settings/reports/report_filters.html b/bookwyrm/templates/settings/reports/report_filters.html new file mode 100644 index 00000000..48a3b7c8 --- /dev/null +++ b/bookwyrm/templates/settings/reports/report_filters.html @@ -0,0 +1,7 @@ +{% extends 'snippets/filters_panel/filters_panel.html' %} + +{% block filter_fields %} +{% include 'settings/users/username_filter.html' %} +{% include 'directory/community_filter.html' %} +{% include 'settings/users/server_filter.html' %} +{% endblock %} diff --git a/bookwyrm/templates/settings/reports/reports.html b/bookwyrm/templates/settings/reports/reports.html index c72fd03d..99cca1a7 100644 --- a/bookwyrm/templates/settings/reports/reports.html +++ b/bookwyrm/templates/settings/reports/reports.html @@ -30,7 +30,7 @@ -{% include 'settings/users/user_admin_filters.html' %} +{% include 'settings/reports/report_filters.html' %}
{% if not reports %} diff --git a/bookwyrm/templates/settings/users/email_filter.html b/bookwyrm/templates/settings/users/email_filter.html new file mode 100644 index 00000000..5d49d615 --- /dev/null +++ b/bookwyrm/templates/settings/users/email_filter.html @@ -0,0 +1,16 @@ +{% extends 'snippets/filters_panel/filter_field.html' %} +{% load i18n %} + +{% block filter %} + +
+ +
+{% endblock %} + diff --git a/bookwyrm/templates/settings/users/user.html b/bookwyrm/templates/settings/users/user.html index 676502e6..c18ba829 100644 --- a/bookwyrm/templates/settings/users/user.html +++ b/bookwyrm/templates/settings/users/user.html @@ -1,10 +1,23 @@ {% extends 'settings/layout.html' %} {% load i18n %} +{% load utilities %} {% block title %}{{ user.username }}{% endblock %} {% block header %} {{ user.username }} -{% trans "Back to users" %} +{% endblock %} + +{% block breadcrumbs %} + {% endblock %} {% block panel %} diff --git a/bookwyrm/templates/settings/users/user_admin.html b/bookwyrm/templates/settings/users/user_admin.html index 874ce818..e3de7793 100644 --- a/bookwyrm/templates/settings/users/user_admin.html +++ b/bookwyrm/templates/settings/users/user_admin.html @@ -1,5 +1,7 @@ {% extends 'settings/layout.html' %} {% load i18n %} +{% load utilities %} + {% block title %}{% trans "Users" %}{% endblock %} {% block header %} @@ -15,46 +17,67 @@ {% include 'settings/users/user_admin_filters.html' %} - - - {% url 'settings-users' as url %} - - - - - - - {% for user in users %} - - - - - - + {% for user in users %} + + + + + + {% if status != "local" %} + + {% endif %} + + {% endfor %} +
- {% trans "Username" as text %} - {% include 'snippets/table-sort-header.html' with field="username" sort=sort text=text %} - - {% trans "Date Added" as text %} - {% include 'snippets/table-sort-header.html' with field="created_date" sort=sort text=text %} - - {% trans "Last Active" as text %} - {% include 'snippets/table-sort-header.html' with field="last_active_date" sort=sort text=text %} - - {% trans "Status" as text %} - {% include 'snippets/table-sort-header.html' with field="is_active" sort=sort text=text %} - - {% trans "Remote instance" as text %} - {% include 'snippets/table-sort-header.html' with field="federated_server__server_name" sort=sort text=text %} -
{{ user.username }}{{ user.created_date }}{{ user.last_active_date }}{% if user.is_active %}{% trans "Active" %}{% else %}{% trans "Inactive" %}{% endif %} - {% if user.federated_server %} - {{ user.federated_server.server_name }} - {% elif not user.local %} - {% trans "Not set" %} +
+
+ +
+
+ +
+ + + {% url 'settings-users' as url %} + + + + + {% if status != "local" %} + {% endif %} - - - {% endfor %} -
+ {% trans "Username" as text %} + {% include 'snippets/table-sort-header.html' with field="username" sort=sort text=text %} + + {% trans "Date Added" as text %} + {% include 'snippets/table-sort-header.html' with field="created_date" sort=sort text=text %} + + {% trans "Last Active" as text %} + {% include 'snippets/table-sort-header.html' with field="last_active_date" sort=sort text=text %} + + {% trans "Status" as text %} + {% include 'snippets/table-sort-header.html' with field="is_active" sort=sort text=text %} + + {% trans "Remote instance" as text %} + {% include 'snippets/table-sort-header.html' with field="federated_server__server_name" sort=sort text=text %} +
+
{{ user|username }}{{ user.created_date }}{{ user.last_active_date }}{% if user.is_active %}{% trans "Active" %}{% else %}{% trans "Inactive" %}{% endif %} + {% if user.federated_server %} + {{ user.federated_server.server_name }} + {% else %} + {% trans "Not set" %} + {% endif %} +
+
{% include 'snippets/pagination.html' with page=users path=request.path %} {% endblock %} diff --git a/bookwyrm/templates/settings/users/user_admin_filters.html b/bookwyrm/templates/settings/users/user_admin_filters.html index 48a3b7c8..c5ab2dab 100644 --- a/bookwyrm/templates/settings/users/user_admin_filters.html +++ b/bookwyrm/templates/settings/users/user_admin_filters.html @@ -2,6 +2,11 @@ {% block filter_fields %} {% include 'settings/users/username_filter.html' %} -{% include 'directory/community_filter.html' %} + +{% if status != "local" %} {% include 'settings/users/server_filter.html' %} +{% else %} +{% include 'settings/users/email_filter.html' %} +{% endif %} + {% endblock %} diff --git a/bookwyrm/templates/settings/users/user_info.html b/bookwyrm/templates/settings/users/user_info.html index c60ae285..a5447931 100644 --- a/bookwyrm/templates/settings/users/user_info.html +++ b/bookwyrm/templates/settings/users/user_info.html @@ -71,14 +71,14 @@
{{ user.last_active_date }}
{% trans "Manually approved followers:" %}
-
{{ user.manually_approves_followers }}
+
{{ user.manually_approves_followers|yesno }}
{% trans "Discoverable:" %}
-
{{ user.discoverable }}
+
{{ user.discoverable|yesno }}
{% if not user.is_active %}
{% trans "Deactivation reason:" %}
-
{{ user.deactivation_reason }}
+
{{ user.get_deactivation_reason_display }}
{% endif %} {% if not user.is_active and user.deactivation_reason == "pending" %} @@ -104,7 +104,7 @@
{{ server.application_version }}
{% trans "Status:" %}
-
{{ server.status }}
+
{{ server.get_status_display }}
{% if server.notes %}
{% trans "Notes" %}
diff --git a/bookwyrm/urls.py b/bookwyrm/urls.py index b9c348a4..4d7f503f 100644 --- a/bookwyrm/urls.py +++ b/bookwyrm/urls.py @@ -125,6 +125,11 @@ urlpatterns = [ re_path( r"^settings/users/?$", views.UserAdminList.as_view(), name="settings-users" ), + re_path( + r"^settings/users/(?P(local|federated))\/?$", + views.UserAdminList.as_view(), + name="settings-users", + ), re_path( r"^settings/users/(?P\d+)/?$", views.UserAdmin.as_view(), diff --git a/bookwyrm/views/admin/user_admin.py b/bookwyrm/views/admin/user_admin.py index aa847959..df716d2c 100644 --- a/bookwyrm/views/admin/user_admin.py +++ b/bookwyrm/views/admin/user_admin.py @@ -19,7 +19,7 @@ from bookwyrm.settings import PAGE_LENGTH class UserAdminList(View): """admin view of users on this server""" - def get(self, request): + def get(self, request, status="local"): """list of users""" filters = {} server = request.GET.get("server") @@ -37,6 +37,8 @@ class UserAdminList(View): if email: filters["email__endswith"] = email + filters["local"] = status == "local" + users = models.User.objects.filter(**filters) sort = request.GET.get("sort", "-created_date") @@ -56,6 +58,7 @@ class UserAdminList(View): "users": paginated.get_page(request.GET.get("page")), "sort": sort, "server": server, + "status": status, } return TemplateResponse(request, "settings/users/user_admin.html", data)