Пример #1
0
        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
)
Пример #2
0
                        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)