Clases (Lessons)


Routes

Method URI Action
GET /lessons index
GET /lessons/{id} show
POST /lessons store
PATCH /lessons/{id} update
DELETE /lessons/{id} delete
GET /teachers/{id}/lessons index
GET /students/{id}/lessons index
GET /sections/{id}/lessons index
GET /sections/{id}/courses/{id}/lessons index
GET /sections/{id}/courses/{id}/students/{id}/lessons index
GET /sections/{id}/courses/{id}/lessons-report index

Relations

  • Tiene estudiantes
  • Tiene inasistencias HasMany absences
  • Tiene inasistencias por asistencia HasMany absencesByAttendance
  • Tiene inasistencias por retraso (se debe dividir entre 2) HasMany absencesByDelay

Model Attributes

{
  "id": 1,
  "subject": "Clase-1: Aprendiendo sobre...",  // Tema de la clase
  "date": "2020-05-05",                        // fecha de la clase
  "period_cut": 1,                             // Si pertenece al primer o segundo corte del periodo
  "evaluated": false,                          // Marca si la clase sera evaluada o no. Si la clase es evaluada cuando se actualice un lesson_student nota sera requerida
  "course_section_id": 1,                      // ID de materia_seccion de la clase
  "period_id": 1,                              // ID de periodo, se toma de materia_seccion
  "teacher_id": 1,                             // ID de profesor actual de course_section. Si se asigna otro profesor a materia_seccion teacher_id tomara ese valor
  "original_teacher_id": 1,                    // ID de profesor original, para mantener una referencia al primer profesor de esta clase
  "updated_at": "2020-05-05 15:18:46",       
  "created_at": "2020-05-05 15:18:46"
}

Index

{info} Si el usuario autenticado es de tipo profesor o coordinador traera solo las clases de ese usuario.

Route GET /lessons

Policies

  • admin
  • coordinador
  • profesor

Filters extends Query Filters

Filter Description
search=value Busca a traves de subject
period_cut=int Obtiene las clases de un corte
evaluated=bool Obtiene las clases que tengan o no evaluación
course=id Obtiene las clases de una materia
section=id Obtiene las clases de una sección
period=id Obtiene las clases de un periodo

Response 200

[
  {
    // Lesson
  }
]

Store

{info} Al guardarse, a la clase se el añadiran todos los estudiantes relacionados a la materia_seccion en clase_estudiante

Route POST /lessons

Policies

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

Request Body

{
  "subject": "required|string",
  "date": "required|date_format:Y-m-d",
  "period_cut": "required|integer|min:1|max:2",
  "evaluated": "required|boolean",
  "course_section_id": "required|integer|exists:course_section,id"
}

Response 201

{
  // Lesson
}

Update

Route PATCH /lessons/{id}

Policies

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

Request Body

{danger} Si la clase pasa a ser no evaluada, a todos sus estudiantes se le colocara nota como null

{
  "subject": "string",
  "period_cut": "integer|min:1|max:2",
  "evaluated": "boolean"
}

Response 200

{
  // Lesson
}

Delete

Route DELETE /lessons/{id}

Policies

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

Response 204 No Content


Clases de un profesor

Route GET /teachers/{id}/lessons

Policies

  • admin
  • coordinador que supervise ese profesor
  • profesor relacionado a ese profesor

Filters extends Lesson Query Filters

Response 200

[
  {
    // Lesson
  }
]

Clases de un estudiante

Route GET /students/{id}/lessons

Policies

  • admin
  • coordinador
  • estudiante relacionado a ese estudiante

Filters extends Lesson Query Filters

Response 200

[
  {
    // Lesson
  }
]

Clases de una seccion

Route GET /sections/{id}/lessons

Policies

  • admin
  • coordinador que coordine la especialidad de esa sección

Filters extends Lesson Query Filters

Response 200

[
  {
    // Lesson
  }
]

Clases de una materia_seccion

Route GET /sections/{id}/courses/{id}/lessons

Policies

  • admin
  • coordinador que coordine la especialidad de esa materia_seccion
  • profesor asignado a esa materia_seccion

Filters extends Lesson Query Filters

Response 200

[
  {
    // Lesson
  }
]

Clases de un estudiante de una materia_seccion

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

Policies

  • admin
  • coordinador que coordine la especialidad de esa materia_seccion
  • profesor asignado a esa materia_seccion

Filters extends Lesson Query Filters

Response 200

[
  {
    // Lesson
  }
]

Reporte de clases de una materia_seccion

Descarga un PDF

Route GET /sections/{id}/courses/{id}/lessons-report

Policies

  • admin
  • coordinador que coordine la especialidad de esa materia_seccion
  • profesor asignado a esa materia_seccion

Response 200