diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/mailman/rest/addresses.py | 10 |
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) |
