diff --git a/snikket_web/admin.py b/snikket_web/admin.py index 65445a0..9c8306c 100644 --- a/snikket_web/admin.py +++ b/snikket_web/admin.py @@ -485,21 +485,21 @@ async def edit_circle(id_: str) -> typing.Union[str, quart.Response]: return redirect(url_for(".circles")) raise - users = sorted( - await client.list_users(), - key=lambda x: x.localpart - ) + users = { + user.localpart: user + for user in await client.list_users() + } circle_members = [ - user for user in users - if user.localpart in circle.members + (localpart, users.get(localpart)) + for localpart in sorted(circle.members) ] form = EditCircleForm() - form.user_to_add.choices = [ - (user.localpart, user.localpart) - for user in users - if user.localpart not in circle.members - ] + form.user_to_add.choices = sorted( + (localpart, localpart) + for localpart in users.keys() + if localpart not in circle.members + ) valid_users = [x[0] for x in form.user_to_add.choices] invite_form = InvitePost() diff --git a/snikket_web/templates/admin_edit_circle.html b/snikket_web/templates/admin_edit_circle.html index dc1a355..b158688 100644 --- a/snikket_web/templates/admin_edit_circle.html +++ b/snikket_web/templates/admin_edit_circle.html @@ -1,5 +1,5 @@ {% extends "admin_app.html" %} -{% from "library.j2" import form_button, standard_button, value_or_hint, custom_form_button, clipboard_button %} +{% from "library.j2" import form_button, standard_button, value_or_hint, custom_form_button, clipboard_button, icon %} {% block head_lead %} {{ super() }} {% include "copy-snippet.html" %} @@ -61,9 +61,16 @@ {% trans %}Actions{% endtrans %} -{%- for member in circle_members -%} +{%- for localpart, member in circle_members -%} - {{ member.localpart }} + + {%- if member -%} + {{ localpart }} + {%- else -%} + {{ localpart }} + ({% trans %}deleted{% endtrans %}) + {%- endif -%} + {% call value_or_hint(member.display_name) %}{% endcall %} {%- call custom_form_button("remove_user", form.action_remove_user.name, member.localpart, class="primary danger", slim=True) -%} diff --git a/snikket_web/translations/messages.pot b/snikket_web/translations/messages.pot index ad7b384..c32a078 100644 --- a/snikket_web/translations/messages.pot +++ b/snikket_web/translations/messages.pot @@ -591,28 +591,37 @@ msgstr "" msgid "Circle members" msgstr "" -#: snikket_web/templates/admin_edit_circle.html:70 +#: snikket_web/templates/admin_edit_circle.html:71 +msgid "The user has been deleted from the server." +msgstr "" + +#: snikket_web/templates/admin_edit_circle.html:71 +#: snikket_web/templates/library.j2:108 +msgid "deleted" +msgstr "" + +#: snikket_web/templates/admin_edit_circle.html:77 #, python-format msgid "Remove user %(username)s from circle" msgstr "" -#: snikket_web/templates/admin_edit_circle.html:78 +#: snikket_web/templates/admin_edit_circle.html:85 msgid "This circle currently has no members." msgstr "" -#: snikket_web/templates/admin_edit_circle.html:80 +#: snikket_web/templates/admin_edit_circle.html:87 msgid "Invite more members" msgstr "" -#: snikket_web/templates/admin_edit_circle.html:83 +#: snikket_web/templates/admin_edit_circle.html:90 msgid "Add existing user" msgstr "" -#: snikket_web/templates/admin_edit_circle.html:94 +#: snikket_web/templates/admin_edit_circle.html:101 msgid "All users added" msgstr "" -#: snikket_web/templates/admin_edit_circle.html:95 +#: snikket_web/templates/admin_edit_circle.html:102 msgid "All users on this service are already in this circle." msgstr "" @@ -1316,10 +1325,6 @@ msgstr "" msgid "Invalid input" msgstr "" -#: snikket_web/templates/library.j2:108 -msgid "deleted" -msgstr "" - #: snikket_web/templates/library.j2:122 msgid "Can be used multiple times to create accounts on this Snikket service." msgstr ""