From 857b8cbc8acd8caec21311de9c41357a79039e8c Mon Sep 17 00:00:00 2001 From: Barry Warsaw Date: Sat, 10 Oct 2009 11:18:56 -0400 Subject: database/model reorganization. Model classes go in mailman.model. Stock database support goes in mailman.database. Move stuff out of mailman/database/__init__.py. --- src/mailman/database/autorespond.py | 93 ------------------------------------- 1 file changed, 93 deletions(-) delete mode 100644 src/mailman/database/autorespond.py (limited to 'src/mailman/database/autorespond.py') diff --git a/src/mailman/database/autorespond.py b/src/mailman/database/autorespond.py deleted file mode 100644 index 0a84f30e3..000000000 --- a/src/mailman/database/autorespond.py +++ /dev/null @@ -1,93 +0,0 @@ -# Copyright (C) 2009 by the Free Software Foundation, Inc. -# -# This file is part of GNU Mailman. -# -# GNU Mailman is free software: you can redistribute it and/or modify it under -# the terms of the GNU General Public License as published by the Free -# Software Foundation, either version 3 of the License, or (at your option) -# any later version. -# -# GNU Mailman is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -# more details. -# -# You should have received a copy of the GNU General Public License along with -# GNU Mailman. If not, see . - -"""Module stuff.""" - -from __future__ import absolute_import, unicode_literals - -__metaclass__ = type -__all__ = [ - 'AutoResponseRecord', - 'AutoResponseSet', - ] - - -from storm.locals import And, Date, Desc, Int, Reference -from zope.interface import implements - -from mailman.config import config -from mailman.database.model import Model -from mailman.database.types import Enum -from mailman.interfaces.autorespond import ( - IAutoResponseRecord, IAutoResponseSet, Response) -from mailman.interfaces.mailinglist import IMailingList -from mailman.utilities.datetime import today - - - -class AutoResponseRecord(Model): - implements(IAutoResponseRecord) - - id = Int(primary=True) - - address_id = Int() - address = Reference(address_id, 'Address.id') - - mailing_list_id = Int() - mailing_list = Reference(mailing_list_id, 'MailingList.id') - - response_type = Enum() - date_sent = Date() - - def __init__(self, mailing_list, address, response_type): - self.mailing_list = mailing_list - self.address = address - self.response_type = response_type - self.date_sent = today() - - - -class AutoResponseSet: - implements(IAutoResponseSet) - - def __init__(self, mailing_list): - self._mailing_list = mailing_list - - def todays_count(self, address, response_type): - """See `IAutoResponseSet`.""" - return config.db.store.find( - AutoResponseRecord, - And(AutoResponseRecord.address == address, - AutoResponseRecord.mailing_list == self._mailing_list, - AutoResponseRecord.response_type == response_type, - AutoResponseRecord.date_sent == today())).count() - - def response_sent(self, address, response_type): - """See `IAutoResponseSet`.""" - response = AutoResponseRecord( - self._mailing_list, address, response_type) - config.db.store.add(response) - - def last_response(self, address, response_type): - """See `IAutoResponseSet`.""" - results = config.db.store.find( - AutoResponseRecord, - And(AutoResponseRecord.address == address, - AutoResponseRecord.mailing_list == self._mailing_list, - AutoResponseRecord.response_type == response_type) - ).order_by(Desc(AutoResponseRecord.date_sent)) - return (None if results.count() == 0 else results.first()) -- cgit v1.2.3-70-g09d2