Cambio masivo de fechas de cierre en actividades de cursos

1. Método para resolverlo:

  1. Accede al servidor de tu plataforma Moodle utilizando un cliente SQL para interactuar con la base de datos.
  2. Realiza una copia de seguridad completa de la base de datos antes de realizar cualquier modificación.
  3. Identifica la tabla en la base de datos que almacena las configuraciones de las actividades, usualmente mdl_quiz para cuestionarios.
  4. Ejecuta una consulta SELECT para identificar los registros específicos que requieren cambios. Por ejemplo:
            
              SELECT id, course, timeclose FROM mdl_quiz WHERE timeclose IS NOT NULL;
            
          
  5. Elimina o actualiza los valores de las fechas de cierre (campo timeclose). Por ejemplo, para eliminar la fecha de cierre de todos los cuestionarios, utiliza:
            
              UPDATE mdl_quiz SET timeclose = NULL WHERE timeclose IS NOT NULL;
            
          
  6. Verifica los cambios ejecutando nuevamente una consulta SELECT:
            
              SELECT id, course, timeclose FROM mdl_quiz WHERE timeclose IS NOT NULL;
            
          
  7. Prueba en la plataforma para confirmar que los cambios se han aplicado correctamente.

2. Causas del problema:

Las fechas de cierre configuradas manualmente en actividades como cuestionarios impiden que los estudiantes accedan a ellas fuera del rango establecido. Cambiar estas fechas de forma manual en un gran número de actividades puede ser tedioso y propenso a errores. Realizar el cambio masivo desde la base de datos es una solución eficiente, pero debe hacerse con precaución para evitar inconsistencias en la plataforma.

3. Recomendaciones:

  • Antes de modificar la base de datos, consulta con un administrador para validar el impacto de los cambios.
  • Siempre realiza una copia de seguridad antes de aplicar actualizaciones en masa.
  • Considera usar un script PHP o una herramienta de línea de comandos como moosh para tareas masivas, ya que estas herramientas están diseñadas para operar dentro de las reglas de Moodle y minimizan riesgos.

4. Ejemplos y Casos de Uso:

Si tienes 200 cuestionarios con fechas de cierre configuradas, realizar este cambio manualmente puede tomar varias horas. Usando el método SQL descrito, puedes realizar el cambio en cuestión de minutos.

Supongamos que deseas eliminar las fechas de cierre solo para cuestionarios en un curso específico con ID 42. Usa:

      
        UPDATE mdl_quiz SET timeclose = NULL WHERE course = 42 AND timeclose IS NOT NULL;
      
    

5. Referencias:

¿Le ha resultado útil este artículo?