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:
@@ -246,3 +246,34 @@ def test_bulk_scoped_cont(client):
|
||||
# Randul lui B NEATINS
|
||||
assert _get_status(sid_b) == "needs_mapping", \
|
||||
"Randul contului B a fost modificat de contul A — INCALCARE SCOPE!"
|
||||
|
||||
|
||||
def test_bara_bulk_ascunsa_implicit(client):
|
||||
"""Controalele bulk stau intr-o bara contextuala ascunsa implicit (fara selectie)."""
|
||||
acct = _create_account_user("bara.hidden@test.com")
|
||||
_insert_submission(acct)
|
||||
_login(client, "bara.hidden@test.com")
|
||||
|
||||
html = client.get("/_fragments/submissions").text
|
||||
assert 'id="bulk-bar"' in html, "Bara contextuala bulk lipseste"
|
||||
m = re.search(r'id="bulk-bar"[^>]*class="([^"]*)"', html) or \
|
||||
re.search(r'class="([^"]*)"[^>]*id="bulk-bar"', html)
|
||||
assert m and "bulk-bar" in m.group(1) and "activ" not in m.group(1), (
|
||||
f"Bara bulk trebuie randata inactiva (ascunsa prin CSS): {m.group(0) if m else 'fara clasa'}"
|
||||
)
|
||||
# butonul vechi permanent 'Aplica cod' (fara context) a disparut
|
||||
assert ">\n Aplica cod\n </button>" not in html
|
||||
|
||||
|
||||
def test_bara_bulk_texte_explicite(client):
|
||||
"""Bara contine contor, buton explicit 'Aplica acest cod la N randuri',
|
||||
stergere cu N, 'Deselecteaza' si hint-ul cu ce face actiunea."""
|
||||
acct = _create_account_user("bara.texte@test.com")
|
||||
_insert_submission(acct)
|
||||
_login(client, "bara.texte@test.com")
|
||||
|
||||
html = client.get("/_fragments/submissions").text
|
||||
assert "selectate" in html
|
||||
assert "Aplica acest cod la" in html
|
||||
assert "Deselecteaza" in html
|
||||
assert "operatiilor fara cod" in html, "Hint-ul explicativ lipseste"
|
||||
|
||||
Reference in New Issue
Block a user