chamilo-lms
chamilo-lms copied to clipboard
Eliminar preguntas al eliminar ejercicio evitando que queden huérfanas
Se da la casuística que en algunos casos queremos que en los campus de Chamilo, cuando se borra un ejercicio o una pregunta, estas no queden huérfanas, si no que se eliminen completamente.
Esta pull request agrega la funcionalidad de borrado automático de preguntas al borrar un ejercicio, para ello se debe setear a true el nuevo parámetro de configuración "quiz_question_delete_automatically_when_deleting_exercise".
En este caso, si la pregunta es reutilizada en otros ejercicios, ya sean del mismo curso o en otros (cuando el parametro "quiz_question_allow_inter_course_linking" está a true) la pregunta se elimina únicamente si el ejercicio que se está borrando tiene el valor del identificador autonumérico "iid" de la tabla c_quiz_rel_question más bajo, ya que se consideraría que sería el ejercicio "propietario" de esa pregunta.
En el caso de borrar una pregunta en concreto de un ejercicio, se comprueba si esa pregunta es reutilizada en otros ejercicios y si se da la lógica de que el ejercicio donde se está borrando tiene el valor del identificador autonumérico "iid" de la tabla c_quiz_rel_question más bajo, se informaría al usuario de la que pregunta está siendo reutilizada en otros ejercicios y si desea continuar.
Hay algo que no funciona con la prueba automatizada (cs-fixer y php7.4) pero no parece ser culpa de tu commit. Sin embargo, las variables de idiomas no se mandan a través de Git. Son agregadas a nuestros sistema de traducciones (https://translate.chamilo.org) pero de esto nos encargamos nosotros si simplemente nos pones el nombre de la variable y sus traducciones iniciales (aquí inglés y español) en la descripción de tu PR. Podrías corregir tu PR para no incluir los dos archivos en main/lang/ por favor?
La variable de idioma es $QuestionInOtherExercises y la traduces como "Esta pregunta está en otros ejercicios, ¿estás seguro de querer eliminarla?"; y "This question is shared on other exercices, are you sure you want to delete it?"; Ya agregué la variable y sus traducciones a Chamilo en otro commit.