- process = Process.by_id(conn, process_id)
- todo = Todo(None, process, False, day)
- todo.save(conn)
-
- def do_POST_process(self, conn: DatabaseConnection, params: ParamsParser,
- form_data: PostvarsParser) -> None:
+ process = Process.by_id(self.conn, process_id)
+ todo = Todo(None, process, False, day.date)
+ todo.save(self.conn)
+
+ def do_POST_todo(self) -> None:
+ """Update Todo and its children."""
+ id_ = self.params.get_int('id')
+ todo = Todo.by_id(self.conn, id_)
+ adopted_child_ids = self.form_data.get_all_int('adopt')
+ for child in todo.children:
+ if child.id_ not in adopted_child_ids:
+ assert isinstance(child.id_, int)
+ child = Todo.by_id(self.conn, child.id_)
+ todo.remove_child(child)
+ for child_id in adopted_child_ids:
+ if child_id in [c.id_ for c in todo.children]:
+ continue
+ child = Todo.by_id(self.conn, child_id)
+ todo.add_child(child)
+ todo.set_conditions(self.conn, self.form_data.get_all_int('condition'))
+ todo.set_enables(self.conn, self.form_data.get_all_int('enables'))
+ todo.set_disables(self.conn, self.form_data.get_all_int('disables'))
+ todo.is_done = len(self.form_data.get_all_str('done')) > 0
+ todo.save(self.conn)
+ for condition in todo.enables:
+ condition.save(self.conn)
+ for condition in todo.disables:
+ condition.save(self.conn)
+
+ def do_POST_process(self) -> None: