Server pairs, campaign types, wave notes, in_progress fixes
- Table server_pairs: 682 paires prod/hprod auto-détectées via app_group - Campaign types: standard, quickwin, safe_patching - Patch waves: note explicative dans spécifiques - Opérateur peut planifier en in_progress - Limites intervenants visibles en in_progress - Formulaires inline actifs en in_progress - Backup DB uploadé sur Drive Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
032e91a90c
commit
977733343a
@ -224,16 +224,19 @@ function showForm(id, type) {
|
||||
|
||||
{% elif s.status == 'pending' %}
|
||||
{% if c.status in ('planned', 'in_progress') %}
|
||||
{# Operateur: prendre/liberer #}
|
||||
{# Operateur: prendre/liberer/planifier #}
|
||||
{% if not s.intervenant_id %}
|
||||
<form method="POST" action="/campaigns/session/{{ s.id }}/take" style="display:inline"><button class="btn-sm bg-cyber-accent text-black">Prendre</button></form>
|
||||
{% elif s.intervenant_id == user.uid and not s.forced_assignment %}
|
||||
{% elif s.intervenant_id == user.uid %}
|
||||
{% if not s.forced_assignment %}
|
||||
<form method="POST" action="/campaigns/session/{{ s.id }}/release" style="display:inline"><button class="btn-sm bg-cyber-border text-gray-400">Libérer</button></form>
|
||||
{% endif %}
|
||||
<button onclick="showForm({{ s.id }}, 'schedule')" class="btn-sm bg-cyber-border text-gray-400">Planifier</button>
|
||||
{% endif %}
|
||||
{# Coordinateur: assigner + planifier + exclure #}
|
||||
{% if can_edit_campaigns %}
|
||||
<button onclick="showForm({{ s.id }}, 'assign')" class="btn-sm bg-cyber-border text-cyber-accent">Assigner</button>
|
||||
<button onclick="showForm({{ s.id }}, 'schedule')" class="btn-sm bg-cyber-border text-gray-400">Planifier</button>
|
||||
{% if s.intervenant_id != user.uid %}<button onclick="showForm({{ s.id }}, 'schedule')" class="btn-sm bg-cyber-border text-gray-400">Planifier</button>{% endif %}
|
||||
<button onclick="showForm({{ s.id }}, 'exclude')" class="btn-sm bg-cyber-border text-gray-400">Exclure</button>
|
||||
{% endif %}
|
||||
|
||||
@ -250,7 +253,7 @@ function showForm(id, type) {
|
||||
</tr>
|
||||
|
||||
{# Formulaires inline #}
|
||||
{% if s.status == 'pending' and c.status in ('draft', 'pending_validation', 'planned') %}
|
||||
{% if s.status == 'pending' and c.status in ('draft', 'pending_validation', 'planned', 'in_progress') %}
|
||||
<tr id="form-exclude-{{ s.id }}" class="bg-cyber-bg inline-form" style="display:none">
|
||||
<td colspan="12" class="p-2">
|
||||
<form method="POST" action="/campaigns/session/{{ s.id }}/exclude" class="flex gap-2 items-center flex-wrap">
|
||||
@ -291,7 +294,7 @@ function showForm(id, type) {
|
||||
</div>
|
||||
|
||||
<!-- Limites intervenants (coordinateur, planned) -->
|
||||
{% if can_edit_campaigns and c.status in ('planned', 'pending_validation') %}
|
||||
{% if can_edit_campaigns and c.status in ('planned', 'pending_validation', 'in_progress') %}
|
||||
<div class="card p-4 mt-4" style="max-width:400px">
|
||||
<h3 class="text-sm font-bold text-cyber-accent mb-3">Limites intervenants</h3>
|
||||
{% if op_limits %}
|
||||
|
||||
@ -82,6 +82,10 @@
|
||||
<!-- Panel edition -->
|
||||
|
||||
<!-- Ajouter -->
|
||||
<!-- Note Wave -->
|
||||
<div class="card p-3 mt-4 text-xs text-gray-500">
|
||||
<strong class="text-cyber-accent">Waves :</strong> Les serveurs d'un même groupe (DNS, SMTP, HAProxy...) ne doivent pas être patchés le même jour. V1 = première vague (jour J), V2 = deuxième vague (J + délai). Le délai entre vagues est configurable (défaut : 1 jour). Exemple : DNS V1 (dns1+dns3 lundi) → DNS V2 (dns2+dns4 mardi).
|
||||
</div>
|
||||
<div class="card p-4 mt-4">
|
||||
<h4 class="text-sm font-bold text-cyber-accent mb-3">Ajouter un serveur specifique</h4>
|
||||
<form method="POST" action="/specifics/add" class="flex gap-3 items-end">
|
||||
|
||||
Loading…
Reference in New Issue
Block a user