Per-user version of computeAssignmentStatus. Returns the status the
given user should see for this assignment — independent of whether
other assignees are done.
userId is in completedBy → 'completed'
their userActivities[userId] has activity → 'in_progress'
their userActivities[userId].status is set (e.g. on_hold)
and has no activity yet → that explicit status
otherwise → 'not_started'
Use this for any UI that should reflect "where does this user stand
on this assignment" — e.g. a student-facing file-manager row, or the
status chip the student sees inside the editor.
Per-user version of
computeAssignmentStatus. Returns the status the given user should see for this assignment — independent of whether other assignees are done.userIdis incompletedBy→'completed'userActivities[userId]has activity →'in_progress'userActivities[userId].statusis set (e.g.on_hold) and has no activity yet → that explicit status'not_started'Use this for any UI that should reflect "where does this user stand on this assignment" — e.g. a student-facing file-manager row, or the status chip the student sees inside the editor.