Reorganizeaza interfata web pe trei principii, fara a atinge backend-ul de trimitere (worker, mapping, idempotency, masina de stari neatinse): - US-001 app/web/labels.py: modul pur stari tehnice -> text uman + clasa CSS - US-002 bara status /_fragments/status: microcopy uman, defalcare blocate, scoped cont - US-003 shell 6 tab-uri (Acasa/Import/Coada/Mapari/Cont/Nomenclator): deep-link ?tab=, panou activ randat server-side, fragmente inactive lazy, ARIA real - US-004 stepper import 4 pasi (pur vizual; hx-target + csrf pastrate) - US-005 Acasa onboarding checklist auto-bifat + colaps + empty states prietenoase Reparat in cursul VERIFY/CLOSE: izolare teste (reset ratelimit._hits in fixturi), regresie avertisment "cont in asteptare de activare" (re-introdus in bara status), culori hardcodate -> variabile paleta. 434 teste pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
27 lines
771 B
HTML
27 lines
771 B
HTML
{% if rows %}
|
|
<div class="tablewrap">
|
|
<table>
|
|
<thead><tr><th>#</th><th>Stare</th><th>idPrezentare</th><th>HTTP RAR</th><th>Retry</th><th>Actualizat</th><th>Motiv</th></tr></thead>
|
|
<tbody>
|
|
{% for r in rows %}
|
|
<tr>
|
|
<td>{{ r.id }}</td>
|
|
<td><span class="pill s-{{ r.status }}">{{ r.status }}</span></td>
|
|
<td>{{ r.id_prezentare or '—' }}</td>
|
|
<td>{{ r.rar_status_code or '—' }}</td>
|
|
<td>{{ r.retry_count }}</td>
|
|
<td class="muted">{{ r.updated_at }}</td>
|
|
<td class="muted">{{ (r.rar_error or '')[:80] }}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
{% else %}
|
|
<div class="empty">
|
|
Nicio trimitere inca —
|
|
<a href="/?tab=import">incepe cu Import</a>
|
|
sau trimite o prezentare prin API.
|
|
</div>
|
|
{% endif %}
|