{% extends 'base.html' %} {% block title %}Importer planning patching{% endblock %} {% block content %}

Importer planning de patching

Upload du fichier Excel "Plan de Patching serveurs YYYY". Une feuille = une semaine (S02..S52). Les onglets historiques (Histo-XXXX) sont ignorés.

{% if current_import %} ← Liste imports {% endif %}
{% if msg == 'ok' %}
Import réussi.
{% endif %} {% if msg == 'deleted' %}
Import supprimé.
{% endif %} {% if err == 'ext' %}
Le fichier doit être un .xlsx.
{% endif %} {% if err == 'parse' %}
Impossible de parser le fichier.
{% endif %} {% if err == 'denied' %}
Permission refusée.
{% endif %} {% if err == 'notfound' %}
Import introuvable.
{% endif %} {% if err == 'openpyxl_missing' %}
Lib openpyxl manquante côté serveur.
{% endif %} {# ──────────── Upload form ──────────── #} {% if can_import %}

Nouvel import

{% endif %} {# ──────────── Liste des imports ──────────── #}

Imports récents ({{ imports|length }})

{% if imports %} {% for i in imports %} {% endfor %}
ID Fichier Année Feuilles Lignes Date Par Actions
#{{ i.id }} {{ i.filename }} {{ i.year or '–' }} {{ i.sheet_count }} {{ i.row_count }} {{ i.uploaded_at.strftime('%Y-%m-%d %H:%M') }} {{ i.uploaded_by_name or '–' }} Voir {% if can_import %} ·
{% endif %}
{% else %}

Aucun import pour le moment.

{% endif %}
{# ──────────── Détail de l'import courant ──────────── #} {% if current_import %}

Import #{{ current_import.id }} : {{ current_import.filename }}

{{ current_import.sheet_count }} feuilles · {{ current_import.row_count }} lignes · {{ current_import.uploaded_at.strftime('%Y-%m-%d %H:%M') }} {% if current_import.note %} · {{ current_import.note }}{% endif %}

{# Sélecteur de semaine #}
{# Tableau dynamique #}
{% endif %} {# Modal preview Prévenance PCT #}
Prévenance PCT

Aperçu du mail avant envoi

Destinataire :
CC :
Objet :
Serveurs : ligne(s) sélectionnée(s)

Aperçu HTML du mail

{% endblock %}