home · contact · privacy
Refactor from_table_row methods of core DB models.
[plomtask] / plomtask / http.py
index cb00825d469989935f88cdd97132cc96f69b1492..55120fffe0de409ab74d3e9354cfd8a95e4506ad 100644 (file)
@@ -137,7 +137,7 @@ class TaskHandler(BaseHTTPRequestHandler):
         id_ = self.params.get_int_or_none('id')
         todo = Todo.by_id(self.conn, id_)
         return {'todo': todo,
-                'todo_candidates': Todo.by_date(self.conn, todo.day.date),
+                'todo_candidates': Todo.by_date(self.conn, todo.date),
                 'condition_candidates': Condition.all(self.conn)}
 
     def do_GET_conditions(self) -> dict[str, object]:
@@ -193,7 +193,7 @@ class TaskHandler(BaseHTTPRequestHandler):
         process_id = self.form_data.get_int_or_none('new_todo')
         if process_id is not None:
             process = Process.by_id(self.conn, process_id)
-            todo = Todo(None, process, False, day)
+            todo = Todo(None, process, False, day.date)
             todo.save(self.conn)
 
     def do_POST_todo(self) -> None:
@@ -225,23 +225,25 @@ class TaskHandler(BaseHTTPRequestHandler):
                                self.form_data.get_all_int('condition'))
         process.set_fulfills(self.conn, self.form_data.get_all_int('fulfills'))
         process.set_undoes(self.conn, self.form_data.get_all_int('undoes'))
-        process.save_without_steps(self.conn)
+        process.save_core(self.conn)
         assert process.id_ is not None  # for mypy
         process.explicit_steps = []
+        steps: list[tuple[int | None, int, int | None]] = []
         for step_id in self.form_data.get_all_int('steps'):
-            for step_process_id in\
-                    self.form_data.get_all_int(f'new_step_to_{step_id}'):
-                process.add_step(self.conn, None, step_process_id, step_id)
+            for step_process_id in self.form_data.get_all_int(
+                    f'new_step_to_{step_id}'):
+                steps += [(None, step_process_id, step_id)]
             if step_id not in self.form_data.get_all_int('keep_step'):
                 continue
             step_process_id = self.form_data.get_int(
                     f'step_{step_id}_process_id')
             parent_id = self.form_data.get_int_or_none(
                     f'step_{step_id}_parent_id')
-            process.add_step(self.conn, step_id, step_process_id, parent_id)
+            steps += [(step_id, step_process_id, parent_id)]
         for step_process_id in self.form_data.get_all_int('new_top_step'):
-            process.add_step(self.conn, None, step_process_id, None)
-        process.fix_steps(self.conn)
+            steps += [(None, step_process_id, None)]
+        process.set_steps(self.conn, steps)
+        process.save(self.conn)
 
     def do_POST_condition(self) -> None:
         """Update/insert Condition of ?id= and fields defined in postvars."""