Gradebook services
Servicios relacionados a los modelos evaluativos en cursos y promociones.
1. Obtener el modelo evaluativo de un curso o promoción.
- local_contentdata_get_course_gradebook
Descripción:
Servicio para obtener el modelo evaluativo de un curso o promoción.
Endpoint: local_contentdata_get_course_gradebook
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_get_course_gradebook
- courseid: int | id de curso
- groupid: int | id de grupo
Respuestas:
Se cambio al usuario de grupo
{ "status": 200, "code": 0, "message": "", "body": [ 'basecoursecategory': id de la categoria base del curso, 'uncategorizedactivities': actividades que no pertenecen a ningún bloque | [ 'activityid': id de la actividad (cmid), 'itemid': id de item, 'itemtype': tipo de item, 'name': nombre de la actividad, 'parentid': id de la categoria padre, 'gradetype': tipo de calificación, 'gradepass': calificación para aprobar, 'grademin': calificación mínima, 'grademax': calificación máxima, 'display': mostrar calificación, 'decimals': cantidad de decimales 'aggregationcoef2': porcentaje de la calificacion total del curso 'weightoverride': bandera para saber si se puede editar el porcentaje de la calificacion (1->si, 0->no) ], 'blocks': [ 'id': id del bloque (categoría), 'itemid': id de item, 'itemtype': tipo de item, 'name': nombre del bloque, 'parentid': id de la categoria padre, 'order': orden del bloque, 'aggregation': tipo de ponderación, 'aggregateonlygraded': tomar en cuenta calificaciones iguales a 0 (1->si, 0->no), 'droplow': droplow, 'gradetype': tipo de calificación, 'gradepass': calificación para aprobar, 'grademin': calificación mínima, 'grademax': calificación máxima, 'display': mostrar calificación, 'decimals': cantidad de decimales 'aggregationcoef2': porcentaje de la calificacion total del curso 'weightoverride': bandera para saber si se puede editar el porcentaje de la calificacion (1->si, 0->no), 'modules': [ 'activityid': id del módulo (section id), 'itemid': id de item, 'itemtype': tipo de item, 'name': nombre del módulo, 'parentid': id de la categoria padre, 'gradetype': tipo de calificación, 'gradepass': calificación para aprobar, 'grademin': calificación mínima, 'grademax': calificación máxima, 'display': mostrar calificación, 'decimals': cantidad de decimales 'aggregationcoef2': porcentaje de la calificacion total del curso 'weightoverride': bandera para saber si se puede editar el porcentaje de la calificacion (1->si, 0->no) ], 'categories': [ 'id': id de la categoría, 'itemid': id de item, 'itemtype': tipo de item, 'name': nombre del bloque, 'parentid': id de la categoria padre, 'order': orden del bloque, 'aggregation': tipo de ponderación, 'aggregateonlygraded': tomar en cuenta calificaciones iguales a 0 (1->si, 0->no), 'droplow': droplow, 'gradetype': tipo de calificación, 'gradepass': calificación para aprobar, 'grademin': calificación mínima, 'grademax': calificación máxima, 'display': mostrar calificación, 'decimals': cantidad de decimales 'aggregationcoef2': porcentaje de la calificacion total del curso 'weightoverride': bandera para saber si se puede editar el porcentaje de la calificacion (1->si, 0->no), 'activities': [ 'activityid': id de la actividad (cmid), 'itemid': id de item, 'itemtype': tipo de item, 'name': nombre del módulo, 'parentid': id de la categoria padre, 'gradetype': tipo de calificación, 'gradepass': calificación para aprobar, 'grademin': calificación mínima, 'grademax': calificación máxima, 'display': mostrar calificación, 'decimals': cantidad de decimales 'aggregationcoef2': porcentaje de la calificacion total del curso 'weightoverride': bandera para saber si se puede editar el porcentaje de la calificacion (1->si, 0->no) ] ], 'items': elementos calificables personalizados | [ 'activityid': id de la actividad (cmid), 'itemid': id de item, 'itemtype': tipo de item, 'name': nombre del módulo, 'parentid': id de la categoria padre, 'gradetype': tipo de calificación, 'gradepass': calificación para aprobar, 'grademin': calificación mínima, 'grademax': calificación máxima, 'display': mostrar calificación, 'decimals': cantidad de decimales 'aggregationcoef2': porcentaje de la calificacion total del curso 'weightoverride': bandera para saber si se puede editar el porcentaje de la calificacion (1->si, 0->no) ] ] ]}Error producido si no se encuentró el curso
{ "status": 404, "code": 1, "message": "Course not found", "body": []}Error producido si la categoría del curso es Máster
{ "status": 404, "code": 2, "message": "Required group id", "body": []}Error producido si no se encontró el grupo
{ "status": 404, "code": 3, "message": "Group not found", "body": []}2. Mover elementos entre categorías.
- local_contentdata_manage_item_grade_category
Descripción:
Servicio mover elementos entre categorías.
Endpoint: local_contentdata_manage_item_grade_category
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_manage_item_grade_category
- courseid: int | id de curso
- itemtype: string | tipo de item
- itemid: int | id del item
- newparent: int | id de la categoría padre
- groupid: int | id del grupo (opcional)
Respuestas:
Se actaulizó el item
{ "status": 200, "code": 0, "message": "",}Error producido si no se encuentró el curso
{ "status": 404, "code": 1, "message": "Course not found"}Error producido si no se encontró el grupo
{ "status": 404, "code": 2, "message": "Group not found"}Error producido si el tipo de item es incorrecto
{ "status": 404, "code": 3, "message": "Incorrect itemtype"}Error producido si no se encontró el item
{ "status": 404, "code": 4, "message": "Item not found"}Error producido si el id del nuevo padre es incorrecto
{ "status": 404, "code": 4, "message": "Parent not found"}3. Obtener los grupos que tiene asignado un template.
- local_contentdata_get_group_grades_template
Descripción:
Servicio para obtener los grupos que tiene asignado un template de modelo evaluativo.
Endpoint: local_contentdata_get_group_grades_template
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_get_group_grades_template
- courseid: int | id de curso
- categorytemplateid: int | id de curso
Respuestas:
Se cambio al usuario de grupo
{ "status": 200, "code": 0, "message": "", "body": [ 'id': id de registro, 'courseid': id de curso, 'groupid': id de grupo, 'categorytemplateid': id de template, ]}Error producido si no se encuentró el curso
{ "status": 404, "code": 1, "message": "Course not found"}Error producido si no se encontró el template
{ "status": 404, "code": 2, "message": "Category template not found"}4. Crear un bloque o categoría en el modelo evaluativo.
- local_contentdata_create_group_grade_category
Descripción:
Servicio para crear un bloque o categoría en el modelo evaluativo aplicado a un curso o promoción.
Endpoint: local_contentdata_create_group_grade_category
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_create_group_grade_category
- courseid: int | id de curso
- groupid: int | id de grupo
- title: string | nombre del bloque,
- parentid: int | id de la categoria padre,
- aggregation: int | tipo de ponderación,
- aggregateonlygraded: int | tomar en cuenta calificaciones iguales a 0 (1->si, 0->no),
- droplow: int | droplow,
- gradetype: int | tipo de calificación,
- gradepass: int | calificación para aprobar,
- grademin: int | calificación mínima,
- grademax: int | calificación máxima,
- display: int | mostrar calificación,
- decimals: int | cantidad de decimales
- aggregationcoef2: int | porcentaje de la calificacion total del curso
Respuestas:
Se creó la categoría
{ "status": 200, "code": 0, "message": "", "body": [ 'categoryid': id de la categoría, ]}Error producido si no se encuentró el curso
{ "status": 404, "code": 1, "message": "Course not found", "body": []}Error producido si la categoría del curso es Máster
{ "status": 404, "code": 2, "message": "Required group id", "body": []}Error producido si no se encontró el grupo
{ "status": 404, "code": 3, "message": "Group not found", "body": []}Error producido si el id del nuevo padre es incorrecto
{ "status": 404, "code": 4, "message": "Parent not found", "body": []}5. Obtener la lista de bloques de un modelo evaluativo.
- local_contentdata_get_course_blocks
Descripción:
Servicio para obtener la lista de bloques de un modelo evaluativo.
Endpoint: local_contentdata_get_course_blocks
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_get_course_blocks
- courseid: int | id de curso
- groupid: int | id de grupo
Respuestas:
Se obtuvo la lista de bloques
{ "status": 200, "code": 0, "message": "", "body": [ 'blockid': id del bloque, 'name': nombre del bloque, 'type': tipo de item ]}Error producido si no se encuentró el curso
{ "status": 404, "code": 1, "message": "Course not found", "body": []}Error producido si la categoría del curso es Máster
{ "status": 404, "code": 2, "message": "Required group id", "body": []}Error producido si no se encontró el grupo
{ "status": 404, "code": 3, "message": "Group not found", "body": []}6. Crear una plantillita predeterminada del modelo evaluativo.
- local_contentdata_create_course_skeleton
Descripción:
Servicio para crear una plantillita predeterminada del modelo evaluativo.
Endpoint: local_contentdata_create_course_skeleton
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_create_course_skeleton
- usertoken: string | token del usuario
- courseid: int | id de curso
- name: string | nombre de la plantilla
- groupid: int | id de grupo
Respuestas:
Se generó la plantilla
{ "status": 200, "code": 0, "message": ""}Error producido si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied"}Error producido si no se encuentró el curso
{ "status": 404, "code": 2, "message": "Course not found"}Error producido si no se encontró el grupo
{ "status": 404, "code": 4, "message": "Group not found"}7. Actualizar la ponderación de un bloque o categoría.
- local_contentdata_update_block_weight
Descripción:
Servicio para actualizar la ponderación del modelo evaluativo aplicado en una promoción.
Endpoint: local_contentdata_update_block_weight
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_update_block_weight
- courseid: int | id de curso
- groupid: int | id de grupo
- blocks: array |
- itemid: int | id de item
- aggregationcoef2: float | ponderación
- categories: array |
- itemid: int | id de item
- aggregationcoef2: float | ponderación
- activities: array |
- itemid: int | id de item
- aggregationcoef2: float | ponderación
*La suma de las ponderaciones debe ser igual a 0 o 100
¿Cómo se vería el array formado?
Este es un ejemplo del array formado para enviar la actualización de las ponderaciones
{ "blocks": [ { "itemid": 1, //id del bloque 1 "aggregationcoef2": 80, "categories": [ { "itemid": 101, //id de la categoría 1 "aggregationcoef2": 50, "activities": [ { "itemid": 1001, //id de la actividad 1 "aggregationcoef2": 30 }, { "itemid": 1002, //id de la actividad 2 "aggregationcoef2": 70 } ] }, { "itemid": 102, //id de la categoría 2 "aggregationcoef2": 50, "activities": [ { "itemid": 1003, //id de la actividad 3 "aggregationcoef2": 100 } ] } ] }, { "itemid": 2, //id del bloque 2 "aggregationcoef2": 20, "categories": [] } ]}¿Qué pasa si tengo una actividad dentro de un bloque pero fuera de una categoría?
En estos casos la actividad se comportaría como una categoría y su ponderacion debe sumar como tal
por lo que el array quedaría de la siguiente manera
{ "blocks": [ { "itemid": 1, //id del bloque 1 "aggregationcoef2": 80, "categories": [ { "itemid": 101, //id de la categoría 1 "aggregationcoef2": 50, "activities": [ { "itemid": 1001, //id de la actividad 1 "aggregationcoef2": 30 }, { "itemid": 1002, //id de la actividad 2 "aggregationcoef2": 70 } ] }, { "itemid": 1003, //id de la actividad 3 "aggregationcoef2": 50, "activities": [] } ] }, { "itemid": 2, //id del bloque 2 "aggregationcoef2": 20, "categories": [] } ]}Respuestas:
Se generó la plantilla
{ "status": 200, "code": 0, "message": ""}Error producido si no se encuentró el curso
{ "status": 404, "code": 1, "message": "Course not found"}Error producido si no se encontró el grupo
{ "status": 404, "code": 2, "message": "Group not found"}Error producido si no se encontró un bloque
{ "status": 404, "code": 3, "message": "Block not found"}Error producido si no se encontró una categoría
{ "status": 404, "code": 4, "message": "Category not found"}Error producido si no se encontró una actividad
{ "status": 404, "code": 5, "message": "Activity not found"}Error producido si la suma de las ponderaciones de las actividades es diferente de 0 o 100
{ "status": 404, "code": 6, "message": "Total weighting for activities incorrect"}Error producido si la suma de las ponderaciones de las categorías es diferente de 0 o 100
{ "status": 404, "code": 7, "message": "Total weighting for categories incorrect"}Error producido si la suma de las ponderaciones de los bloques es diferente de 0 o 100
{ "status": 404, "code": 8, "message": "Total weighting for blocks incorrect"}8. Eliminar items del modelo evaluativo.
- local_contentdata_delete_item
Descripción:
Servicio para eliminar items del modelo evaluativo aplicado a una promoción.
Endpoint: local_contentdata_delete_item
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_delete_item
- courseid: int | id de curso
- itemtype: string | tipo de item
- itemid: int | id del item
- groupid: int | id del grupo (opcional)
Respuestas:
Se eliminó el item
{ "status": 200, "code": 0, "message": "",}Error producido si no se encuentró el curso
{ "status": 404, "code": 1, "message": "Course not found"}Error producido si no se encontró el grupo
{ "status": 404, "code": 2, "message": "Group not found"}Error producido si el tipo de item es incorrecto
{ "status": 404, "code": 3, "message": "Incorrect itemtype"}Error producido si no se encontró el item
{ "status": 404, "code": 4, "message": "Item not found"}9. limpiar el modelo evaluativo de una promoción.
- local_contentdata_clean_course_gradebook
Descripción:
Servicio para limpiar el modelo evaluativo de una promoción.
Endpoint: local_contentdata_clean_course_gradebook
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_clean_course_gradebook
- courseid: int | id de curso
- groupid: int | id del grupo (opcional)
Respuestas:
Se limpió el modelo evaluativo
{ "status": 200, "code": 0, "message": "",}Error producido si no se encuentró el curso
{ "status": 404, "code": 1, "message": "Course not found"}Error producido si no se encontró el grupo
{ "status": 404, "code": 2, "message": "Group not found"}10. Crear los items de todos los módulos de todos los cursos.
- local_contentdata_create_all_modules_items
Descripción:
Servicio para crear los items de todos los módulos de todos los cursos.
Endpoint: local_contentdata_create_all_modules_items
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_create_all_modules_items
- userid: int | id de usuario
Respuestas:
Se limpió el modelo evaluativo
{ "status": 200, "code": 0, "message": "",}11. Crear un item calificable.
- local_contentdata_create_activity_item
Descripción:
Servicio para crear un item calificable que no está registrado en moodle.
Endpoint: local_contentdata_create_activity_item
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_create_activity_item
- courseid: int | id de curso
- groupid: int | id de grupo
- title: string | nombre del bloque,
- parentid: int | id de la categoria padre,
- gradetype: int | tipo de calificación,
- gradepass: int | calificación para aprobar,
- grademin: int | calificación mínima,
- grademax: int | calificación máxima,
- display: int | mostrar calificación,
- decimals: int | cantidad de decimales
- aggregationcoef2: int | porcentaje de la calificacion total del curso
Respuestas:
Se creó la actividad en el modelo evaluativo
{ "status": 200, "code": 0, "message": "",}Error producido si no se encuentró el curso
{ "status": 404, "code": 1, "message": "Course not found"}Error producido si no se encontró el grupo
{ "status": 404, "code": 2, "message": "Group not found"}Error producido si parentid es incorrecto
{ "status": 404, "code": 4, "message": "parent category not found"}12. Actualizar un item calificable.
local_contentdata_update_item
Descripción:
Servicio para actualizar un item calificable.
Endpoint: local_contentdata_update_item
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_update_item
- courseid: int | id de curso
- groupid: int | id de grupo
- itemid: int | id del item
- title: string | nombre del bloque,
- parentid: int | id de la categoria padre,
- gradetype: int | tipo de calificación,
- gradepass: int | calificación para aprobar,
- grademin: int | calificación mínima,
- grademax: int | calificación máxima,
- display: int | mostrar calificación,
- decimals: int | cantidad de decimales
- aggregationcoef2: int | porcentaje de la calificacion total del curso
Respuestas:
Se actualizó el item
{ "status": 200, "code": 0, "message": "",}Error producido si no se encuentró el curso
{ "status": 404, "code": 1, "message": "Course not found"}Error producido si no se encontró el grupo
{ "status": 404, "code": 2, "message": "Group not found"}Error producido si no se encontró el item
{ "status": 404, "code": 4, "message": "item not found"}