<%inherit file="body.html"/> <%namespace name="util" file="util.html"/> <%namespace name="terminology" file="terminology.html"/> <%! import report_tools %> <%def name="title()"> Kanban cards status for a milestone ( %for area in areas: ${area.primarymilestone} %endfor )

Milestone overview ( %for area in areas: ${area.primarymilestone} %endfor )

This page shows the progress towards a particular milestone. If the milestone due date is set correctly, the burndown gives you a sense of whether they are on track to complete all of their tasks at the current rate, and the information below shows their progress against individual ${terminology.spec_group_title_plural()}, blueprints and workitems.

% if chart_url:

Card burndown

(enlarge)

${util.burndown_chart(chart_url, large=True)} % endif
Overall completion
${util.progress_bar(all_workitems)} % if groups:

Status of ${terminology.spec_group_title_plural()}

% for group in groups: % endfor
${terminology.spec_group_title()} Completion Priority Status/Description
${group.name} ${util.progress_bar(group)} ${group.priority} ${group.status}
% endif

Status by blueprint

(Click header to sort)

% if specs_have_status: % endif % for bp in blueprints: % if has_complexity: % endif % if has_status: % endif % endfor
Blueprint todo blocked inprogress postponed done Completion PriorityStatus/Description
${bp.name}${bp.complexity}${bp.todo} ${bp.blocked} ${bp.inprogress} ${bp.postponed} ${bp.done} ${bp.percent_complete}%
${bp.implementation}
${bp.priority}${bp.status}

Status by assignee

(Click header to sort)

% if assignees_have_complexity: % endif % for a in assignees: % if assignees_have_complexity: % endif % endfor
AssigneeComplexitytodo blocked inprogress postponed done Completion
${util.real_name(a.name)}${a.complexity}${a.todo} ${a.blocked} ${a.inprogress} ${a.postponed} ${a.done} ${a.percent_complete}%

Card details

% if workitems_have_priority: % endif % for a in assignees: <% printed_assignee = False %> % for status in valid_states: <% printed_status = False %> % for bp, item, priority, size, url in getattr(a, status+"_wis"): <% card_hover, card_type, item = a.getCardType(item) %> % if not printed_assignee: <% printed_assignee = True %> % endif % if not printed_status: <% printed_status = True %> % endif % if workitems_have_priority: % endif % endfor % endfor % endfor
Assignee Status PrioritySize Type Card
${util.real_name(a.name)}${status}${priority}${size} ${card_type} ${item}

Development over time

% for count_on_day in workitems_by_day: % endfor
Date done todo
${count_on_day.date} ${count_on_day.done}${count_on_day.delta_done} ${count_on_day.todo}${count_on_day.delta_todo}