Esempio n. 1
0
	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)
Esempio n. 2
0
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
Esempio n. 3
0
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))
Esempio n. 4
0
	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