home · contact · privacy
Re-factor Day.todos code.
[plomtask] / templates / day.html
index 627923b2a2b34c75d57f204f97a2d5b86a729c33..f980cd1f5ad93d271e8103c981c8cdf49523e8fe 100644 (file)
@@ -4,26 +4,20 @@
 
 
 {% block css %}
-td, th, tr, table {
-  padding: 0;
-  margin: 0;
-}
-table {
-  border-collapse: collapse;
-}
 th {
   border: 1px solid black;
 }
-td.cond_line_0 {
+td.cond_line_0, td.cond_line_1, td.cond_line_2 {
+  padding: 0;
   border-top: 1px solid white;
-  background-color: #dddddd;
+}
+td.cond_line_0 {
+  background-color: #bfbfbf;
 }
 td.cond_line_1 {
-  border-top: 1px solid white;
-  background-color: #efefef;
+  background-color: #dfdfdf;
 }
 td.cond_line_2 {
-  border-top: 1px solid white;
   background-color: #fffff;
 }
 td.cond_line_corner {
@@ -33,11 +27,15 @@ td.cond_line_corner {
   text-overflow: clip;
 }
 td.todo_line {
-  border-bottom: 1px solid #dddddd;
+  border-bottom: 1px solid #bfbfbf;
   height: 1.7em;
 }
-tr.inactive td.todo_line {
-  background-color: #dddddd;
+tr.inactive > td.todo_line {
+  background-color: #bfbfbf;
+  border-bottom: 1px solid white;
+}
+tr.hidden_undone > td, tr.hidden_undone a {
+  color: #9f9f9f;
 }
 td.left_border {
   border-left: 1px solid black;
@@ -45,11 +43,8 @@ td.left_border {
 td.right_border {
   border-right: 1px solid black;
 }
-input[type="text"] {
-  width: 98%;
-}
-input[name="day_comment"] {
-  width: 100em;
+input.ablers {
+  width: 50em;
 }
 {% endblock %}
 
@@ -77,7 +72,7 @@ O 
 <td class="todo_line">{% if node.todo.effort %}{{ node.todo.effort }}{% endif %}</td>
 {% else %}
 <td class="todo_line left_border"><input name="done" type="checkbox" value="{{node.todo.id_}}" {% if not node.todo.is_doable %}disabled{% endif %}/></td>
-<td class="todo_line"><input name="effort" type="number" step=0.1 size=5 placeholder={{node.todo.effort_then}} value={{node.todo.effort}} /></td>
+<td class="todo_line"><input name="effort" type="number" step=0.1 placeholder={{node.todo.effort_then}} value={{node.todo.effort}} /></td>
 {% endif %}
 <td class="todo_line right_border">
 {% for i in range(indent) %}&nbsp; &nbsp; {% endfor %} +
@@ -110,39 +105,26 @@ O&nbsp;
 
 
 {% macro show_node_done(node, indent, path) %}
-{% if node.todo.is_done %}
-
-<tr>
-{% if path|length > 0 and not path[-1].todo.is_done %}
-<td>
-({% for path_node in path %}<a href="todo?id={{path_node.todo.id_}}">{{path_node.todo.title_then|e}}</a>  &lt;- {% endfor %})
-</td>
-</tr>
-
-<tr>
+{% if node.todo.has_doneness_in_path %}
+<tr{% if not node.todo.is_done %} class="hidden_undone"{% endif %}>
+<td class="number">{{ '{:4.1f}'.format(node.todo.performed_effort) }}</td>
+<td class="number">{{ '{:4.1f}'.format(node.todo.tree_effort) }}</td>
 <td>
-&nbsp; +
-{% else %}
-<td>
-{% for i in range(indent) %}&nbsp; {% endfor %} +
-{% endif %}
-{% if node.seen %}({% endif %}<a href="todo?id={{node.todo.id_}}">{{node.todo.title_then|e}}</a> {% if node.todo.comment|length > 0 %}[{{node.todo.comment|e}}]{% endif %}{% if node.seen %}){% endif %}
-</td>
+{% for i in range(indent) %}&nbsp; &nbsp; {% endfor %} +
+{% if not node.todo.is_done %}({% endif %}{% if node.seen %}[{% endif %}<a href="todo?id={{node.todo.id_}}">{{node.todo.title_then|e}}</a>{% if node.seen %}]{% endif %}{% if not node.todo.is_done %}){% endif %}{% if node.todo.comment %} · {{node.todo.comment|e}}{% endif %}</td>
 </tr>
-
-{% endif %}
 {% if not node.seen %}
 {% for child in node.children %}
-{{ show_node_done(child, indent+1, path + [node]) }}
+{{ show_node_done(child, indent+1) }}
 {% endfor %}
 {% endif %}
-
+{% endif %}
 {% endmacro %}
 
 
 
 {% block content %}
-<h3>{{day.date}} / {{day.weekday}}</h3>
+<h3>{{day.date}} / {{day.weekday}} ({{day.total_effort|round(1)}})</h3>
 <p>
 <a href="day?date={{day.prev_date}}">prev</a> | <a href="day?date={{day.next_date}}">next</a>
 </p>
@@ -150,12 +132,22 @@ O&nbsp;
 
 <p>
 comment:
-<input name="day_comment" value="{{day.comment|e}}" />
+<input name="day_comment" type="text" value="{{day.comment|e}}" />
 <input type="submit" value="OK" /></td>
 </p>
 
 <h4>to do</h4>
 
+<p>
+add: <input type="text" name="new_todo" list="processes">
+</p>
+<p>
+<select name="make_type">
+<option value="full">make new todos with children</option>
+<option value="empty"{% if make_type == "empty" %}selected {% endif %}>make new todos without children</option>
+</select>
+</p>
+
 <table>
 
 <tr>
@@ -193,11 +185,11 @@ comment:
 {% endfor %}
 
 {% set list_name = "todos_for_%s"|format(condition.id_) %}
-<td><input name="new_todo" list="{{list_name}}" autocomplete="off" /></td>
+<td><input class="ablers" type="text" name="new_todo" list="{{list_name}}" autocomplete="off" /></td>
 {{ macros.datalist_of_titles(list_name, enablers_for[condition.id_]) }}
 </td>
 {% set list_name = "todos_against_%s"|format(condition.id_) %}
-<td><input name="new_todo" list="{{list_name}}" autocomplete="off" /></td>
+<td><input class="ablers" type="text" name="new_todo" list="{{list_name}}" autocomplete="off" /></td>
 {{ macros.datalist_of_titles(list_name, disablers_for[condition.id_]) }}
 </td>
 </tr>
@@ -211,18 +203,6 @@ comment:
 {% for condition in conditions_present %}
 <td class="cond_line_{{(conditions_present|length - loop.index) % 3}}"></td>
 {% endfor %}
-<td colspan=2></td>
-</tr>
-<tr>
-{% for condition in conditions_present %}
-<td class="cond_line_{{loop.index0 % 3}}"></td>
-{% endfor %}
-<td class="left_border"></td>
-<td>add:</td>
-<td class="right_border" ><input type="text" name="new_todo" list="processes"></td>
-{% for condition in conditions_present %}
-<td class="cond_line_{{(conditions_present|length - loop.index) % 3}}"></td>
-{% endfor %}
 <th colspan=2>comments</th>
 </tr>
 {% for node in top_nodes %}
@@ -233,7 +213,13 @@ comment:
 
 <h4>done</h4>
 
-<table>
+<table class="alternating">
+<tr>
+<th colspan=2>effort</th><th rowspan=2>action · comment</th>
+</tr>
+<tr>
+<th>self</th><th>tree</th>
+</tr>
 {% for node in top_nodes %}
 {{ show_node_done(node, 0, []) }}
 {% endfor %}