diff --git a/admin_webapp/controllers/users.py b/admin_webapp/controllers/users.py index 32184b2..4aefaee 100644 --- a/admin_webapp/controllers/users.py +++ b/admin_webapp/controllers/users.py @@ -9,7 +9,7 @@ from flask_sqlalchemy import Pagination -from sqlalchemy import select, func, text, insert, update +from sqlalchemy import select, func, case, text, insert, update from sqlalchemy.orm import joinedload, selectinload from arxiv.base import logging @@ -112,7 +112,16 @@ def moderator_listing() -> dict: count_stmt = (select(func.count(Moderators.user_id))) - mods = session.scalars(report_stmt) + # mods = session.scalars(report_stmt) + mods = ( + session.query( + Moderators.user_id, + func.group_concat(func.concat(Moderators.archive, case([(Moderators.subject_class != '', '.',)], else_=''), Moderators.subject_class), order_by=(Moderators.archive, Moderators.subject_class), separator=', ').label('archive_subject_list'), + TapirUsers + ) + .join(TapirUsers, Moderators.user_id == TapirUsers.user_id) + .group_by(Moderators.user_id) + .all() + ) count = session.execute(count_stmt).scalar_one() - print(count) return dict(count=count, mods=mods) \ No newline at end of file diff --git a/admin_webapp/templates/user/moderators.html b/admin_webapp/templates/user/moderators.html index 84a20e8..5076d6e 100644 --- a/admin_webapp/templates/user/moderators.html +++ b/admin_webapp/templates/user/moderators.html @@ -1,5 +1,23 @@ {%- extends "base.html" -%} {%- block content -%}

Moderators by username

-
See also moderators by category. There are {{count}} moderators (excluding test categories)
-{%- endblock -%} \ No newline at end of file +
See also moderators by category. There are {{count}} moderators (excluding test categories)
+ + + + + + {%for mod in mods%} + + + + + + + {%endfor%} +
UsernameNameE-mailCategories
{{mod.TapirUsers.tapir_nicknames[0].nickname}} + {{mod.TapirUsers.first_name}} {{mod.TapirUsers.last_name}} + {{mod.TapirUsers.email}}{{mod.archive_subject_list|replace(',', ', ')|safe}}
+ + +{%- endblock content -%} \ No newline at end of file