diff options
| author | Barry Warsaw | 2014-11-02 14:55:10 -0500 |
|---|---|---|
| committer | Barry Warsaw | 2014-11-02 14:55:10 -0500 |
| commit | dfc451f81ccc8b0947fb3fa42e94c55026984cf8 (patch) | |
| tree | c9834271a2dc7fd7d998e5dd211a0ef047f8085e /src/mailman/model/autorespond.py | |
| parent | 0b1ee6fc8d224291c68c964a1af6b481921a13b3 (diff) | |
| parent | 1d9f6970b9a26ee576838b53f485b96365e3a6c2 (diff) | |
| download | mailman-dfc451f81ccc8b0947fb3fa42e94c55026984cf8.tar.gz mailman-dfc451f81ccc8b0947fb3fa42e94c55026984cf8.tar.zst mailman-dfc451f81ccc8b0947fb3fa42e94c55026984cf8.zip | |
Diffstat (limited to 'src/mailman/model/autorespond.py')
| -rw-r--r-- | src/mailman/model/autorespond.py | 41 |
1 files changed, 21 insertions, 20 deletions
diff --git a/src/mailman/model/autorespond.py b/src/mailman/model/autorespond.py index c5e736613..cfb9e017d 100644 --- a/src/mailman/model/autorespond.py +++ b/src/mailman/model/autorespond.py @@ -26,7 +26,8 @@ __all__ = [ ] -from storm.locals import And, Date, Desc, Int, Reference +from sqlalchemy import Column, Date, ForeignKey, Integer, desc +from sqlalchemy.orm import relationship from zope.interface import implementer from mailman.database.model import Model @@ -42,16 +43,18 @@ from mailman.utilities.datetime import today class AutoResponseRecord(Model): """See `IAutoResponseRecord`.""" - id = Int(primary=True) + __tablename__ = 'autoresponserecord' - address_id = Int() - address = Reference(address_id, 'Address.id') + id = Column(Integer, primary_key=True) - mailing_list_id = Int() - mailing_list = Reference(mailing_list_id, 'MailingList.id') + address_id = Column(Integer, ForeignKey('address.id'), index=True) + address = relationship('Address') - response_type = Enum(Response) - date_sent = Date() + mailing_list_id = Column(Integer, ForeignKey('mailinglist.id'), index=True) + mailing_list = relationship('MailingList') + + response_type = Column(Enum(Response)) + date_sent = Column(Date) def __init__(self, mailing_list, address, response_type): self.mailing_list = mailing_list @@ -71,12 +74,11 @@ class AutoResponseSet: @dbconnection def todays_count(self, store, address, response_type): """See `IAutoResponseSet`.""" - return store.find( - AutoResponseRecord, - And(AutoResponseRecord.address == address, - AutoResponseRecord.mailing_list == self._mailing_list, - AutoResponseRecord.response_type == response_type, - AutoResponseRecord.date_sent == today())).count() + return store.query(AutoResponseRecord).filter_by( + address=address, + mailing_list=self._mailing_list, + response_type=response_type, + date_sent=today()).count() @dbconnection def response_sent(self, store, address, response_type): @@ -88,10 +90,9 @@ class AutoResponseSet: @dbconnection def last_response(self, store, address, response_type): """See `IAutoResponseSet`.""" - results = store.find( - AutoResponseRecord, - And(AutoResponseRecord.address == address, - AutoResponseRecord.mailing_list == self._mailing_list, - AutoResponseRecord.response_type == response_type) - ).order_by(Desc(AutoResponseRecord.date_sent)) + results = store.query(AutoResponseRecord).filter_by( + address=address, + mailing_list=self._mailing_list, + response_type=response_type + ).order_by(desc(AutoResponseRecord.date_sent)) return (None if results.count() == 0 else results.first()) |
