diff options
| author | Aurélien Bompard | 2016-08-24 09:51:38 +0200 |
|---|---|---|
| committer | Barry Warsaw | 2016-10-26 08:39:07 -0400 |
| commit | e75d653f700dcf9a0a31550384d6511c47d024c1 (patch) | |
| tree | 24399f2887435e2d6d905757b78da0921c6dc584 /src/mailman/model/listmanager.py | |
| parent | 72197b0ca012c55b290230d846c6a65314c6fe05 (diff) | |
| download | mailman-e75d653f700dcf9a0a31550384d6511c47d024c1.tar.gz mailman-e75d653f700dcf9a0a31550384d6511c47d024c1.tar.zst mailman-e75d653f700dcf9a0a31550384d6511c47d024c1.zip | |
Add a method to find list using properties filters
This allows the filtering to be done at the database level. It also
makes list pagination much more efficient, since the slicing is done at
the database level too.
Diffstat (limited to 'src/mailman/model/listmanager.py')
| -rw-r--r-- | src/mailman/model/listmanager.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/mailman/model/listmanager.py b/src/mailman/model/listmanager.py index 681903ffc..c02736aab 100644 --- a/src/mailman/model/listmanager.py +++ b/src/mailman/model/listmanager.py @@ -29,6 +29,7 @@ from mailman.model.mailinglist import ( IAcceptableAliasSet, ListArchiver, MailingList) from mailman.model.mime import ContentFilter from mailman.utilities.datetime import now +from mailman.utilities.queries import QuerySequence from zope.event import notify from zope.interface import implementer @@ -121,3 +122,9 @@ class ListManager: for mail_host, list_name in result_set.values(MailingList.mail_host, MailingList.list_name): yield list_name, mail_host + + @dbconnection + def find(self, store, **kw): + query = store.query(MailingList).filter_by(**kw).order_by( + MailingList._list_id) + return QuerySequence(query) |
