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 ""
|