db.Integer, db.ForeignKey(User.id), index=True, nullable=False ) message_id = db.Column( db.Integer, db.ForeignKey(Message.id), index=True, nullable=False ) user = db.relationship(User) message = db.relationship(Message) # TODO change to hybrid property STATUS_NEED_NOTIFIED = status.op('&')(NOT_NEED_NOTIFIED) == 0 def __init__(self): self.status = self.INIT def mark_notified(self): self.status = MessageLog.status.op('|')(MessageLog.NOTIFIED) @classmethod def update_status(cls, message_ids, status, user_id): cls.query.filter( cls.message_id.in_(message_ids), cls.user_id==user_id, cls.status.op('&')(status) == 0 ).update(dict(status=cls.status.op('|')(status)), synchronize_session=False) db.session.commit() MessageLog.ABSENCE_MAIL_CONDITION = db.and_( MessageLog.STATUS_NEED_NOTIFIED, (db.func.now() - MessageLog.created) > config.ABSECE_MAIL_HOLD_DOWN )
nullable=False) message_id = db.Column(db.Integer, db.ForeignKey(Message.id), index=True, nullable=False) user = db.relationship(User) message = db.relationship(Message) # TODO change to hybrid property STATUS_NEED_NOTIFIED = status.op('&')(NOT_NEED_NOTIFIED) == 0 def __init__(self): self.status = self.INIT def mark_notified(self): self.status = MessageLog.status.op('|')(MessageLog.NOTIFIED) @classmethod def update_status(cls, message_ids, status, user_id): cls.query.filter(cls.message_id.in_(message_ids), cls.user_id == user_id, cls.status.op('&')(status) == 0).update( dict(status=cls.status.op('|')(status)), synchronize_session=False) db.session.commit() MessageLog.ABSENCE_MAIL_CONDITION = db.and_( MessageLog.STATUS_NEED_NOTIFIED, (db.func.now() - MessageLog.created) > config.ABSECE_MAIL_HOLD_DOWN)