summaryrefslogtreecommitdiff
path: root/Mailman/database/listmanager.py
diff options
context:
space:
mode:
authorBarry Warsaw2007-11-18 16:38:59 -0500
committerBarry Warsaw2007-11-18 16:38:59 -0500
commiteff07b15bedb17e51271a75f849447100b201734 (patch)
treec429a9e854007a64ad8373f97295f66a1ac190c7 /Mailman/database/listmanager.py
parent2b7304d722e9ca628d6550dbb024dfa78322e91f (diff)
parent8a7be9204a9170f9d9b0eb79c2726df0c7a1b4a9 (diff)
downloadmailman-eff07b15bedb17e51271a75f849447100b201734.tar.gz
mailman-eff07b15bedb17e51271a75f849447100b201734.tar.zst
mailman-eff07b15bedb17e51271a75f849447100b201734.zip
Diffstat (limited to 'Mailman/database/listmanager.py')
-rw-r--r--Mailman/database/listmanager.py25
1 files changed, 17 insertions, 8 deletions
diff --git a/Mailman/database/listmanager.py b/Mailman/database/listmanager.py
index 46f0aa859..48e7fe62c 100644
--- a/Mailman/database/listmanager.py
+++ b/Mailman/database/listmanager.py
@@ -15,17 +15,15 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
# USA.
-"""SQLAlchemy/Elixir based provider of IListManager."""
+"""A mailing list manager."""
import datetime
-from elixir import *
from zope.interface import implements
from Mailman import Errors
from Mailman.Utils import split_listname, fqdn_listname
from Mailman.configuration import config
-from Mailman.database.model import MailingList, Pendings
from Mailman.interfaces import IListManager
@@ -34,21 +32,30 @@ class ListManager(object):
implements(IListManager)
def create(self, fqdn_listname):
+ # Avoid circular imports.
+ from Mailman.database.model import MailingList
listname, hostname = split_listname(fqdn_listname)
- mlist = MailingList.get_by(list_name=listname,
- host_name=hostname)
+ mlist = config.db.store.find(
+ MailingList,
+ MailingList.list_name == listname,
+ MailingList.host_name == hostname).one()
if mlist:
raise Errors.MMListAlreadyExistsError(fqdn_listname)
mlist = MailingList(fqdn_listname)
mlist.created_at = datetime.datetime.now()
+ config.db.store.add(mlist)
return mlist
def delete(self, mlist):
- mlist.delete()
+ config.db.store.remove(mlist)
def get(self, fqdn_listname):
+ # Avoid circular imports.
+ from Mailman.database.model import MailingList
listname, hostname = split_listname(fqdn_listname)
- mlist = MailingList.get_by(list_name=listname, host_name=hostname)
+ mlist = config.db.store.find(MailingList,
+ list_name=listname,
+ host_name=hostname).one()
if mlist is not None:
# XXX Fixme
mlist._restore()
@@ -63,5 +70,7 @@ class ListManager(object):
@property
def names(self):
- for mlist in MailingList.query.filter_by().all():
+ # Avoid circular imports.
+ from Mailman.database.model import MailingList
+ for mlist in config.db.store.find(MailingList):
yield fqdn_listname(mlist.list_name, mlist.host_name)