def __init__(self): try: self.aliases = eval(Config.byName("ALIASES").value) except SQLObjectNotFound: self.aliases = {} except Exception, e: tui.error("Aliases syntax error. Ignored") self.aliases = {}
def parser_t_purge(self): parser = YokadiOptionParser() parser.set_usage("t_purge [options]") parser.set_description("Remove old done tasks from all projects.") parser.add_option("-f", "--force", dest="force", default=False, action="store_true", help="Skip confirmation prompt") delay = int(Config.byName("PURGE_DELAY").value) parser.add_option("-d", "--delay", dest="delay", default=delay, type="int", help="Delay (in days) after which done tasks are destroyed. Default is %d." % delay) return parser
def eventLoop(): """Main event loop""" delta=timedelta(hours=float(Config.byName("ALARM_DELAY").value)) suspend=timedelta(hours=float(Config.byName("ALARM_SUSPEND").value)) cmdDelayTemplate=Config.byName("ALARM_DELAY_CMD").value cmdDueTemplate=Config.byName("ALARM_DUE_CMD").value # For the two following dict, task id is key, and value is (duedate, triggerdate) triggeredDelayTasks={} triggeredDueTasks={} activeTaskFilter=[Task.q.status!="done", Task.q.projectID == Project.q.id, Project.q.active == True] while event[0]: time.sleep(DELAY) now=datetime.today().replace(microsecond=0) delayTasks=Task.select(AND(Task.q.dueDate < now+delta, Task.q.dueDate > now, *activeTaskFilter)) dueTasks=Task.select(AND(Task.q.dueDate < now, *activeTaskFilter)) processTasks(delayTasks, triggeredDelayTasks, cmdDelayTemplate, suspend) processTasks(dueTasks, triggeredDueTasks, cmdDueTemplate, suspend)