es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo obtener una lista de todas las asignaciones pendientes de todos los cursos en Moodle utilizando la API de servicios web.

Quiero obtener una lista de todas las asignaciones junto con su estado de finalización en todos los cursos. Básicamente lo que se muestra en la línea de tiempo en el panel de control.

La función WS “core_course_get_enrolled_courses_by_timeline_classification” me da todos los cursos actuales en los que está inscrito el estudiante cuando uso el parámetro “?classification=inprogress”.

Usando los ids de curso de la función anterior, los paso como parámetros a la función “mod_assign_get_assignments”, pero hay un pequeño problema, no da ninguna información sobre si esa tarea ha sido marcada como completa por el estudiante (estado de finalización).

La función “core_course_get_contents” es mucho más de lo que necesito ya que proporciona cada módulo en ese curso y todas las actividades debajo de cada módulo, además de dar todo esto solo para un curso a la vez, sin embargo proporciona el estado de finalización para cada actividad.

Además, me ayudaría mucho si proporcionaras los parámetros de consulta requeridos y opcionales ya que la documentación de la API es bastante terrible y no proporciona nada de eso, tuve que buscar cada función en Google lo que fue muy consumidor de tiempo.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para obtener una lista de todas las tareas junto con su estado de finalización en todos los cursos, podemos seguir los siguientes pasos:

    1. Usar la función WS core_course_get_enrolled_courses_by_timeline_classification con el parámetro ?classification=inprogress para obtener una lista de todos los cursos actuales en los que el estudiante está inscrito.
    2. A partir de la respuesta del paso 1, extraer los identificadores de los cursos y pasarlos como parámetros a la función core_course_get_contents.

    3. En la respuesta del paso 2, buscar el módulo con modname como assign para identificar las tareas de cada curso.

    4. Para cada tarea, verificar su estado de finalización. El estado de finalización se puede encontrar en el campo completion de la actividad, que es un valor booleano (0 para incompleto y 1 para completo).

    Aquí están los parámetros de consulta requeridos y opcionales para cada función:

    • core_course_get_enrolled_courses_by_timeline_classification:
      • Requerido: classification (establecido en inprogress)
      • Opcional: userid (especifique el ID de usuario para obtener cursos, por defecto es el usuario actual)
    • core_course_get_contents:
      • Requerido: courseid (el ID del curso para obtener contenido)
      • Opcional: ninguno
    • mod_assign_get_assignments:
      • Requerido: courseids (lista separada por comas de IDs de curso para obtener las tareas)
      • Opcional: groupids (lista separada por comas de IDs de grupo para obtener tareas, por defecto todos los grupos), after (marca de tiempo para obtener tareas creadas después, por defecto es 0), before (marca de tiempo para obtener tareas creadas antes, por defecto es el tiempo actual), userid (especifique el ID de usuario para obtener tareas, por defecto es el usuario actual)

Comments are closed.