8 stories TDD (echipa Sonnet, lead orchestreaza). US-001 scoate hold-ul auto_send din mapare (has_no_auto_send->False, simbol pastrat; cod rezolvat->queued). US-002 scoate bifa auto_send din UI. US-003 preview pas 3 in format .tabel-trimiteri (STARI_PREVIEW + nota_umana_preview, fara repr Python; view-model prez). US-004 filtre layout/stil ca referinta + buton Custom. US-005 navigatie Trimiteri/Mapari sub contoare pe toate paginile. US-006 import <details> nativ colapsabil. US-007 post-commit reveal (OOB _coada/_status + HX-Trigger). US-008 auto-refresh dupa actiuni (nudge eliminat). VERIFY context curat PASS (8/8). /code-review high: 3 buguri reparate (tab nav la self-refresh, pill Custom valori stale, nota_umana_preview precedenta needs_mapping). 934 passed, 1 skipped. Backend trimitere + schema NEATINSE. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
67 lines
2.9 KiB
HTML
67 lines
2.9 KiB
HTML
<div id="acasa-section">
|
|
|
|
{# === Container colapsabil: stepper + upload intr-un singur element <details> (US-006).
|
|
Serverul seteaza atributul `open` din are_trimiteri:
|
|
are_trimiteri=False (first-run) → open (importul e vizibil imediat, fara JS)
|
|
are_trimiteri=True (returning) → colapsat (nu ocupa ecranul, dar e accesibil la click)
|
|
Degradare fara JS: corecta pe ambele ramuri.
|
|
In timpul fluxului (mapcoloane/preview), HTMX face swap pe #import-section (descendentul
|
|
intern) → <details> ramane neatins → containerul ramane deschis intre pasi. === #}
|
|
<details id="import-details"{% if not are_trimiteri %} open{% endif %}>
|
|
<summary>Importa un fisier</summary>
|
|
{% include '_upload.html' %}
|
|
</details>
|
|
|
|
{# === Subordonat: primii pasi pe un singur rand compact === #}
|
|
{% set toti_esentiali = are_creds and are_trimiteri %}
|
|
{% if not toti_esentiali %}
|
|
<div class="card" style="margin-top:14px; padding:12px 16px;">
|
|
<div style="display:flex; gap:20px; flex-wrap:wrap; align-items:center; font-size:13px;">
|
|
<span class="muted" style="font-weight:600;">Primii pasi:</span>
|
|
|
|
{# Pas 1: Cont RAR (esential) #}
|
|
<span style="display:inline-flex; align-items:center; gap:6px;">
|
|
{% if are_creds %}
|
|
<span class="s-sent" aria-hidden="true" style="font-weight:bold;">✓</span>
|
|
{% else %}
|
|
<span class="muted" aria-hidden="true">○</span>
|
|
{% endif %}
|
|
<a href="/?tab=cont">Cont RAR</a>
|
|
</span>
|
|
|
|
{# Pas 2: Cheie API (optional) #}
|
|
<span style="display:inline-flex; align-items:center; gap:6px;">
|
|
{% if are_cheie_folosita %}
|
|
<span class="s-sent" aria-hidden="true" style="font-weight:bold;">✓</span>
|
|
{% else %}
|
|
<span class="muted" aria-hidden="true">○</span>
|
|
{% endif %}
|
|
<a href="/?tab=cont">Cheie API</a>
|
|
<span class="muted">(optional)</span>
|
|
</span>
|
|
|
|
{# Pas 3: Import (esential) — marcat ca pas curent #}
|
|
<span style="display:inline-flex; align-items:center; gap:6px;">
|
|
{% if are_trimiteri %}
|
|
<span class="s-sent" aria-hidden="true" style="font-weight:bold;">✓</span>
|
|
{% else %}
|
|
<span class="s-queued" aria-hidden="true" style="font-weight:bold;">●</span>
|
|
{% endif %}
|
|
<strong>Import</strong> <span class="muted">(incarca fisierul sus)</span>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
|
|
{# Sectiunea Trimiteri, permanenta sub upload.
|
|
La first-run (zero trimiteri), randam un placeholder <section> gol/ascuns — necesar
|
|
ca OOB swap-ul de la confirma sa gaseasca tinta valida in DOM si sa injecteze
|
|
_coada.html fara reload complet. Fara placeholder, HTMX ignora silentios OOB-ul. #}
|
|
{% if are_trimiteri %}
|
|
{% include '_coada.html' %}
|
|
{% else %}
|
|
<section id="trimiteri-section" hidden></section>
|
|
{% endif %}
|
|
|
|
</div>
|