summaryrefslogtreecommitdiff
path: root/src/mailman/database/listmanager.py
diff options
context:
space:
mode:
authorBarry Warsaw2009-08-21 16:11:50 -0400
committerBarry Warsaw2009-08-21 16:11:50 -0400
commitda566eb047608ed2e65c71dd25979f01c825c843 (patch)
treee68dc2015f4bb933bcc32cbe0b9b44c66544f3de /src/mailman/database/listmanager.py
parente0693ed8106f80515f3ffddd92eb1ea9b77e38d3 (diff)
downloadmailman-da566eb047608ed2e65c71dd25979f01c825c843.tar.gz
mailman-da566eb047608ed2e65c71dd25979f01c825c843.tar.zst
mailman-da566eb047608ed2e65c71dd25979f01c825c843.zip
* Updated NEWS.txt for 3.0a3.
* Use the IListManager() adapter instead of hanging the list manager off of config.db. This makes the code somewhat cleaner.
Diffstat (limited to 'src/mailman/database/listmanager.py')
-rw-r--r--src/mailman/database/listmanager.py20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/mailman/database/listmanager.py b/src/mailman/database/listmanager.py
index f96e44d75..af581cc6e 100644
--- a/src/mailman/database/listmanager.py
+++ b/src/mailman/database/listmanager.py
@@ -29,7 +29,6 @@ import datetime
from zope.interface import implements
-from mailman.config import config
from mailman.database.mailinglist import MailingList
from mailman.interfaces.listmanager import IListManager, ListAlreadyExistsError
from mailman.interfaces.rest import IResolvePathNames
@@ -41,11 +40,20 @@ class ListManager(object):
implements(IListManager, IResolvePathNames)
+ def __init__(self, config):
+ """Create a list manager.
+
+ :param config: The configuration object.
+ :type config: `IConfiguration`
+ """
+ self.config = config
+ self.store = config.db.store
+
# pylint: disable-msg=R0201
def create(self, fqdn_listname):
"""See `IListManager`."""
listname, hostname = fqdn_listname.split('@', 1)
- mlist = config.db.store.find(
+ mlist = self.store.find(
MailingList,
MailingList.list_name == listname,
MailingList.host_name == hostname).one()
@@ -53,13 +61,13 @@ class ListManager(object):
raise ListAlreadyExistsError(fqdn_listname)
mlist = MailingList(fqdn_listname)
mlist.created_at = datetime.datetime.now()
- config.db.store.add(mlist)
+ self.store.add(mlist)
return mlist
def get(self, fqdn_listname):
"""See `IListManager`."""
listname, hostname = fqdn_listname.split('@', 1)
- mlist = config.db.store.find(MailingList,
+ mlist = self.store.find(MailingList,
list_name=listname,
host_name=hostname).one()
if mlist is not None:
@@ -69,7 +77,7 @@ class ListManager(object):
def delete(self, mlist):
"""See `IListManager`."""
- config.db.store.remove(mlist)
+ self.store.remove(mlist)
@property
def mailing_lists(self):
@@ -80,7 +88,7 @@ class ListManager(object):
@property
def names(self):
"""See `IListManager`."""
- for mlist in config.db.store.find(MailingList):
+ for mlist in self.store.find(MailingList):
yield '{0}@{1}'.format(mlist.list_name, mlist.host_name)
def get_mailing_lists(self):