feat(5.20): US-010 badge mediu RAR in liste/preview/detaliu/jurnal + audit + ecou API

labels.py: ETICHETE_ENV + eticheta_env(env)->(text,css). Productie afisata
"PRODUCȚIE" (majuscule+diacritice) cu badge fill de atentie (--err), Testare
outline discret muted — semnalizare risc L.142 (declaratie reala ireversibila).
Clase .env-badge-prod / .env-badge-test in base.html; eticheta_env expus ca
global Jinja.

Badge de mediu per rand in _submissions, _coada implicit prin view, _preview_rand,
_trimitere_detaliu, _jurnal. Statusbar (_status.html) aliniat la aceeasi conventie
(Productie = atentie, nu verde) — inlocuieste culorile ad-hoc din US-011, toggle
neatins.

rar_env in exportul de audit (AUDIT_COLUMNS + _audit_rows) si ecou in
GET /v1/prezentari(/{id}). _submission_row_view/_detaliu_ctx/fragment_submissions
duc rar_env pana in template.

tests/test_badge_rar_env.py: badge in lista, audit contine rar_env, GET ecou rar_env.
test_statusbar_env: asertie aliniata la eticheta PRODUCȚIE.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude Agent
2026-07-02 20:16:08 +00:00
parent d1978e2545
commit 0a1df31126
11 changed files with 319 additions and 18 deletions

View File

@@ -401,6 +401,31 @@ def nota_umana_preview(status: str, errors: list, flags: list) -> str:
return ""
# ---------------------------------------------------------------------------
# Etichete mediu RAR (Test / Productie) — US-010 PRD 5.20
#
# Conventia de culori (semantica risc L.142):
# prod = env-badge-prod (fill atentie, text alb) — declaratie REALA, ireversibila.
# test = env-badge-test (outline discret, --muted) — mediu de proba.
# ---------------------------------------------------------------------------
ETICHETE_ENV: dict[str, tuple[str, str]] = {
"prod": ("PRODUCȚIE", "env-badge-prod"),
"test": ("Testare", "env-badge-test"),
}
def eticheta_env(env: object) -> tuple[str, str]:
"""Returneaza (text, css_class) pentru mediul RAR.
Fallback sigur: env necunoscut sau None -> ('Testare', 'env-badge-test').
Nu arunca niciodata.
"""
if not env:
return ("Testare", "env-badge-test")
return ETICHETE_ENV.get(str(env), ("Testare", "env-badge-test"))
# ---------------------------------------------------------------------------
# Constante auxiliare (microcopy fix, fara logica)
# ---------------------------------------------------------------------------