Materia Seccion (Course Section)


Routes

Method URI Action
GET /sections/{id}/courses/{id} show pivot
GET /sections/{id}/courses/{id}/students/{id} show
GET /sections/{id}/courses/{id}/students/{id}/absences show
PATCH /sections/{id}/courses/{id}/students/{id}/final-note updates overwritten_final_note
PATCH /sections/{id}/courses/{id}/assign-teacher update CourseSection
GET /teachers/{id}/courses index
GET /students/{id}/courses index
GET /students/{id}/reports/courses-notes download
GET /students/{id}/reports/courses-final-notes download
GET /students/{id}/reports/courses/lessons-notes-history download
GET /students/{id}/reports/general-notes-history download

Model Attributes

{
  "id": 1,
  "course_id": 1,          // ID de materia (parent principal)
  "section_id": 1,         // ID de seccion (parent principal)
  "teacher_id": null,      // ID de profesor, este inicia null para luego asignar un profesor

  // Config proveniente del Course relacionado
  "final_delivery": false, 
  "final_delivery_value_percent": null,
  "final_delivery_merged_sections": false,
  "calculate_avg": true,
  "credits": 1,

  "period_id": 1,         // ID de periodo que provinene de seccion
  "specialization_id": 1, // ID de especialidad que provinene de seccion
  "semester_id": 1,       // ID de semestre que proviene de seccion
  "updated_at": "2020-05-05 15:18:46",
  "created_at": "2020-05-05 15:18:46"
}

Relations

  • Materia (parent) BelongsTo course
  • Seccion (parent) BelongsTo section
  • Profesor asignado BelongsTo teacher
  • Especialidad (de sección) BelongsTo specialization
  • Semestres (de sección) BelongsTo semester
  • Horarios HasMany schedules
  • Clases HasMany lessons
  • Estudiantes BelongsToMany students

Show

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

Policies

  • admin
  • coordinador asignado a la materia_seccion o que coordine la especialidad
  • profesor asignado a la materia_seccion

Response 200

{
  // CourseSection
}

Asignar Profesor

Como al crearse una sección ya se le añaden las materias del semestre, solo hace falta asignarle un profesor

Consideraciones

  • Si ya se ha asignado un profesor asignado este se reemplazara con el nuevo, por lo que si esta materia_seccion tenia clases, estas haran referencia al nuevo profesor

Route PATCH /sections/{id}/courses/{id}

Policies

  • admin
  • coordinador que coordine la especilidad de la sección

Request Body

{
  "teacher_id": "required|integer|exists"
}

Response 200


Ver estudiante

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

Policies

  • admin
  • coordinador asignado a la materia_seccion o que coordine la especialidad
  • profesor asignado a la materia_seccion

Response 200

{
  "email": "kemmer.esther@hotmail.com",
  "id_document": "27719035",
  "first_name": "Mr. Sterling Kessler MD",
  "last_name": "Wiegand",
  "gender": "male",
  "schedule_shift": "morning",
  "address": "3579 Murray Cliff Suite 519\nLloydside, LA 07044-2116",
  "birth_place": "3579 Murray Cliff Suite 519\nLloydside, LA 07044-2116",
  "birth_date": "2002-08-19",
  "phone": "+8109094096557",
  "mobile_phone": "+3894051539198",

  "profile_picture": "http:\/\/idc-api.test\/static\/default-profile-picture.png",
  "educational_background": "medium",
  "educational_title": "Prof.",
  "educational_institution_name": "Florine Feil DDS",
  "educational_current_activity": "trabajando?",
  "educational_graduation_date": "2019-08-19",
  "pivot": { // CourseSectionStudent
    "course_section_id": 10,
    "student_id": 1,
    "created_at": "2020-08-19T03:28:39.000000Z",
    "updated_at": "2020-08-20T18:57:03.000000Z",
    "first_cut_note": 16,           // Actualizado en cada cambio de nota de LessonStudent
    "second_cut_note": 17,          // Actualizado en cada cambio de nota de LessonStudent
    "final_delivery_note": null,    // Actualizado cuando se calcula la nota final del a entrega final
    "overwritten_final_note": null, // Cuando se quiere sobrescribir la nota actualizada por una custom
    "cut_average_note": 16.5,       // (computed) (first_cut_note + second_cut_note) / 2
    "cut_weight_note": null,        // (computed) el dichoso 70
    "final_delivery_weight_note": null, // (computed) el dichoso 30
    "final_note": 16.5                  // (computed) Nota final final en la MateriaSeccion
  }
}

Actualizar nota final de estudiante

Actualiza overwritten_final_note de MateriaSeccion, si este atributo tiene valor se debe asumir como la nota final real del estudiante en la MateriaSeccion. Su nota final calculada seguirá presente.

Route PATCH /sections/{id}/courses/{id}/students/{id}/final-note

Policies

  • admin
  • coordinador asignado a la materia_seccion o que coordine la especialidad
  • profesor asignado a la materia_seccion

Request Body

{
  "overwritten_final_note": "numeric|min:0|max:20"
}

Response 200


Materias de un profesor

Route GET /teachers/{id}/courses

Policies

  • admin
  • coordinador que supervise ese profesor
  • profesor relacionado

Response 200

[
  {
    // CourseSection with  'course',  'specialization', 'section',   'section.period'                   
  }
]

Materias de un estudiante

Route GET /students/{id}/courses

Policies

  • admin
  • coordinador que supervise ese profesor
  • estudiante relacionado

Response 200

Por defecto si no que especifica un ?period=int se colocara el actual habilitado para el filtrado

[
  {
    "id": 10,
    "final_delivery": true,
    "final_delivery_value_percent": 30,
    "final_delivery_merged_sections": false,
    "course_id": 1,
    "section_id": 2,
    "teacher_id": null,
    "period_id": 1,
    "specialization_id": 1,
    "semester_id": 1,
    "created_at": "2020-08-19T00:47:17.000000Z",
    "updated_at": "2020-08-19T00:47:17.000000Z",
    "pivot": { // CourseSectionStudent
      "student_id": 1,
      "course_section_id": 10,
      "created_at": "2020-08-19T03:28:39.000000Z",
      "updated_at": "2020-08-20T18:57:03.000000Z",
      "first_cut_note": 16,
      "second_cut_note": 17,
      "final_delivery_note": null,
      "overwritten_final_note": null,
      "cut_average_note": 16.5,
      "cut_weight_note": null,
      "final_delivery_weight_note": null,
      "final_note": 16.5
    },
    "course": {
      // Course
    },
    "specialization": {
      // Specialization
    },
    "section": {
      // Section
    },
    "period": {
      // Period
    }
  }
]

Materias de un estudiante

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

Policies

  • admin
  • coordinador que coordine la especialidad o asignado a la materia
  • profesor asignado a la materia

Response 200

Inasistencias del estudiante en esa MateriaSeccion


Reportes

Reporte de estudiantes

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

Policies

  • admin
  • coordinador que supervise ese profesor
  • profesor asignado a la materia