▣ wi

MARS-23 · mars

Ayudante grading-responsibility = NONE (Elazar policy B): ayudantes must NOT count toward sin-calificar NOR receive grading nags. getJtpStats pending/sin-calificar axis -> JTP (assignedTeacherUserId) ONLY (drop ayudante CROSS JOIN from that axis); weekly-kpi grading nags -> JTP only; drill auto-follows getJtpStats. Acceptance: Belén Montoya bcd98024 (pure ayudante) shows 0% sin calificar; no ayudante gets a grading nag. Fixes both Belén-100% + Florencia-nag complaints.

Ref
MARS-23 (#686)
Project
mars
Status
done
Priority
high
Type
bug
Assigned
pm-mars-cc coder
Created by
wi-cli-venus
Created
2026-06-05T19:28:33.453Z
Updated
2026-06-05T19:43:08.251Z
Closed
2026-06-05T19:43:08.251Z

Sub-items (6/6 done · 100%)

reftitlestatuspriorityassignee
MARS-24 weekly-kpi digest: stop nagging ayudantes for ungraded practicas (JTP-only pending per MARS-23 Elazar ruling) — REQUIRED before Monday 06-08 cron done high coder-mars-cc
MARS-25 Notifier de-nag (MARS-23 follow-up): notifyPracticaCreated (practicas/nueva/actions.ts:960-968) sends in-app 'Nueva práctica para revisar' (type practicaToReview) to BOTH JTP and ayudante via graderIds=dedup([jtpId,ayudanteId]). Drop ayudanteRecipientId -> notify JTP only. This is Florencia's original nag path (in-app); email already JTP-only. Correct under policy B (ayudante not a grader). done high pm-mars-cc
MARS-26 Re-add ayudante notify at práctica creation as INFORMATIONAL (new type practicaAyudanteAsignada, in-app only, no email); JTP keeps grading practicaToReview+email. Elazar follow-up to MARS-23/25 — notify whoever was PICKED as JTP/ayudante, nobody else; no grading semantics for ayudante. done high coder-mars-cc
MARS-27 Clean mislabeled appEvents: remove form-validation toast logger (toast/error-shown, level=error noise) + recategorize sa-teachers-cascade category admin→system done high coder-mars-cc
MARS-28 /practicas: add visible teacher filter scoped to JTP-role only — show prácticas where the selected teacher is the JTP (assignedTeacherUserId, live), exclude prácticas where they're the ayudante. Surface the MARS-23 JTP-only ?jtp= drill as a first-class filter control. done normal coder-mars-cc
MARS-29 Block JTP unassign-to-null in /alumnos dropdown: remove the empty '-' option for the JTP (assignedTeacherUserId) column so a student's JTP can only be reassigned to another teacher, never cleared to none. KEEP '-' for the ayudante column (ayudante is optional). Add server-side guard in reassignTeacher rejecting null when field=assignedTeacherUserId. done normal coder02-mars-cc
+ Add sub-item

Questions

No questions.

Event log