def tasks_change_remind(self, tasks_uuid): """ Show dialog and change given tasks start date. Args: tasks_uuid: task to change Returns: True if date was changed. """ task = OBJ.Task.get(self._session, uuid=tasks_uuid[0]) alarm = None if task.alarm: alarm = DTU.datetime2timestamp(task.alarm) dlg = DlgRemindSettings(self._parent_wnd, alarm, task.alarm_pattern) if not dlg.run(True): return False if dlg.alarm: alarm = DTU.timestamp2datetime(dlg.alarm) alarm_pattern = None else: alarm = None alarm_pattern = dlg.alarm_pattern task.alarm = alarm task.alarm_pattern = alarm_pattern task_logic.update_task_alarm(task) tasks_to_save = [task] for task_uuid in tasks_uuid[1:]: task = OBJ.Task.get(self._session, uuid=task_uuid) task.alarm = alarm task.alarm_pattern = alarm_pattern task_logic.update_task_alarm(task) tasks_to_save.append(task) return task_logic.save_modified_tasks(tasks_to_save, self._session)
def _load_tasks(data, session, notify_cb): _LOG.info("_load_tasks") notify_cb(21, _("Loading tasks")) tasks = data.get("task") tasks_cache = _build_id_uuid_map(tasks) for task in sort_objects_by_parent(tasks): _replace_ids(task, tasks_cache, "parent_id") _convert_timestamps(task, "completed", "start_date", "due_date", "due_date_project", "hide_until") task["context_uuid"] = None task["folder_uuid"] = None task["goal_uuid"] = None task_obj = _create_or_update(session, objects.Task, task) task_logic.update_task_hide(task_obj) task_logic.update_task_alarm(task_obj) if tasks: del data["task"] notify_cb(29, _("Loaded %d tasks") % len(tasks_cache)) return tasks_cache
def _load_alarms(data, session, tasks_cache, notify_cb): _LOG.info("_load_alarms") notify_cb(35, _("Loading alarms")) alarms = data.get("alarm") or [] for alarm in alarms: task_uuid = _replace_ids(alarm, tasks_cache, "task_id") if not task_uuid: _LOG.error("load alarm error %r", alarm) continue _convert_timestamps(alarm, "alarm") task = session.query( # pylint: disable=E1101 objects.Task).filter_by(uuid=task_uuid).first() if task.modified <= alarm["modified"]: task.alarm = alarm["alarm"] task_logic.update_task_alarm(task) else: _LOG.debug("skip %r", alarm) if alarms: del data["alarm"] notify_cb(39, _("Loaded %d alarms") % len(alarms))
def task_change_remind(self): """ Show dialog and change task start date. Returns: True if date was changed. """ task = self._task alarm = None if task.alarm: alarm = DTU.datetime2timestamp(task.alarm) dlg = DlgRemindSettings(self._parent_wnd, alarm, task.alarm_pattern) if dlg.run(True): if dlg.alarm: task.alarm = DTU.timestamp2datetime(dlg.alarm) task.alarm_pattern = None else: task.alarm = None task.alarm_pattern = dlg.alarm_pattern task_logic.update_task_alarm(task) return True return False