Example #1
0
 def processor(sess, dm):
     log.info("Moving sent Dmail from Outbox to Sent.")
     remove_target = None
     for tag in dm.tags:
         if tag.name == "Outbox":
             remove_target = tag
             break
     dm.tags.remove(remove_target)
     dmail.attach_dmail_tag(sess, dm, "Sent")
     return True
Example #2
0
        def processor(sess, dm):
            if submit == "add_tag":
                dmail.attach_dmail_tag(sess, dm, qdict["add_tag"][0])
                return True
            elif submit == "move_to_tag":
                dm.tags.clear()
                dmail.attach_dmail_tag(sess, dm, qdict["add_tag"][0])
                return True
            elif submit == "remove_tag":
                if len(dm.tags) <= 1:
                    return False

                remove_tag = qdict["remove_tag"][0]
                remove_target = None
                for tag in dm.tags:
                    if tag.name == remove_tag:
                        remove_target = tag
                        break
                dm.tags.remove(remove_target)
                return True
            else:
                return False
Example #3
0
    def dbcall():
        with dispatcher.node.db.open_session() as sess:
            dispatcher.node.db.lock_table(sess, DmailMessage)

            if dm.data_key:
                q = sess.query(func.count("*")).select_from(DmailMessage).filter(DmailMessage.data_key == dm.data_key)

                if q.scalar():
                    log.warning("Not saving dmail we already have saved," " data_key=[{}].".format(dmail_key))
                    return None
            else:
                # Local only message, as we haven't sent it yet.
                dm.data_key = b""

            dmail.attach_dmail_tag(sess, dm, tag_name)

            sess.add(dm)

            sess.expire_on_commit = False
            sess.commit()

            return dm