home · contact · privacy
Fix Processes listing sorting bug.
[plomtask] / templates / process.html
index 85424fa6750523487098d280b2568e48ad2f4c29..c765ca7a3594b6969c342ad452c48a4db7dc0952 100644 (file)
@@ -1,4 +1,15 @@
-{% extends 'base.html' %}
+{% extends '_base.html' %}
+{% import '_macros.html' as macros %}
+
+
+
+{% block css %}
+input[name="title"] {
+  width: 100em;
+}
+{% endblock %}
+
+
 
 {% macro step_with_steps(step_id, step_node, indent) %}
 <tr>
 {% if step_node.is_explicit %}
 <input type="checkbox" name="keep_step" value="{{step_id}}" checked />
 <input type="hidden" name="step_{{step_id}}_process_id" value="{{step_node.process.id_}}" />
-<input type="hidden" name="step_{{step_id}}_condition_id" value="{{step_node.condition.id_}}" />
 <input type="hidden" name="step_{{step_id}}_parent_id" value="{{step_node.parent_id or ''}}" />
 {% endif %}
 </td>
 <td>{% for i in range(indent) %}+{%endfor %}
-{% if (not step_node.is_explicit) and step_node.seen %}
+{% if step_node.is_suppressed %}<del>{% endif %}
+{% if step_node.seen %}
 <a href="process?id={{step_node.process.id_}}">({{step_node.process.title.newest|e}})</a>
 {% else %}
 <a href="process?id={{step_node.process.id_}}">{{step_node.process.title.newest|e}}</a>
 {% endif %}
+{% if step_node.is_suppressed %}<del>{% endif %}
 </td>
 <td>
 {% if step_node.is_explicit %}
-add step: <input name="new_step_to_{{step_id}}" list="candidates" autocomplete="off" />
+add sub-step: <input name="new_step_to_{{step_id}}" list="process_candidates" autocomplete="off" />
+{% elif not step_node.seen %}
+<input type="checkbox" name="suppresses" value="{{step_id}}" {% if step_node.is_suppressed %}checked{% endif %}> suppress
 {% endif %}
 </td>
 </tr>
@@ -31,78 +45,81 @@ add step: <input name="new_step_to_{{step_id}}" list="candidates" autocomplete="
 {% endif %}
 {% endmacro %}
 
+
+
 {% block content %}
-<h3>process</h3>
+<h3>{% if is_new %}NEW {% endif %}process</h3>
 <form action="process?id={{process.id_ or ''}}" method="POST">
-title: <input name="title" value="{{process.title.newest|e}}" />
-description: <input name="description" value="{{process.description.newest|e}}" />
-default effort: <input name="effort" type="number" step=0.1 value={{process.effort.newest}} />
-<h4>conditions</h4>
 <table>
-{% for condition in process.conditions %}
+
 <tr>
-<td>
-<input type="checkbox" name="condition" value="{{condition.id_}}" checked />
-</td>
-<td>
-<a href="condition?id={{condition.id_}}">{{condition.title.newest|e}}</a>
-</td>
+<th>title</th>
+<td><input name="title" value="{{process.title.newest|e}}" />{% if process.id_ %} [<a href="process_titles?id={{process.id_}}">history</a>]{% endif %}</td>
 </tr>
-{% endfor %}
-</table>
-add condition: <input name="condition" list="condition_candidates" autocomplete="off" />
-<datalist id="condition_candidates">
-{% for condition_candidate in condition_candidates %}
-<option value="{{condition_candidate.id_}}">{{condition_candidate.title.newest|e}}</option>
-{% endfor %}
-</datalist>
-<h4>enables</h4>
-<table>
-{% for condition in process.enables %}
+
 <tr>
-<td>
-<input type="checkbox" name="enables" value="{{condition.id_}}" checked />
-</td>
-<td>
-<a href="condition?id={{condition.id_}}">{{condition.title.newest|e}}</a>
-</td>
+<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>
 </tr>
-{% endfor %}
-</table>
-add enables: <input name="enables" list="condition_candidates" autocomplete="off" />
-<h4>disables</h4>
-<table>
-{% for condition in process.disables %}
+
+<tr>
+<th>description</th>
+<td><textarea name="description">{{process.description.newest|e}}</textarea><br />{% if process.id_ %} [<a href="process_descriptions?id={{process.id_}}">history</a>]{% endif %}</td>
+</tr>
+
+<tr>
+<th>calendarize</th>
+<td><input type="checkbox" name="calendarize" {% if process.calendarize %}checked {% endif %}</td>
+</tr>
+
 <tr>
+<th>conditions</th>
+<td>{{ macros.simple_checkbox_table("condition", process.conditions, "condition", "condition_candidates") }}</td>
+</tr>
+
+<tr>
+<th>blockers</th>
+<td>{{ macros.simple_checkbox_table("blocker", process.blockers, "condition", "condition_candidates") }}</td>
+</tr>
+
+<tr>
+<th>enables</th>
+<td>{{ macros.simple_checkbox_table("enables", process.enables, "condition", "condition_candidates") }}</td>
+</tr>
+
+<tr>
+<th>disables</th>
+<td>{{ macros.simple_checkbox_table("disables", process.disables, "condition", "condition_candidates") }}</td>
+</tr>
+
+<tr>
+<th>steps</th>
 <td>
-<input type="checkbox" name="disables" value="{{condition.id_}}" checked />
+<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 ''}}" />
 </td>
+</tr>
+
+<tr>
+<th>step of</th>
+<td>{{ macros.simple_checkbox_table("step_of", owners, "process", "process_candidates") }}</td>
+</tr>
+
+<tr>
+<th>todos</th>
 <td>
-<a href="condition?id={{condition.id_}}">{{condition.title.newest|e}}</a>
+<a href="todos?process_id={{process.id_}}">{{n_todos}}</a><br />
 </td>
 </tr>
-{% endfor %}
-</table>
-add disables: <input name="disables" list="condition_candidates" autocomplete="off" />
-<h4>steps</h4>
-<table>
-{% for step_node in steps %}
-{{ step_with_steps(step_id, step_node, 0) }}
-{% endfor %}
+
 </table>
-add step: <input name="new_top_step" list="step_candidates" autocomplete="off" />
-<datalist id="step_candidates">
-{% for candidate in step_candidates %}
-<option value="{{candidate.id_}}">{{candidate.title.newest|e}}</option>
-{% endfor %}
-</datalist>
-<h4>save</h4>
-<input type="submit" value="OK" />
+{{ macros.edit_buttons() }}
 </form>
-<h4>step of</h4>
-<ul>
-{% for owner in owners %}
-<li><a href="process?id={{owner.id_}}">{{owner.title.newest|e}}</a>
-{% endfor %}
-</ul>
+
+{{ macros.datalist_of_titles("condition_candidates", condition_candidates) }}
+{{ macros.datalist_of_titles("process_candidates", process_candidates) }}
 {% endblock %}