From 2f4c681e1c4d78eacc1daa5f297f06038b45912e Mon Sep 17 00:00:00 2001
From: Christian Heller <c.heller@plomlompom.de>
Date: Thu, 6 Jun 2024 07:30:02 +0200
Subject: [PATCH] Allow creation of new Todos rather than just adoption from
 Todo edit view.

---
 plomtask/http.py    | 4 ++++
 templates/todo.html | 4 +++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/plomtask/http.py b/plomtask/http.py
index 773548f..1a06f30 100644
--- a/plomtask/http.py
+++ b/plomtask/http.py
@@ -156,6 +156,7 @@ class TaskHandler(BaseHTTPRequestHandler):
         id_ = self.params.get_int('id')
         todo = Todo.by_id(self.conn, id_)
         return {'todo': todo,
+                'process_candidates': Process.all(self.conn),
                 'todo_candidates': Todo.by_date(self.conn, todo.date),
                 'condition_candidates': Condition.all(self.conn)}
 
@@ -359,6 +360,9 @@ class TaskHandler(BaseHTTPRequestHandler):
                 continue
             child = Todo.by_id(self.conn, child_id)
             todo.add_child(child)
+        for process_id in self.form_data.get_all_int('make'):
+            made = Todo.create_with_children(self.conn, process_id, todo.date)
+            todo.add_child(made)
         effort = self.form_data.get_str('effort', ignore_strict=True)
         todo.effort = float(effort) if effort else None
         todo.set_conditions(self.conn, self.form_data.get_all_int('condition'))
diff --git a/templates/todo.html b/templates/todo.html
index a2ef536..870eab3 100644
--- a/templates/todo.html
+++ b/templates/todo.html
@@ -69,7 +69,8 @@
 
 <tr>
 <th>children</th>
-<td>{{ macros.simple_checkbox_table("adopt", todo.children, "todo", "todo_candidates", "adopt", true) }}</td>
+<td>{{ macros.simple_checkbox_table("adopt", todo.children, "todo", "todo_candidates", "adopt", true) }}<br />
+make: <input name="make" list="process_candidates" autocomplete="off" /></td>
 </tr>
 
 </table>
@@ -77,6 +78,7 @@
 </form>
 
 {{ macros.datalist_of_titles("condition_candidates", condition_candidates) }}
+{{ macros.datalist_of_titles("process_candidates", process_candidates) }}
 <datalist id="todo_candidates">
 {% for candidate in todo_candidates %}
 <option value="{{candidate.id_}}">{{candidate.title.newest|e}} {{candidate.comment|e}}</option>
-- 
2.30.2