home · contact · privacy
Improve accounting scripts.
[misc] / todo_templates / do_todos.html
index fd6feb2ec392aebc199a6bd4da0800f864331a01..25211f0f0c0fbbde07334657b6f567f843f7e876 100644 (file)
@@ -5,6 +5,22 @@ td.number, td.checkbox { text-align: center; }
 td { vertical-align: middle; }
 td button { padding: 0em; }
 th.centered { text-align: center; }
+ul { margin: 0; }
+details > summary {
+    list-style-type: none;
+}
+details > summary.has_dependers {
+    list-style-type: '▶';
+}
+details[open] > summary.has_dependers {
+    list-style-type: '▼';
+}
+details > summary.has_deps::after {
+    content: '▶';
+}
+details[open] > summary.has_deps::after {
+    content: '▼';
+}
 {% endblock %}
 
 {% block content %}
@@ -22,6 +38,39 @@ comment: <input name="day_comment" value="{{day.comment|e}}">
 <input type="hidden" name="date" value="{{day.date}}" />
 </p>
 
+<p>
+task quick-add: <input name="choose_task" size=50 list="tasks" autocomplete="off">
+don't adopt, make new: <input type="checkbox" name="dont_adopt" />
+</p>
+<datalist id="tasks">
+{% for task in all_tasks %}
+<option value="{{task.id_}}">({{task.subtask_depth}}) {{task.title.now}}</option>
+{% endfor %}
+</datalist>
+
+{% if adoptable_past_todos %}
+<p>
+<details>
+<summary>
+there are adoptable/unfinished past todos ({{adoptable_past_todos|count}})
+</summary>
+<table class="alternating">
+<tr>
+<th>adopt?</th><th>date</th><th>title</th><th>comment</th>
+</tr
+{% for todo in adoptable_past_todos %}
+<tr>
+<td class="checkbox"><input name="choose_todo" type="checkbox" value="{{todo.id_}}"></td>
+<td>{{todo.earliest_date}}</td>
+<td><a href="todo?id={{todo.id_}}">{{todo.title|e}}</a></td>
+<td>{{todo.comment|e}}</td>
+</tr>
+{% endfor %}
+</table>
+</details>
+</p>
+{% endif %}
+
 <table class="alternating">
 <tr>
 <th {% if sort=='done' %}class="desc"{% endif %}>
@@ -43,7 +92,7 @@ comment: <input name="day_comment" value="{{day.comment|e}}">
 <tr>
 <input name="todo_id" value="{{todo.id_}}" type="hidden" >
 <td class="checkbox">
-<input name="done" type="checkbox" value="{{todo.id_}}" {% if todo.done %}checked{% endif %}>
+<input name="done" type="checkbox" value="{{todo.id_}}" {% if todo.done %}checked{% endif %} {% if todo.deps_done == false %}disabled{% endif %}>
 </td>
 <td class="number">
 <input class="effort_input" name="effort" type="number" step=0.1 size=7 value="{% if todo.day_effort is not none %}{{todo.day_effort}}{% endif %}" placeholder={{"%.1f"|format(todo.task.default_effort.then)}} >
@@ -52,7 +101,31 @@ comment: <input name="day_comment" value="{{day.comment|e}}">
 <input name="importance" type="number" step=0.1 size=7 value={{todo.importance}} } >
 </td>
 <td>
-<a href="todo?id={{todo.id_}}&return_to=do_todos">{% if todo.parents|length > 0 %}…:{% endif %}{{todo.title}}</a>
+{% if todo.dependers|length > 0 or todo.deps|length > 0 %}
+<details>
+<summary class="{% if todo.dependers|length > 0 %}has_dependers{% endif %} {% if todo.deps|length > 0 %}has_deps{% endif %}">
+{% endif %}
+<a href="todo?id={{todo.id_}}&return_to=do_todos">{{todo.title|e}}</a>
+{% if todo.dependers|length > 0 or todo.deps|length > 0 %}
+</summary>
+{% if todo.dependers|length > 0 %}
+dependers:
+<ul>
+{% for path in todo.depender_paths %}
+<li>{% for depender_todo in path %}<a href="todo?id={{depender_todo.id_}}&return_to=do_todos">{{ depender_todo.title|e }}</a> ▶ {% endfor %}…
+{% endfor %}
+</ul>
+{% endif %}
+{% if todo.deps|length > 0 %}
+depends on:
+<ul>
+{% for dep_todo in todo.deps %}
+<li>[{% if dep_todo.done %}✓{% else %} {% endif %}] <a href="todo?id={{dep_todo.id_}}&return_to=do_todos">{{ dep_todo.title|e }}</a>{% if dep_todo.deps|length > 0 %} ▶{% endif %}
+{% endfor %}
+</ul>
+{% endif %}
+</details>
+{% endif %}
 </td>
 <td>
 <input name="effort_comment" type="text" size=100 value="{{todo.comment|e}}" />