diff options
| author | Abhilash Raj | 2014-09-12 18:38:19 +0530 |
|---|---|---|
| committer | Abhilash Raj | 2014-09-12 18:38:19 +0530 |
| commit | 4dc18daeaeaf65be50397293b54a9874bfaca228 (patch) | |
| tree | e30d97167205938b32ae407a5f5653f298d0309d /src/mailman/model/roster.py | |
| parent | db1f5638fe1ab83406a305c3f108c4a1bcfd9cd7 (diff) | |
| download | mailman-4dc18daeaeaf65be50397293b54a9874bfaca228.tar.gz mailman-4dc18daeaeaf65be50397293b54a9874bfaca228.tar.zst mailman-4dc18daeaeaf65be50397293b54a9874bfaca228.zip | |
Diffstat (limited to 'src/mailman/model/roster.py')
| -rw-r--r-- | src/mailman/model/roster.py | 38 |
1 files changed, 16 insertions, 22 deletions
diff --git a/src/mailman/model/roster.py b/src/mailman/model/roster.py index f641c2846..c8bfdc582 100644 --- a/src/mailman/model/roster.py +++ b/src/mailman/model/roster.py @@ -38,6 +38,7 @@ __all__ = [ #from storm.expr import And, Or +from sqlalchemy import and_, or_ from zope.interface import implementer from mailman.database.transaction import dbconnection @@ -65,8 +66,7 @@ class AbstractRoster: @dbconnection def _query(self, store): - return store.find( - Member, + return store.query(Member).filter( Member.list_id == self._mlist.list_id, Member.role == self.role) @@ -104,8 +104,7 @@ class AbstractRoster: @dbconnection def get_member(self, store, address): """See `IRoster`.""" - results = store.find( - Member, + results = store.query(Member).filter( Member.list_id == self._mlist.list_id, Member.role == self.role, Address.email == address, @@ -160,19 +159,17 @@ class AdministratorRoster(AbstractRoster): @dbconnection def _query(self, store): - return store.find( - Member, + return store.query(Member).filter( Member.list_id == self._mlist.list_id, - Or(Member.role == MemberRole.owner, + or_(Member.role == MemberRole.owner, Member.role == MemberRole.moderator)) @dbconnection def get_member(self, store, address): """See `IRoster`.""" - results = store.find( - Member, + results = store.query(Member).filter( Member.list_id == self._mlist.list_id, - Or(Member.role == MemberRole.moderator, + or_(Member.role == MemberRole.moderator, Member.role == MemberRole.owner), Address.email == address, Member.address_id == Address.id) @@ -206,10 +203,9 @@ class DeliveryMemberRoster(AbstractRoster): :return: A generator of members. :rtype: generator """ - results = store.find( - Member, - And(Member.list_id == self._mlist.list_id, - Member.role == MemberRole.member)) + results = store.query(Member).filter( + list_id == self._mlist.list_id, + role == MemberRole.member) for member in results: if member.delivery_mode in delivery_modes: yield member @@ -250,7 +246,7 @@ class Subscribers(AbstractRoster): @dbconnection def _query(self, store): - return store.find(Member, Member.list_id == self._mlist.list_id) + return store.query(Member).filter_by(list_id = self._mlist.list_id) @@ -265,11 +261,10 @@ class Memberships: @dbconnection def _query(self, store): - results = store.find( - Member, - Or(Member.user_id == self._user.id, - And(Address.user_id == self._user.id, - Member.address_id == Address.id))) + results = store.query(Member).filter( + or_(Member.user_id == self._user.id, + and_(Member.user_id == self._user.id, + Member.address_id == Address.id))) return results.config(distinct=True) @property @@ -297,8 +292,7 @@ class Memberships: @dbconnection def get_member(self, store, address): """See `IRoster`.""" - results = store.find( - Member, + results = store.query(Member).filter( Member.address_id == Address.id, Address.user_id == self._user.id) if results.count() == 0: |
