font-family: monospace;
text-align: left;
padding: 0;
+ background-color: white;
}
input[type="text"] {
width: 100em;
}
+input.timestamp {
+ width: 11em;
+}
+input.date {
+ width: 6em;
+}
input.btn-harmless {
color: green;
}
text-align: right;
}
td, th, tr, table {
- vertical-align: top;
margin-top: 1em;
padding: 0;
border-collapse: collapse;
a {
color: black;
}
-table.edit_table > tbody > tr > td, table.main > tbody > tr > th {
+table.edit_table > tbody > tr > td,
+table.edit_table > tbody > tr > th {
border-bottom: 0.1em solid #bbbbbb;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
+td.number, input[type="number"] {
+ text-align: right;
+}
+input[name="effort"] {
+ width: 3.5em;
+}
+textarea {
+ width: 100%;
+}
+table.alternating > tbody > tr:nth-child(odd) {
+ background-color: #dfdfdf;
+}
+div.edit_buttons {
+ margin-top: 1em;
+}
{% block css %}
{% endblock %}
</style>
{% macro edit_buttons() %}
+<div class="edit_buttons">
<input class="btn-harmless" type="submit" name="update" value="update" />
<div class="btn-to-right">
<input class="btn-dangerous" type="submit" name="delete" value="delete" />
</div>
+</div>
{% endmacro %}
<p><a href="/calendar_txt">basic view</a></p>
<form action="calendar" method="GET">
-from <input name="start" value="{{start}}" />
-to <input name="end" value="{{end}}" />
+from <input name="start" class="date" value="{{start}}" />
+to <input name="end" class="date" value="{{end}}" />
<input type="submit" value="OK" />
</form>
<table>
<form action="conditions" method="GET">
<input type="submit" value="filter" />
-<input name="pattern" value="{{pattern}}" />
+<input name="pattern" type="text" value="{{pattern}}" />
</form>
-<table>
+<table class="alternating">
<tr>
<th><a href="?sort_by={% if sort_by == "is_active" %}-{% endif %}is_active">active</a></th>
<th><a href="?sort_by={% if sort_by == "title" %}-{% endif %}title">title</a></th>
{% block css %}
-table {
- border-collapse: collapse;
-}
th {
border: 1px solid black;
}
}
tr.inactive > td.todo_line {
background-color: #bfbfbf;
+ border-bottom: 1px solid white;
}
tr.hidden_undone > td, tr.hidden_undone a {
color: #9f9f9f;
<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) %} {% endfor %} +
{% macro show_node_done(node, indent, path) %}
{% if node.todo.has_doneness_in_path %}
<tr{% if not node.todo.is_done %} class="hidden_undone"{% endif %}>
-<td>{{node.todo.performed_effort}}</td>
-<td>{{node.todo.tree_effort|round(1)}}</td>
+<td class="number">{{ '{:4.1f}'.format(node.todo.performed_effort) }}</td>
+<td class="number">{{ '{:4.1f}'.format(node.todo.tree_effort) }}</td>
<td>
{% for i in range(indent) %} {% endfor %} +
-{% if not node.todo.is_done %}({% endif %}<a href="todo?id={{node.todo.id_}}">{{node.todo.title_then|e}}</a>{% if not node.todo.is_done %}){% endif %}
-</td>
-<td>{{node.todo.comment|e}}</td>
+{% 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>
{% if not node.seen %}
{% for child in node.children %}
{% for condition in conditions_present %}
<td class="cond_line_{{(conditions_present|length - loop.index) % 3}}"></td>
{% endfor %}
-<td colspan=2></td>
+<th colspan=2>comments</th>
</tr>
{% for node in top_nodes %}
{{ show_node_undone(node, 0) }}
<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 %}
<td><input name="title" type="text" value="{{process.title.newest|e}}" />{% if process.id_ %} [<a href="process_titles?id={{process.id_}}">history</a>]{% endif %}</td>
</tr>
<tr>
-<th>default effort</th>
-<td><input name="effort" type="number" step=0.1 value={{process.effort.newest}} />{% if process.id_ %} [<a href="process_efforts?id={{process.id_}}">history</a>]{% endif %}</td>
+<th>effort</th>
+<td><input type="number" name="effort" step=0.1 value={{process.effort.newest}} />{% if process.id_ %} [<a href="process_efforts?id={{process.id_}}">history</a>]{% endif %}</td>
</tr>
<tr>
<th>description</th>
<tr>
<th>steps</th>
<td>
+{% if steps %}
<table>
{% for step_id, step_node in steps.items() %}
{{ step_with_steps(step_id, step_node, 0) }}
{% endfor %}
</table>
-add: <input name="new_top_step" list="process_candidates" autocomplete="off" value="{{preset_top_step or ''}}" />
+{% endif %}
+add: <input type="text" name="new_top_step" list="process_candidates" autocomplete="off" value="{{preset_top_step or ''}}" />
</td>
</tr>
<tr>
<form action="processes" method="GET">
<input type="submit" value="filter" />
-<input name="pattern" value="{{pattern}}" />
+<input name="pattern" type="text" value="{{pattern}}" />
</form>
-<table>
+<table class="alternating">
<tr>
<th><a href="?sort_by={% if sort_by == "steps" %}-{% endif %}steps">steps</a></th>
<th><a href="?sort_by={% if sort_by == "owners" %}-{% endif %}owners">owners</a></th>
</tr>
{% for process in processes %}
<tr>
-<td>{{ process.explicit_steps|count }}</td>
-<td>{{ process.n_owners }}</td>
-<td>{{ process.effort.newest }}</td>
+<td class="number">{{ process.explicit_steps|count }}</td>
+<td class="number">{{ process.n_owners }}</td>
+<td class="number">{{ process.effort.newest }}</td>
<td><a href="process?id={{process.id_}}">{{process.title.newest}}</a></td>
</tr>
{% endfor %}
</tr>
<tr>
<th>effort</th>
-<td><input type="number" name="effort" step=0.1 size=5 placeholder={{todo.effort_then}} value={{todo.effort}} /></td>
+<td><input type="number" name="effort" step=0.1 placeholder={{todo.effort_then}} value={{todo.effort}} /></td>
</tr>
<tr>
<th>comment</th>
<h3>todos</h3>
<form action="todos" method="GET">
+from <input name="start" class="date" value="{{start}}" />
+to <input name="end" class="date" value="{{end}}" /><br />
+process <input name="process_id" type="text" value="{{process_id or ''}}" list="processes" /><br />
+in comment <input name="comment_pattern" type="text" value="{{comment_pattern}}" /><br />
<input type="submit" value="filter" />
-process <input name="process_id" value="{{process_id or ''}}" list="processes" />
-from <input name="start" value="{{start}}" />
-to <input name="end" value="{{end}}" />
-in comment <input name="comment_pattern" value="{{comment_pattern}}" />
-<input type="submit" value="OK" />
</form>
-<table>
+<table class="alternating">
<tr>
<th><a href="?sort_by={% if sort_by == "doneness" %}-{% endif %}doneness">done</a></th>
<th><a href="?sort_by={% if sort_by == "date" %}-{% endif %}date">date</a></th>