From: Christian Heller <c.heller@plomlompom.de>
Date: Sat, 18 May 2024 01:40:54 +0000 (+0200)
Subject: Add Todo.title shortcut to Todo.process.title for more template refactoring.
X-Git-Url: https://plomlompom.com/repos/%7B%7Bprefix%7D%7D/%7B%7B%20web_path%20%7D%7D/static/%7B%7Bdb.prefix%7D%7D/test?a=commitdiff_plain;h=9e297373770305a915dbe987bf6fda02db704ec6;p=plomtask

Add Todo.title shortcut to Todo.process.title for more template refactoring.
---

diff --git a/plomtask/todos.py b/plomtask/todos.py
index a9bd94c..0313e55 100644
--- a/plomtask/todos.py
+++ b/plomtask/todos.py
@@ -5,6 +5,7 @@ from typing import Any
 from sqlite3 import Row
 from plomtask.db import DatabaseConnection, BaseModel
 from plomtask.processes import Process
+from plomtask.versioned_attributes import VersionedAttribute
 from plomtask.conditions import Condition, ConditionsRelations
 from plomtask.exceptions import (NotFoundException, BadFormatException,
                                  HandledException)
@@ -128,6 +129,11 @@ class Todo(BaseModel[int], ConditionsRelations):
                 for condition in self.disables:
                     condition.is_active = False
 
+    @property
+    def title(self) -> VersionedAttribute:
+        """Shortcut to .process.title."""
+        return self.process.title
+
     def adopt_from(self, todos: list[Todo]) -> bool:
         """As far as possible, fill unsatisfied dependencies from todos."""
         adopted = False
diff --git a/templates/day.html b/templates/day.html
index da5e17a..ce16f28 100644
--- a/templates/day.html
+++ b/templates/day.html
@@ -177,5 +177,5 @@ add todo: <input name="new_todo" list="processes" autocomplete="off" />
 
 </form>
 
-{{ macros.datalist_of_direct_titles("processes", processes) }}
+{{ macros.datalist_of_titles("processes", processes) }}
 {% endblock %}
diff --git a/templates/process.html b/templates/process.html
index 41f8117..5aebe53 100644
--- a/templates/process.html
+++ b/templates/process.html
@@ -95,6 +95,6 @@ add: <input name="new_top_step" list="step_candidates" autocomplete="off" />
 {{ macros.edit_buttons() }}
 </form>
 
-{{ macros.datalist_of_direct_titles("condition_candidates", condition_candidates) }}
-{{ macros.datalist_of_direct_titles("step_candidates", step_candidates) }}
+{{ macros.datalist_of_titles("condition_candidates", condition_candidates) }}
+{{ macros.datalist_of_titles("step_candidates", step_candidates) }}
 {% endblock %}
diff --git a/templates/todo.html b/templates/todo.html
index d3957af..71f2e1b 100644
--- a/templates/todo.html
+++ b/templates/todo.html
@@ -54,23 +54,13 @@
 
 <tr>
 <th>children</th>
-<td>
-<table>
-{% for child in todo.children %}
-<tr>
-<td><input type="checkbox" name="adopt" value="{{child.id_}}" checked /></td>
-<td><a href="todo?id={{child.id_}}">{{child.process.title.newest|e}}</a></td>
-</tr>
-{% endfor %}
-</table>
-adopt: <input name="adopt" list="todo_candidates" autocomplete="off" />
-</td>
+<td>{{ macros.simple_checkbox_table("adopt", todo.children, "adopt", "todo_candidates", "adopt") }}</td>
 </tr>
 
 </table>
 {{ macros.edit_buttons() }}
 </form>
 
-{{ macros.datalist_of_direct_titles("condition_candidates", condition_candidates) }}
-{{ macros.datalist_of_indirect_titles("todo_candidates", todo_candidates) }}
+{{ macros.datalist_of_titles("condition_candidates", condition_candidates) }}
+{{ macros.datalist_of_titles("todo_candidates", todo_candidates) }}
 {% endblock %}