diff options
| -rw-r--r-- | mailman/database/roster.py | 5 | ||||
| -rw-r--r-- | mailman/docs/users.txt | 37 |
2 files changed, 29 insertions, 13 deletions
diff --git a/mailman/database/roster.py b/mailman/database/roster.py index e811ee56e..41271dc36 100644 --- a/mailman/database/roster.py +++ b/mailman/database/roster.py @@ -238,9 +238,8 @@ class Memberships: def members(self): results = config.db.store.find( Member, - Member.address_id.is_in( - Select(Address, - Address.user_id == self._user.id))) + Address.user_id == self._user.id, + Member.address_id == Address.id) for member in results: yield member diff --git a/mailman/docs/users.txt b/mailman/docs/users.txt index 22e971399..e9ee4ca50 100644 --- a/mailman/docs/users.txt +++ b/mailman/docs/users.txt @@ -154,24 +154,41 @@ Subscriptions Users know which mailing lists they are subscribed to, regardless of membership role. + >>> user_1.link(address_1) + >>> sorted(address.address for address in user_1.addresses) + [u'zperson@example.com', u'zperson@example.net', u'zperson@example.org'] + >>> com = usermgr.get_address(u'zperson@example.com') + >>> org = usermgr.get_address(u'zperson@example.org') + >>> net = usermgr.get_address(u'zperson@example.net') + >>> from mailman.app.lifecycle import create_list >>> mlist_1 = create_list(u'xtest_1@example.com') >>> mlist_2 = create_list(u'xtest_2@example.com') >>> mlist_3 = create_list(u'xtest_3@example.com') >>> from mailman.interfaces import MemberRole - >>> address_1.subscribe(mlist_1, MemberRole.member) - <Member: zperson@example.net on xtest_1@example.com as MemberRole.member> - >>> address_1.subscribe(mlist_2, MemberRole.member) - <Member: zperson@example.net on xtest_2@example.com as MemberRole.member> - >>> address_1.subscribe(mlist_2, MemberRole.owner) - <Member: zperson@example.net on xtest_2@example.com as MemberRole.owner> - >>> address_1.subscribe(mlist_3, MemberRole.moderator) - <Member: zperson@example.net on xtest_3@example.com as MemberRole.moderator> + + >>> com.subscribe(mlist_1, MemberRole.member) + <Member: Zoe Person <zperson@example.com> on xtest_1@example.com as + MemberRole.member> + >>> org.subscribe(mlist_2, MemberRole.member) + <Member: zperson@example.org on xtest_2@example.com as MemberRole.member> + >>> org.subscribe(mlist_2, MemberRole.owner) + <Member: zperson@example.org on xtest_2@example.com as MemberRole.owner> + >>> net.subscribe(mlist_3, MemberRole.moderator) + <Member: zperson@example.net on xtest_3@example.com as + MemberRole.moderator> >>> memberships = user_1.memberships >>> from mailman.interfaces import IRoster >>> from zope.interface.verify import verifyObject >>> verifyObject(IRoster, memberships) True - >>> sorted(memberships.members) - XXX + >>> members = sorted(memberships.members) + >>> len(members) + 4 + >>> for member in sorted(members, key=lambda m: m.address.address): + ... print member.address.address, member.mailing_list, member.role + zperson@example.com xtest_1@example.com MemberRole.member + zperson@example.net xtest_3@example.com MemberRole.moderator + zperson@example.org xtest_2@example.com MemberRole.member + zperson@example.org xtest_2@example.com MemberRole.owner |
