summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBarry Warsaw2011-10-23 21:39:07 -0400
committerBarry Warsaw2011-10-23 21:39:07 -0400
commit8fb200c051fad7d1e26721e29a99509982f164f7 (patch)
tree9b579b3dc6f43a011359ad50277f781c52a47907
parent379aa1fac89428650e40ace3a672cdf43cc6aa73 (diff)
downloadmailman-8fb200c051fad7d1e26721e29a99509982f164f7.tar.gz
mailman-8fb200c051fad7d1e26721e29a99509982f164f7.tar.zst
mailman-8fb200c051fad7d1e26721e29a99509982f164f7.zip
-rw-r--r--src/mailman/rest/addresses.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/mailman/rest/addresses.py b/src/mailman/rest/addresses.py
index 5d479d9cb..d0b0fa1c9 100644
--- a/src/mailman/rest/addresses.py
+++ b/src/mailman/rest/addresses.py
@@ -137,6 +137,11 @@ class UserAddresses(_AddressBase):
+def membership_key(member):
+ # Sort first by mailing list, then by address, then by role.
+ return member.mailing_list, member.address.email, int(member.role)
+
+
class AddressMemberships(MemberCollection):
"""All the memberships of a particular email address."""
@@ -157,5 +162,6 @@ class AddressMemberships(MemberCollection):
user = getUtility(IUserManager).get_user(self._address.email)
if user is None:
return []
- return [member for member in user.memberships.members
- if member.address == self._address]
+ return sorted((member for member in user.memberships.members
+ if member.address == self._address),
+ key=membership_key)