Limpieza intentos examenes (quiz)

Re: Limpieza intentos examenes (quiz)

de Carlos Massoglia -
Número de respuestas: 0
Hola Pablo,

yo creo que lo qu eintentas hacer es sumamente riesgoso. Me parece que una lógica más cautelosa sería:

1.- Obtener todos los cursos de tu plataforma distintos a la portada
2.- Por cada curso obtener todas las instancias de actividad quiz
3.- Por cada instancia de la actividad quiz obtener todos los intentos
4.- Con los resultados de los intentos agruparlos por userid y dejar fuera el más alto
5.- Con el arreglo que generarás en el paso 4 iterarlo e ir eliminando dichos intentos

El riesgo que veo de lo que propones en tu código es que no estás considerando en tu consulta el curso, por lo tanto cuando comiences a iterar puede que en ciertas condiciones se te mezclen los resultados de los intentos de un estudiante y termines eliminando todos los intentos, excepto el de mejor nota, pero entre todos los cursos y quices que haya para dicho usuario en la Base de Datos. Si haces el análisis por curso y cuestionario y además generando un arreglo solo con lo que quieres eliminar en principio te permitirá validar que la info que vas a eliminar es la correcta (para esto tiras un print de la variable que contiene los elementos a eliminar, pero sin hacer ninguna eliminación) y cuando estés seguro que has construido bien dicho arreglo y que no estás eliminando nada incorrecto haces la llamada a la función quiz_delete_attempt.

Saludos.