{% extends '_base.html' %} {% import '_macros.html' as macros %} {% block css %} th { border: 1px solid black; } td.cond_line_0, td.cond_line_1, td.cond_line_2 { padding: 0; border-top: 1px solid white; } td.cond_line_0 { background-color: #bfbfbf; } td.cond_line_1 { background-color: #dfdfdf; } td.cond_line_2 { background-color: #fffff; } td.cond_line_corner { max-width: 0px; white-space: nowrap; overflow: hidden; text-overflow: clip; } td.todo_line { border-bottom: 1px solid #bfbfbf; height: 1.7em; } 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; } td.right_border { border-right: 1px solid black; } input.ablers { width: 50em; } {% endblock %} {% macro show_node_undone(node, indent) %} {% if not node.todo.is_done %} {% if not node.seen %} {% endif %} {% for condition in conditions_present %} {% if condition in node.todo.conditions and not condition.is_active %} O  {% elif condition in node.todo.blockers and condition.is_active %} !  {% endif %} {% endfor %} {% if node.seen %} {% if node.todo.effort %}{{ node.todo.effort }}{% endif %} {% else %} {% endif %} {% for i in range(indent) %}    {% endfor %} + {% if node.seen %}({% endif %}{{node.todo.title_then|e}}{% if node.seen %}){% endif %} {% for condition in conditions_present|reverse %} {% if condition in node.todo.enables %} +{% elif condition in node.todo.disables %} !{% endif %} {% endfor %} {% if node.seen %} {{node.todo.comment|e}} {% else %} {% endif %} {% endif %} {% if not node.seen %} {% for child in node.children %} {{ show_node_undone(child, indent+1) }} {% endfor %} {% endif %} {% endmacro %} {% macro show_node_done(node, indent, path) %} {% if node.todo.has_doneness_in_path %} {{ '{:4.1f}'.format(node.todo.performed_effort) }} {{ '{:4.1f}'.format(node.todo.tree_effort) }} {% for i in range(indent) %}    {% endfor %} + {% if not node.todo.is_done %}({% endif %}{% if node.seen %}[{% endif %}{{node.todo.title_then|e}}{% if node.seen %}]{% endif %}{% if not node.todo.is_done %}){% endif %}{% if node.todo.comment %} · {{node.todo.comment|e}}{% endif %} {% if not node.seen %} {% for child in node.children %} {{ show_node_done(child, indent+1) }} {% endfor %} {% endif %} {% endif %} {% endmacro %} {% block content %}

{{day.date}} / {{day.weekday}} ({{day.total_effort|round(1)}})

prev | next

comment:

to do

add:

make new todos descendants (i.e. adopt where possible, otherwise create anew)

{% for condition in conditions_present %} {% set outer_loop = loop %} {% for _ in conditions_present %} {% if outer_loop.index > loop.index %} {% endfor %} {% for _ in conditions_present %} {% if outer_loop.index0 + loop.index < conditions_present|length %} {{ macros.datalist_of_titles(list_name, enablers_for[condition.id_]) }} {% set list_name = "todos_against_%s"|format(condition.id_) %} {{ macros.datalist_of_titles(list_name, disablers_for[condition.id_]) }} {% endfor %} {% for condition in conditions_present %} {% endfor %} {% for condition in conditions_present %} {% endfor %} {% for node in top_nodes %} {{ show_node_undone(node, 0) }} {% endfor %}
conditions add enabler add disabler
{% elif outer_loop.index < loop.index %} {% else %} × {% endif %} {{condition.title.at(day.date)|e}} {% elif outer_loop.index0 + loop.index > conditions_present|length %} {% else %}  × {% endif %} {% endfor %} {% set list_name = "todos_for_%s"|format(condition.id_) %}
doablescomments

done

{% for node in top_nodes %} {{ show_node_done(node, 0, []) }} {% endfor %}
effortaction · comment
selftree
{{ macros.datalist_of_titles("processes", processes) }} {% endblock %}