7. Delivery Timeline

{% if delivery_timeline %} {% set phases = {} %} {% for t in delivery_timeline %} {% set p = t.phase or 'Unknown' %} {% if p not in phases %}{% set _ = phases.update({p: []}) %}{% endif %} {% set _ = phases[p].append(t) %} {% endfor %} {% set tasks_json = [] %} {% for phase_name in phases %} {% for t in phases[phase_name] %} {% set sub = t.sub_phase or '' %} {% set start = t.start_date or '' %} {% set end = t.end_date or '' %} {% set sub_lower = sub|lower %} {% if 'publish' in sub_lower or 'release' in sub_lower %} {% set css = 'gantt-crit' %} {% elif 'development' in sub_lower %} {% set css = 'gantt-active' %} {% else %} {% set css = 'gantt-standard' %} {% endif %} {% set name = phase_name ~ ' - ' ~ sub if sub else phase_name %} {% set task = '{id:"' ~ t.id ~ '",name:"' ~ name ~ '",start:"' ~ start ~ '",end:"' ~ end ~ '",progress:0,custom_class:"' ~ css ~ '",dependencies:""}' %} {% set _ = tasks_json.append(task) %} {% endfor %} {% endfor %}
{% for phase_name in phases %} {% for t in phases[phase_name] %} {% endfor %} {% endfor %}
PhaseSub-PhaseStartEndWeeksDeliverables
{{ t.phase }}{{ t.sub_phase }}{{ t.start_date }}{{ t.end_date }}{{ t.duration_weeks }}{{ t.deliverables }}
{% else %}

No timeline data. Run 'fscope timeline plan' first.

{% endif %}