feat(web): UI compact Trimiteri + bara bulk contextuala + fix buton "+" editor (PRD 5.22)
Trimiteri desktop = tabel grid cu header, un rand per trimitere: status = bulina cu tooltip, mediu = litera T/P, multi-cod = primul cod + badge +N, sub-linie de eroare cu textul brut RAR doar pe error/needs_data. Mobil: 2 linii prin grid-areas, fara header. Actiunile bulk apar doar la selectie (bara contextuala cu contor + texte explicite). Mapari: exemplu concret in loc de descriere la Reguli automate. Fix buton "+" chips (nu facea nimic, fara eroare): hx-disabled-elt="find button" mostenit de la form-ul parinte crapa htmx inainte de request -> hx-disabled-elt="this" explicit pe butoanele chips; separat, no-op-urile silentioase din post_form_chips au acum mesaje (cod invalid/duplicat) si confirmare cu chip evidentiat la succes. Suita: 1622 passed. Verify E2E in browser (desktop 1280 + mobil 390). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -359,6 +359,31 @@ def parse_erori(rar_error: object) -> list[dict]:
|
||||
return [{"problema": str(data)[:200], "cauza": "", "fix": "", "field": None}]
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# eroare_bruta — textul compact al erorii pentru sub-linia randului de tabel
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
# Stari cu sub-linie de eroare pe rand. needs_mapping e EXCLUS intentionat:
|
||||
# "nemapat" e deja vizibil in coloana Cod RAR, sub-linia ar fi redundanta.
|
||||
_STARI_CU_EROARE_BRUTA = ("error", "needs_data")
|
||||
|
||||
|
||||
def eroare_bruta(status: str, rar_error: object) -> str:
|
||||
"""Textul brut, compact, al primei erori — pentru sub-linia randului.
|
||||
|
||||
Prefera cauza tehnica (mesajul serverului RAR, ex. ORA-12899) si cade pe
|
||||
problema. Sir gol in afara starilor error/needs_data. Nu arunca niciodata
|
||||
(reuse parse_erori, degradare gratioasa).
|
||||
"""
|
||||
if status not in _STARI_CU_EROARE_BRUTA:
|
||||
return ""
|
||||
erori = parse_erori(rar_error)
|
||||
if not erori:
|
||||
return ""
|
||||
e = erori[0]
|
||||
return (str(e.get("cauza") or "").strip() or str(e.get("problema") or "").strip())[:200]
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Etichete stari preview import (vocabular DIFERIT de starile de submission)
|
||||
#
|
||||
|
||||
Reference in New Issue
Block a user