{% extends "base.html" %} {% block title %}QuickWin #{{ run.id }}{% endblock %} {% macro qs(hp=hp_page, pp=p_page) -%} ?hp_page={{ hp }}&p_page={{ pp }}&per_page={{ per_page }}&search={{ filters.search or '' }}&status={{ filters.status or '' }}&domain={{ filters.domain or '' }} {%- endmacro %} {% block content %}
← Retour campagnes

{{ run.label }}

S{{ '%02d'|format(run.week_number) }} {{ run.year }} — Créé par {{ run.created_by_name or '?' }} — pas de reboot nécessaire

{% if run.status == 'draft' %} Brouillon {% elif run.status == 'hprod_done' %} H-Prod terminé {% elif run.status == 'completed' %} Terminé {% else %} {{ run.status }} {% endif %}
{% if msg %}
{{ msg }}
{% endif %}
{{ stats.total }}
Total
{{ stats.hprod_total }}
H-Prod
{{ stats.prod_total }}
Prod
{{ stats.patched }}
Patchés
{{ stats.failed }}
KO
{{ stats.reboot_count }}
Reboot
Reset
{% if not prod_ok %}

Hors-production d'abord : {{ stats.pending }} serveur(s) hprod en attente. Terminer le hprod avant de lancer le prod.

{% endif %}

HORS-PRODUCTION ({{ hprod_total }})

{{ hprod|selectattr('status','eq','patched')|list|length }} OK {{ hprod|selectattr('status','eq','failed')|list|length }} KO {{ hprod|selectattr('status','eq','pending')|list|length }} en attente
{% for e in hprod %} {% endfor %} {% if not hprod %}{% endif %}
Serveur Domaine Env Statut Exclusions gén. Exclusions spéc. Packages Date patch Reboot Notes
{{ e.hostname }} {{ e.domaine or '?' }} {{ e.environnement or '?' }} {% if e.status == 'patched' %}Patché {% elif e.status == 'failed' %}KO {% elif e.status == 'in_progress' %}En cours {% elif e.status == 'excluded' %}Exclu {% elif e.status == 'skipped' %}Ignoré {% else %}En attente{% endif %} {{ e.general_excludes or '—' }} {{ e.specific_excludes or '—' }} {{ e.patch_packages_count or '—' }} {{ e.patch_date.strftime('%d/%m %H:%M') if e.patch_date else '—' }} {% if e.reboot_required %}OUI{% else %}—{% endif %} {{ e.notes or '—' }}
Aucun serveur hors-production{% if filters.search or filters.status or filters.domain %} (filtre actif){% endif %}
{% if hp_total_pages > 1 %}
Page {{ hp_page }} / {{ hp_total_pages }} — {{ hprod_total }} serveur(s)
{% if hp_page > 1 %}Précédent{% endif %} {% if hp_page < hp_total_pages %}Suivant{% endif %}
{% endif %}
{% if prod_ok %}

PRODUCTION ({{ prod_total }})

{{ prod|selectattr('status','eq','patched')|list|length }} OK {{ prod|selectattr('status','eq','failed')|list|length }} KO {{ prod|selectattr('status','eq','pending')|list|length }} en attente
{% for e in prod %} {% endfor %} {% if not prod %}{% endif %}
Serveur Domaine Env Statut Exclusions gén. Exclusions spéc. Packages Date patch Reboot Notes
{{ e.hostname }} {{ e.domaine or '?' }} {{ e.environnement or '?' }} {% if e.status == 'patched' %}Patché {% elif e.status == 'failed' %}KO {% elif e.status == 'in_progress' %}En cours {% elif e.status == 'excluded' %}Exclu {% else %}En attente{% endif %} {{ e.general_excludes or '—' }} {{ e.specific_excludes or '—' }} {{ e.patch_packages_count or '—' }} {{ e.patch_date.strftime('%d/%m %H:%M') if e.patch_date else '—' }} {% if e.reboot_required %}OUI{% else %}—{% endif %} {{ e.notes or '—' }}
Aucun serveur production{% if filters.search or filters.status or filters.domain %} (filtre actif){% endif %}
{% if p_total_pages > 1 %}
Page {{ p_page }} / {{ p_total_pages }} — {{ prod_total }} serveur(s)
{% if p_page > 1 %}Précédent{% endif %} {% if p_page < p_total_pages %}Suivant{% endif %}
{% endif %}
{% endif %} {% if run.notes %}

NOTES

{{ run.notes }}

{% endif %} {% endblock %}