home · contact · privacy
Improve accounting scripts.
[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="task_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 {{ selected_date }}</td>
39 <input name="selected_date" type="hidden" value="{{ selected_date }}" />
40 </tr>
41
42 <tr class="toplevel">
43 <th>title</th>
44 <td class="input">
45 <input name="title" type="text" value="{{ task.title.now|e }}" size=100 />
46 <details>
47 <summary>history</summary>
48 <ul>
49 {% for k,v in task.title.history.items() | sort(attribute='0', reverse=True) %}
50 <li>{{ k }}: {{ v|e }}
51 {% endfor %}
52 </ul>
53 </details>
54 </td>
55 </tr>
56
57 <tr class="toplevel">
58 <th>comment</th>
59 <td class="input">
60 <textarea name="comment" cols=100 rows=5>{{task.comment|e}}</textarea>
61 </td>
62 </tr>
63
64 <tr class="toplevel">
65 <th>default effort</th>
66 <td class="input">
67 <input type="number" name="default_effort" value="{{ task.default_effort.now }}" step=0.1 size=8 required />
68 <details>
69 <summary>history</summary>
70 <ul>
71 {% for k,v in task.default_effort.history.items() | sort(attribute='0', reverse=True) %}
72 <li>{{ k }}: {{ v|e }}
73 {% endfor %}
74 </ul>
75 </details>
76 </td>
77 </tr>
78
79 <tr class="toplevel">
80 <th>tags</th>
81 <td>
82 add: {{ macros.tagselection(submit_name='tag', selected_tags=task.tags.now, all_tags=tags) }}
83 <details>
84 <summary>history</summary>
85 <ul>
86 {% for k,v in task.tags.history.items() | sort(attribute='0', reverse=True) %}
87 <li>{{ k }}: {{ v|e }}
88 {% endfor %}
89 </ul>
90 </details>
91 </td>
92 </tr>
93
94 {% if task.dependers %}
95 <tr class="toplevel">
96 <th>dependers</th>
97 <td>
98 <ul>
99 {% for parent in task.dependers %}
100 <li><a href="task?id={{parent.id_}}">{{parent.title.now}}</a>
101 {% endfor %}
102 </ul>
103 </td>
104 </tr>
105 {% endif %}
106
107 <tr class="toplevel">
108 <th>children</th>
109 <td>
110 {% if task.deps %}
111 <table>
112 {% for dep in task.deps %}
113 <tr class="lowlevel">
114 <td>
115 <input name="dep" type="checkbox" value="{{dep.id_}}" checked/>
116 </td>
117 <td>
118 {% if dep.deps %}
119 <details>
120 <summary>
121 {% endif %}
122 {{ draw_task(dep)}}
123 {% if dep.deps %}
124 </summary>
125 {% for s in dep.deps %}
126 {{ task_with_deps(s, 1) }}
127 {% endfor %}
128 </details>
129 {% endif %}
130 </td>
131 </tr>
132 {% endfor %}
133 </table>
134 {% endif %}
135 add: <input name="dep" list="tasks" autocomplete="off" />
136 </td>
137 </tr>
138 {{ macros.datalist_tasks(filtered_tasks) }}
139
140 {% if task.deps %}
141 <tr class="toplevel">
142 <th>as chain</th>
143 <td>
144 <table>
145 {% for dep in task.deps_chain %}
146 <tr class="lowlevel">
147 <td class="number">{{dep.deps_depth}}</td>
148 <td><a href="task?id={{ dep.id_ }}">{{dep.title.now}}</a></td>
149 </tr>
150 {% endfor %}
151 </table>
152 </td>
153 </tr>
154 {% endif %}
155
156 </table>
157 <input id="update_button" class="update" type="submit" name="update" value="update" />
158 <div class="delete">
159 <input class="delete" type="submit" name="delete" value="delete" />
160 </div>
161 </form>
162 {% endblock %}