home · contact · privacy
f13eb5c309750d01a7f366c2a85255ccb44d4bd9
[plomtask] / templates / day.html
1 {% extends 'base.html' %}
2
3
4
5 {% block css %}
6 td, th, tr, table {
7   padding: 0;
8   margin: 0;
9 }
10 th {
11   border: 1px solid black;
12 }
13 td.min_width {
14   min-width: 1em;
15 }
16 td.cond_line_0 {
17   background-color: #ffbbbb;
18 }
19 td.cond_line_1 {
20   background-color: #bbffbb;
21 }
22 td.cond_line_2 {
23   background-color: #bbbbff;
24 }
25 td.todo_line {
26   border-bottom: 1px solid #bbbbbb;
27 }
28 {% endblock %}
29
30
31
32 {% macro show_node_undone(node, indent) %}
33 {% if not node.todo.is_done %}
34 <tr>
35
36 {% for condition in conditions_present %}
37 <td class="cond_line_{{loop.index0 % 3}} {% if not condition.is_active %}min_width{% endif %}">{% if condition in node.todo.conditions %}{% if not condition.is_active %}O{% endif %}{% endif %}</td>
38 {% endfor %}
39
40 <td class="todo_line">-&gt;</td>
41 <td class="todo_line"><input type="checkbox" {% if node.todo.is_done %}checked disabled{% endif %} {% if not node.todo.is_doable %}disabled{% endif %}/></td>
42 <td class="todo_line">
43 {% for i in range(indent) %}&nbsp; {% endfor %} +
44 {% if node.seen %}({% endif %}<a href="todo?id={{node.todo.id_}}">{{node.todo.process.title.newest|e}}</a>{% if node.seen %}){% endif %}
45 </td>
46 <td class="todo_line">-&gt;</td>
47
48 {% for condition in conditions_present|reverse %}
49 <td class="cond_line_{{(conditions_present|length - loop.index) % 3}} {% if condition in node.todo.enables or condition in node.todo.disables %}min_width{% endif %}">{% if condition in node.todo.enables %}+{% elif condition in node.todo.disables %}!{% endif %}</td>
50 {% endfor %}
51
52 <td><input name="comment" /></td>
53
54 </tr>
55 {% endif %}
56
57 {% if not node.seen %}
58 {% for child in node.children %}
59 {{ show_node_undone(child, indent+1) }}
60 {% endfor %}
61 {% endif %}
62
63 {% endmacro %}
64
65
66
67 {% macro show_node_done(node, indent, path) %}
68 {% if node.todo.is_done %}
69
70 <tr>
71 {% if path|length > 0 and not path[-1].todo.is_done %}
72 <td>
73 ({% for path_node in path %}<a href="todo?id={{path_node.todo.id_}}">{{path_node.todo.process.title.newest|e}}</a> &lt;- {% endfor %})
74 </td>
75 </tr>
76
77 <tr>
78 <td>
79 &nbsp; +
80 {% else %}
81 <td>
82 {% for i in range(indent) %}&nbsp; {% endfor %} +
83 {% endif %}
84 {% if node.seen %}({% endif %}<a href="todo?id={{node.todo.id_}}">{{node.todo.process.title.newest|e}}</a>{% if node.seen %}){% endif %}
85 </td>
86 </tr>
87
88 {% endif %}
89 {% if not node.seen %}
90 {% for child in node.children %}
91 {{ show_node_done(child, indent+1, path + [node]) }}
92 {% endfor %}
93 {% endif %}
94
95 {% endmacro %}
96
97
98
99 {% block content %}
100 <h3>{{day.date}} / {{day.weekday}}</h3>
101 <p>
102 <a href="day?date={{day.prev_date}}">prev</a> | <a href="day?date={{day.next_date}}">next</a>
103 </p>
104 <form action="day?date={{day.date}}" method="POST">
105 comment: <input name="comment" value="{{day.comment|e}}" />
106 <input type="submit" value="OK" /><br />
107 add todo: <input name="new_todo" list="processes" autocomplete="off" />
108 <datalist id="processes">
109 {% for process in processes %}
110 <option value="{{process.id_}}">{{process.title.newest|e}}</option>
111 {% endfor %}
112 </datalist>
113
114 <h4>todo</h4>
115
116 <table>
117
118 <tr>
119 <th colspan={{ conditions_present|length}}>c</th>
120 <th colspan=4>states</th>
121 <th colspan={{ conditions_present|length}}>t</th>
122 <th>add enabler</th>
123 </tr>
124
125 {% for condition in conditions_present %}
126 {% set outer_loop = loop %}
127 <tr>
128
129 {% for _ in conditions_present %}
130 {% if outer_loop.index > loop.index %}
131 <td class="cond_line_{{loop.index0 % 3}}">
132 {% else %}
133 <td class="cond_line_{{outer_loop.index0 % 3}}">
134 {% endif %}
135 {% if outer_loop.index == loop.index  %}
136 {% endif %}
137 </td>
138 {% endfor %}
139
140 <td class="cond_line_{{loop.index0 % 3}}">[{% if condition.is_active %}X{% else %}&nbsp;{% endif %}]</td>
141 <td colspan=3 class="cond_line_{{loop.index0 % 3}}"><a href="condition?id={{condition.id_}}">{{condition.title.newest|e}}</a></td>
142
143 {% for _ in conditions_present %}
144 {% if outer_loop.index0 + loop.index0 < conditions_present|length %}
145 <td class="cond_line_{{outer_loop.index0 % 3}}">
146 {% else %}
147 <td class="cond_line_{{(conditions_present|length - loop.index) % 3}}">
148 {% endif %}
149 {% endfor %}
150
151 <td><input list="todos_for_{{condition.id_}}" /></td>
152 <datalist name="new_todo" id="todos_for_{{condition.id_}}" />
153 {% for process in enablers_for[condition.id_] %}
154 <option value="{{process.id_}}">{{process.title.newest|e}}</option>
155 {% endfor %}
156 </datalist />
157 </td>
158 </tr>
159 {% endfor %}
160
161 <tr>
162 {% for condition in conditions_present %}
163 <td class="cond_line_{{loop.index0 % 3}}"></td>
164 {% endfor %}
165 <th colspan={{ 4 }}>doables</th>
166 {% for condition in conditions_present %}
167 <td class="cond_line_{{(conditions_present|length - loop.index) % 3}}"></td>
168 {% endfor %}
169 <th>comments</th>
170 </tr>
171 {% for node in top_nodes %}
172 {{ show_node_undone(node, 0) }}
173 {% endfor %}
174
175 </table>
176
177 <h4>done</h4>
178
179 <table>
180 {% for node in top_nodes %}
181 {{ show_node_done(node, 0, []) }}
182 {% endfor %}
183 </table>
184
185 </form>
186 {% endblock %}
187