feat(web): dashboard compact — import pe Acasa, status cu bife, Trimiteri lizibile, Mapari complete (3.5)
Acasa = ecran de import (tab Import scos, ?tab=import->Acasa). Bara status compacta pe 2 randuri cu bife accesibile (glife + text) + data formatata. 'Coada'->'Trimiteri': coloane RO, stare umana, detaliu la click in panou dedicat. Mapari pe 3 sectiuni (de rezolvat / op salvate / formate coloane), Cont doar cheie+creds. Filtrare Trimiteri, corectie inline needs_data cu re-enqueue + detectie coliziune idempotency, badge contoare pe tab-uri. Helper pur partajat payload_view.py (web + GET /v1/prezentari). Backend trimitere (worker/idempotenta/mapping/schema) neatins. 483 teste. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -34,6 +34,7 @@ from ...mapping import (
|
||||
save_mapping,
|
||||
)
|
||||
from ...models import PrezentareRequest, PrezentariResponse, SubmissionResult
|
||||
from ...payload_view import prezentare_din_payload
|
||||
from ...validation import validate_prezentare
|
||||
|
||||
router = APIRouter(prefix="/v1", tags=["v1"])
|
||||
@@ -139,19 +140,31 @@ def list_prezentari(
|
||||
conn = get_connection()
|
||||
try:
|
||||
scope_sql, scope_params = account_scope_clause(account_id)
|
||||
# payload_json e plaintext (vezi submissions.payload_json); il citim doar ca
|
||||
# sa derivam campurile afisabile prin helper-ul partajat (US-003, DRY), nu il expunem.
|
||||
cols = (
|
||||
"id, status, id_prezentare, rar_status_code, retry_count, "
|
||||
"created_at, updated_at, payload_json"
|
||||
)
|
||||
if status:
|
||||
rows = conn.execute(
|
||||
f"SELECT id, status, id_prezentare, rar_status_code, retry_count, created_at, updated_at "
|
||||
f"FROM submissions WHERE {scope_sql} AND status=? ORDER BY id DESC LIMIT ?",
|
||||
f"SELECT {cols} FROM submissions WHERE {scope_sql} AND status=? "
|
||||
f"ORDER BY id DESC LIMIT ?",
|
||||
scope_params + [status, limit],
|
||||
).fetchall()
|
||||
else:
|
||||
rows = conn.execute(
|
||||
f"SELECT id, status, id_prezentare, rar_status_code, retry_count, created_at, updated_at "
|
||||
f"FROM submissions WHERE {scope_sql} ORDER BY id DESC LIMIT ?",
|
||||
f"SELECT {cols} FROM submissions WHERE {scope_sql} ORDER BY id DESC LIMIT ?",
|
||||
scope_params + [limit],
|
||||
).fetchall()
|
||||
return {"submissions": [dict(r) for r in rows]}
|
||||
out = []
|
||||
for r in rows:
|
||||
d = dict(r)
|
||||
# Campuri afisabile derivate din payload (acelasi helper ca dashboardul web);
|
||||
# payload_json brut nu se intoarce in raspuns.
|
||||
d["prezentare"] = prezentare_din_payload(d.pop("payload_json", None))
|
||||
out.append(d)
|
||||
return {"submissions": out}
|
||||
finally:
|
||||
conn.close()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user