Clase Estudiante (Lesson Student)


Routes

Method URI Action
GET /lessons/{id}/students/{id} show pivot
PATCH /lessons/{id}/students/{id} update pivot
PATCH /lessons/{id}/students/bulk-update update in bulk

Model Attributes

{
  "id": 1,
  "attendance": true,  // Asistencia del estudiante en al clase
  "delayed": false,    // Si tuvo retraso o no.
  "note": 1,           // Nota que obtuvo en la clase, solo si fue una clase evaluada
  "comment": false,    // Comentario del profesor acerca del estudiante
  "lesson_id": 1,      // ID de clase
  "student_id": 1,     // ID del estudiante
  "updated_at": "2020-05-05 15:18:46",
  "created_at": "2020-05-05 15:18:46"
}

Show

Route GET /lessons/{id}/students/{id}

Policies

  • admin
  • coordinador asignado a la materia_seccion de la clase
  • profesor asignado a la materia_seccion de la clase

Response 200

{
  // LessonStudent
}

Update

Consideraciones

  • Cada vez que se actualiza la assitencia o retraso de una clase_estudiante se creará/actualizará/eliminará una inasistencia de estudiante, dependiendo del estado actual de la clase_estudiante.
  • Cuando se detecta en el request que attendance === false automaticamente se aplica delayed=false
  • Cuando se detecta en el request que delayed === true automaticamente se aplica attendance=true

Nota: Entre attendance y delayed. La condición de attendance tendra prioridad
Nota 2: esto mismo ocurre en el bulk-update.

Route PATCH /lessons/{id}/students/{id}

Policies

  • coordinador asignado a la materia_seccion de la clase
  • profesor asignado a la materia_seccion de la clase

Request Body

{
  "attendance": "boolean",
  "delayed": "boolean",
  "comment": "nullable|string",

  // `note` es solo requerido y utilizado si la clase es evaluada
  "note": "required|integer|min:0|max:20" 
}

Response 200

{
  // LessonStudent
}

Actualizar en lotes

Route PATCH /lessons/{id}/students/bulk-update

Policies

  • coordinador asignado a la materia_seccion de la clase
  • profesor asignado a la materia_seccion de la clase

Request Body

{
  "*.id": "required|integer",
  "*.attendance": "boolean",
  "*.delayed": "boolean",
  "*.comment": "nullable|string",

  // `note` es solo requerido y utilizado si la clase es evaluada
  "*.note": "required|numeric|min:0|max:20" 
}
// Ejemplo
// [
//   {
//     "id": 1,
//     "comment": "buen chico"
//   }
// ]

Response 204 No Content