{% extends "base.html" %} {% block title %}{{ project.name }} — CAM Project{% endblock %} {% block extra_css %} {% endblock %} {% block content %} {% set canvas_links = project.canvas_links | default({}) %}

{{ project.name }}

{{ project.customer or '—' }} · {{ project.owner or '—' }} · {{ project.impact_level or 'IL4' }} · {{ project.classification or 'CUI // SP-CTI' }}

{% if canvas_links.ddc %} 📊 DDC Design {% endif %} {% if canvas_links.idc %} 🖥 IDC Infra {% endif %} {% if canvas_links.ndc %} 🌐 NDC Topology {% endif %} ← All Projects
{{ project.phases|length }}
Phases
{{ project.components|length }}
Components
{{ project.ai_opportunities|length }}
AI Opps
{{ project.waves|length }}
Waves
{% set done_phases = project.phases | selectattr('status','eq','completed') | list | length %}
{{ done_phases }}/{{ project.phases|length }}
Complete
{% include "includes/iqe_query_widget.html" %}

Migration Phases

Click phase to expand SOPs
{% if project.phases %} {% for ph in project.phases %}
Ph {{ ph.phase_num }} {{ ph.title }} Wave {{ ph.wave_num|default(0) }} {% if ph.duration_days %}{{ ph.duration_days }}d{% endif %} {{ ph.status|default('planned') }}
{% if ph.description %}
{{ ph.description }}
{% endif %}
{% if ph.maintenance_window %}🕐 {{ ph.maintenance_window }}{% endif %} {% if ph.duration_days %}📅 {{ ph.duration_days }} days{% endif %}
{% if ph.rollback_criteria %}
⚠ Rollback: {{ ph.rollback_criteria }}
{% endif %} {% if ph.linked_sops %}
{% for sop_link in ph.linked_sops %}
{{ (sop_link.sop_source|default('mc'))|upper }} {{ sop_link.sop_title }} {% if sop_link.steps %}{{ sop_link.steps|length }} steps ▾{% endif %}
{% if sop_link.steps %}
{% for step in sop_link.steps %}
{{ step.number }}.
{{ step.text }}
{% if step.verify %}
✓ {{ step.verify }}
{% endif %}
{% if step.time_est %}{{ step.time_est }}{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
{% else %}
No SOPs linked to this phase.
{% endif %}
{% endfor %} {% else %}
No phases defined.
{% endif %}
{% if project.waves %}

Wave Plan

{% for w in project.waves %} {% set risk = w.risk_score|default(0)|float %}
Wave {{ w.wave_number }} {{ w.name }} {{ w.status|default('planned') }}
{% if w.estimated_hours %}⏱ {{ w.estimated_hours|round(0)|int }}h{% endif %} {% if w.strategy %}📋 {{ w.strategy }}{% endif %} Risk: {{ (risk * 100)|round(0)|int }}%
{% endfor %}
{% endif %}

App Components

{% if project.components %}
{% for c in project.components %}
{{ c.name }}
{{ c.app_type|default('') }}{% if c.language %} · {{ c.language }}{% endif %}{% if c.framework %} · {{ c.framework }}{% endif %}
{% if c.migration_strategy %} {{ c.migration_strategy }} {% endif %} {{ c.migration_status|default('planned') }} {% if c.criticality %}{{ c.criticality }}{% endif %}
{% if c.dm_source %}
{{ c.dm_source }} {{ c.dm_target }} {% if c.dm_method %}{{ c.dm_method }}{% endif %} {% if c.dm_size_gb %}{{ c.dm_size_gb|round(0)|int }}GB{% endif %}
{% endif %}
{% endfor %}
{% else %}
No components tracked.
{% endif %}

⚡ AI Modernization

{{ project.ai_opportunities|length }} opportunities
{% if project.ai_opportunities %}
{% for ai in project.ai_opportunities %}
{{ ai.opportunity_title }}
Component: {{ ai.component_name or '—' }}
{% if ai.aws_ai_service %}{{ ai.aws_ai_service }}{% endif %} {% if ai.benefit_category %}{{ ai.benefit_category }}{% endif %}
{% if ai.effort_days %}
⏱ ~{{ ai.effort_days }} days effort
{% endif %} {% if ai.notes %}
{{ ai.notes }}
{% endif %}
{% endfor %}
{% else %}
No AI opportunities recorded.
{% endif %}

🔧 Code Refactoring & Modernization

loading…
Loading refactor jobs…
{% endblock %}