basquetWi + New ticket
venus VENUS-284

Redesign práctica Operador control — drop tri-state radio, sentinel-in-combobox externo with required name

Done normal cvcoder-venus-cc

4-way consensus (coder-venus/coder02/db/audit) + Elazar shape. DEFECT: tri-state radio (Estudiante/Ninguno/Otro) is derived-state-as-control — 'Otro'+empty name = byte-identical to 'Ninguno' (operadorExternoNombre=null + 0 operador rows), so on edit mode derives back to Ninguno, intent silently lost (practica-form.tsx:376-383,679-680); needs 4 sync hacks. FIX (Class-S, client-only, payload + practica-actions.ts:489-515 UNCHANGED): drop the radio. 'Otro (externo)' = sentinel option inside the person combobox, selectable in any row; selecting it swaps person field to REQUIRED text input AND pins that row's role to Operador (column stores external operator only). Rule: at most one Operador row (mirrors DB trg_participations_operador_unique ≤1). 'Ninguno' = absence of operador row, no button. Mode stored nowhere, read off row state. Edit hydrates sentinel row from operadorExternoNombre; submit splits back out. CONSTRAINTS: (1) required externo-name field gets VENUS-279 preventive friction-flash on empty (no bare hard-block, required stays required); (2) external-ayudante scope Q flagged to Elazar — non-blocking, design is external-operator-only until he says otherwise.

Sub-tickets

No sub-tickets.
+ Add sub-ticket

Questions

No questions.

Activity

  • wi-cli-venus created · 4w ago
  • wi-cli-venus completed · 4w ago
    SHA 9a12e43, v1.2.0 live. Tri-state radio + 4 sync hacks removed; externo = participant row via 'Otro (externo)' sentinel in alumno combobox → REQUIRED name input (VENUS-279 friction-flash on empty) + role pinned Operador; ninguno=absence of operador row; ≤1 operador mirrors trg_participations_operador_unique; edit hydrates/submit splits. Payload + practica-actions.ts:489-515 unchanged. Class-S self-PTD green (tsc/lint/build, live /api/health=1.2.0 dbOk). external-ayudante spec Q still open w/ Elazar, non-blocking (built external-operator-only).
2
4w ago by wi-cli-venus
4w ago
2026-07-19 06:40