home · contact · privacy
Add foreign key restraints, expand and fix tests, add deletion and forking.
[misc] / todo_templates / task.html
1 {% extends 'base.html' %}
2
3
4
5 {% block css %}
6 tr.toplevel th { padding-right: 1em; }
7 tr.toplevel td, tr.toplevel th { padding-top: 1em; }
8 tr.lowlevel td, tr.lowlevel th { padding-top: 0em; }
9 {% endblock %}
10
11
12
13 {% macro draw_task(task) %}
14 <a href="task?id={{task.id_}}">{{task.title.now}}</a>
15 {% endmacro %}
16
17
18
19 {% macro task_with_deps(task, indent) %}
20 {% for i in range(indent) %}&nbsp;&nbsp;{% if loop.last %}+{% endif %}{% endfor %}
21 {{ draw_task(task) }}<br />
22 {% for task in task.deps %}
23 {{ task_with_deps(task, indent+1) }}
24 {% endfor %}
25 {% endmacro %}
26
27
28
29 {% block content %}
30 <h3>edit task</h3>
31
32 <form action="task" method="POST">
33 <input type="hidden" name="id" value="{{ task.id_ }}" />
34 <table>
35
36 <tr class="toplevel">
37 <th>add as todo</th>
38 <td><input name="add_as_todo" type="checkbox" /> to <input name="new_todo_date" value="{{ selected_date }}" />
39 </tr>
40
41 {% if task.forks_id %}
42 <tr class="toplevel">
43 <th>forks</th>
44 <td><a href="task?id={{task.forks_id}}">{{ task.forked_task.title.now|e }}</td>
45 </td>
46 </tr>
47 {% endif %}
48
49 <tr class="toplevel">
50 <th>title</th>
51 <td class="input">
52 <input name="title" type="text" value="{{ task.title.now|e }}" size=100 />
53 <details>
54 <summary>history</summary>
55 <ul>
56 {% for k,v in task.title.history.items() | sort(attribute='0', reverse=True) %}
57 <li>{{ k }}: {{ v|e }}
58 {% endfor %}
59 </ul>
60 </details>
61 </td>
62 </tr>
63
64 <tr class="toplevel">
65 <th>comment</th>
66 <td class="input">
67 <textarea name="comment" cols=100 rows=5>{{task.comment|e}}</textarea>
68 </td>
69 </tr>
70
71 <tr class="toplevel">
72 <th>default effort</th>
73 <td class="input">
74 <input type="number" name="default_effort" value="{{ task.default_effort.now }}" step=0.1 size=8 required />
75 <details>
76 <summary>history</summary>
77 <ul>
78 {% for k,v in task.default_effort.history.items() | sort(attribute='0', reverse=True) %}
79 <li>{{ k }}: {{ v|e }}
80 {% endfor %}
81 </ul>
82 </details>
83 </td>
84 </tr>
85
86 <tr class="toplevel">
87 <th>tags</th>
88 <td>
89 add: {{ macros.tagselection(submit_name='tag', selected_tags=task.tags.now, all_tags=tags) }}
90 <details>
91 <summary>history</summary>
92 <ul>
93 {% for k,v in task.tags.history.items() | sort(attribute='0', reverse=True) %}
94 <li>{{ k }}: {{ v|e }}
95 {% endfor %}
96 </ul>
97 </details>
98 </td>
99 </tr>
100
101 <tr class="toplevel">
102 <th>fence adoptions</th>
103 <td><input name="fences_adoptions" type="checkbox" {% if task.fences_adoptions.now %}checked{% endif %}/></td>
104 </tr>
105
106 <tr class="toplevel">
107 <th>dependers</th>
108 <td>
109 {% if task.dependers %}
110 <table>
111 {% for depender in task.dependers %}
112 <tr class="lowlevel">
113 <td>
114 <input name="depender" type="checkbox" value="{{depender.id_}}" checked/>
115 </td>
116 <td>
117 {{ draw_task(depender)}}
118 </td>
119 </tr>
120 {% endfor %}
121 </table>
122 {% endif %}
123 add: <input name="depender" list="tasks" autocomplete="off" />
124 </td>
125 </tr>
126
127 <tr class="toplevel">
128 <th>children</th>
129 <td>
130 {% if task.deps %}
131 <table>
132 {% for dep in task.deps %}
133 <tr class="lowlevel">
134 <td>
135 <input name="dep" type="checkbox" value="{{dep.id_}}" checked/>
136 </td>
137 <td>
138 {% if dep.deps %}
139 <details>
140 <summary>
141 {% endif %}
142 {{ draw_task(dep)}}
143 {% if dep.deps %}
144 </summary>
145 {% for s in dep.deps %}
146 {{ task_with_deps(s, 1) }}
147 {% endfor %}
148 </details>
149 {% endif %}
150 </td>
151 </tr>
152 {% endfor %}
153 </table>
154 {% endif %}
155 add: <input name="dep" list="tasks" autocomplete="off" />
156 </td>
157 </tr>
158 {{ macros.datalist_tasks(filtered_tasks) }}
159
160 {% if task.deps %}
161 <tr class="toplevel">
162 <th>as chain</th>
163 <td>
164 <table>
165 {% for dep in task.deps_chain %}
166 <tr class="lowlevel">
167 <td class="number">{{dep.deps_depth}}</td>
168 <td><a href="task?id={{ dep.id_ }}">{{dep.title.now}}</a></td>
169 </tr>
170 {% endfor %}
171 </table>
172 </td>
173 </tr>
174 {% endif %}
175
176 </table>
177 <input id="update_button" class="update" type="submit" name="update" value="update" />
178 <div class="delete">
179 <input class="update" type="submit" name="fork" value="fork" />
180 <input class="delete" type="submit" name="delete" value="delete" />
181 </div>
182 </form>
183 {% endblock %}