home · contact · privacy
Refactor ProcessStep code and undo replacement of implicit steps by explicit ones.
[plomtask] / plomtask / http.py
index 249de3286c946464d98c458118c06517206aafb9..2e0fc768b97e538084a7364e8d3437952e953f71 100644 (file)
@@ -10,7 +10,7 @@ from plomtask.days import Day
 from plomtask.exceptions import HandledException, BadFormatException, \
         NotFoundException
 from plomtask.db import DatabaseConnection, DatabaseFile
-from plomtask.processes import Process
+from plomtask.processes import Process, ProcessStep
 from plomtask.conditions import Condition
 from plomtask.todos import Todo
 
@@ -378,7 +378,8 @@ class TaskHandler(BaseHTTPRequestHandler):
         process.set_disables(self.conn, self.form_data.get_all_int('disables'))
         process.calendarize = self.form_data.get_all_str('calendarize') != []
         process.save(self.conn)
-        steps: list[tuple[int | None, int, int | None]] = []
+        assert isinstance(process.id_, int)
+        steps: list[ProcessStep] = []
         for step_id in self.form_data.get_all_int('keep_step'):
             if step_id not in self.form_data.get_all_int('steps'):
                 raise BadFormatException('trying to keep unknown step')
@@ -389,13 +390,15 @@ class TaskHandler(BaseHTTPRequestHandler):
                     f'step_{step_id}_process_id')
             parent_id = self.form_data.get_int_or_none(
                     f'step_{step_id}_parent_id')
-            steps += [(step_id, step_process_id, parent_id)]
+            steps += [ProcessStep(step_id, process.id_, step_process_id,
+                                  parent_id)]
         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}'):
-                steps += [(None, step_process_id, step_id)]
+                steps += [ProcessStep(None, process.id_, step_process_id,
+                                      step_id)]
         for step_process_id in self.form_data.get_all_int('new_top_step'):
-            steps += [(None, step_process_id, None)]
+            steps += [ProcessStep(None, process.id_, step_process_id, None)]
         process.uncache()
         process.set_steps(self.conn, steps)
         process.save(self.conn)