summaryrefslogtreecommitdiff
path: root/src/mailman/database
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
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')
-rw-r--r--src/mailman/database/__init__.py2
-rw-r--r--src/mailman/database/listmanager.py20
2 files changed, 14 insertions, 8 deletions
diff --git a/src/mailman/database/__init__.py b/src/mailman/database/__init__.py
index 5943df660..dbceaee56 100644
--- a/src/mailman/database/__init__.py
+++ b/src/mailman/database/__init__.py
@@ -36,7 +36,6 @@ from zope.interface import implements
import mailman.version
from mailman.config import config
-from mailman.database.listmanager import ListManager
from mailman.database.messagestore import MessageStore
from mailman.database.pending import Pendings
from mailman.database.requests import Requests
@@ -69,7 +68,6 @@ class StockDatabase:
# the database at the same time.
with Lock(os.path.join(config.LOCK_DIR, 'dbcreate.lck')):
self._create(debug)
- self.list_manager = ListManager()
self.user_manager = UserManager()
self.message_store = MessageStore()
self.pendings = Pendings()
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):