home · contact · privacy
Refactor Process/ProcessStep setting and saving.
[plomtask] / plomtask / http.py
index cb00825d469989935f88cdd97132cc96f69b1492..25be899044d652145f166ad1ebed5ff3528b0db0 100644 (file)
@@ -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_id(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."""