{% extends "base.html" %} {% block title %}{{ data.wave.get('name', 'Wave') }} — GovLift{% endblock %} {% block extra_css %} {% endblock %} {% block content %}
{{ classification }}
← Waves

{{ data.wave.get('name', 'Unnamed Wave') }}

Wave ID: {{ data.wave.get('id', '') }}  |  Sequence: W{{ data.wave.get('sequence_num', '?') }}

Wave Details
Status {% set ws = data.wave.get('status', 'planned') %} {% if ws == 'completed' %}{{ ws }} {% elif ws == 'in_progress' %}{{ ws }} {% elif ws == 'cancelled' %}{{ ws }} {% else %}{{ ws }} {% endif %}
Planned Start{{ data.wave.get('planned_start', '—') }}
Planned End{{ data.wave.get('planned_end', '—') }}
Workload Count{{ data.wave.get('workload_count', 0) }}
{% if data.wave.get('notes') %}
Notes{{ data.wave.get('notes', '') }}
{% endif %}
{% if data.workloads %}
Workloads in this Wave
{% for wl in data.workloads %} {% endfor %}
IDNameTypeRiskStatus
{{ wl.id }} {{ wl.name }} {{ wl.get('workload_type', '—') }} {% set risk = wl.get('risk_level', 'low') %} {% if risk == 'critical' %}{{ risk }} {% elif risk == 'high' %}{{ risk }} {% elif risk == 'medium' %}{{ risk }} {% else %}{{ risk }} {% endif %} {% set ms = wl.get('migration_status', 'discovered') %} {% if ms == 'migrated' %}{{ ms }} {% elif ms == 'in_migration' %}{{ ms }} {% elif ms == 'failed' %}{{ ms }} {% elif ms == 'assessed' %}{{ ms }} {% elif ms == 'wave_assigned' %}{{ ms }} {% else %}{{ ms }} {% endif %}
{% else %}
No workloads assigned to this wave.
{% endif %} {% if data.migrations %}
Migrations in this Wave
{% for mig in data.migrations %} {% endfor %}
Job IDWorkloadStatusStartedCompleted
{{ mig.id }} {{ mig.get('workload_id', '—') }} {% set js = mig.get('status', 'pending') %} {% if js == 'completed' %}{{ js }} {% elif js == 'running' %}{{ js }} {% elif js == 'failed' %}{{ js }} {% else %}{{ js }} {% endif %} {{ mig.get('started_at', '—') }} {{ mig.get('completed_at', '—') }}
{% endif %} {% include "includes/iqe_query_widget.html" %} {% endblock %}