Implementación de Condicionales del CICEI

Re: Implementación de Condicionales del CICEI

de Borja Rubio Reyes -
Número de respuestas: 3
Hola Victor,

nosotros no tenemos ninguna documentación técnica, pero voy a ver si podemos preparar una en cuanto tengamos tiempo (ahora mismos estamos bastante liados). Y por supuesto que te ayudaremos o te guiaremos en lo que podamos...

De momento te puedo decir que los archivos que habría que tocar son 3 (aparte de los de idioma, que eso ya es trivial) por si quieres ir echándoles un vistazo:
  • moodle/course/conditional/conditionslib.php: en este archivo van funciones para la parte de definición y edición de condiciones. Hay que tener en cuenta que se hace por pasos (la secuencia de pantallas que te aparece cuando le das a crear nueva condición, luego a continuar, ... y así hasta darle a guardar condición son los distintos pasos) y hay una función para mostrar la pantalla de cada uno de los pasos. Y dentro de esas funciones debes añadir un case 'subcourse':, por ejemplo, al switch que aparece.
  • moodle/course/conditional/conditions.php: para mostrar las condiciones en la tabla de condiciones (aquí también hay que añadir un nuevo case al switch).
  • moodle/lib/conditional.php: funciones para evaluar los condicionales cuando un participante accede al curso y ver qué actividades le mostramos y cuáles no.
Cuando pueda miro también un poco el subcourse a ver si te puedo orientar mejor o darte ideas más concretas de lo que habría que tocar exactamente.

Saludos.

En respuesta a Borja Rubio Reyes

Re: Implementación de Condicionales del CICEI

de Victor Ruiz -
Muchas gracias por la información. Voy a empezar a hacer algunas pruebas para ver si consigo algo.

Cualquier cosa la comparto con ustedes.

Saludos.
En respuesta a Victor Ruiz

Re: Implementación de Condicionales del CICEI

de Victor Ruiz -
No cabe duda que cuando las cosas se hacen bien desde el comienzo cualquier cambio posterior es mas fácil.

Ya lo logre, ya pude integrar subcourse como actividad a condicionar y poder así simular de alguna forma un curso con prerequisitos.

Anexo los archivos modificados, por si a alguien le pudiera interesar. Lo desarrollé en base a la versión 1.1.2.4 de los archivos del cvs y lo probé en Moodle 1.9.7+. Quiero aclarar que aún no he realizado muchas pruebas así que considérese esto como una suerte de "vesión Beta".

Una vez mas felicitaciones por este parche y muchas gracias por su ayuda. Cualquier duda con respecto a los cambios que realice estoy a sus órdenes.

Saludos,
Víctor Ruiz

***************
Nota: Adicionalmente en el archivo adjunto se incluye un cambio que he realizado, debido a una necesidad de mi persona en particular, en la forma en la que el parche calcula la fecha de matriculación, . El cambio en cuestión es en el archivo moodle/lib/conditional.php dentro del case 'enrolment' donde sustituí la linea:

if ($userlogs = get_records_select('log', "userid= $userid and course= $course->id", 'time ASC', 'id,time', 0, 1)) {

Por la siguiente:

if ($userlogs = get_records_select('log', "userid= $userid and course= $course->id and action='enrol'", 'time DESC', 'id,time', 0, 1)) {

Originalmente la fecha de matriculación se calcula en base al primer registro del usuario en el log del curso, y yo lo cambie para que sea calculada en a partir del último registro de tipo "enrol" que tenga el usuario en el log del curso. Esto con el fin de permitir al sistema reconocer un proceso de desmatriculación - rematriculación de un alumno: Si una actividad es bloqueada debido a una condición relacionada con la fecha de alta y luego el alumno es dado de baja de un curso y reinscrito en el mismo, la actividad con el if original seguiría bloqueada, mientras que con el cambio que hice la actividad estaría desbloqueada pues se detecta que el usuario tiene una nueva fecha de alta.


En respuesta a Victor Ruiz

Re: Implementación de Condicionales del CICEI

de Borja Rubio Reyes -
Hola Víctor,

Genial!! Veo que al final lo conseguiste muy rápido sonrisa

La próxima semana lo pruebo y si no hay ningún problema y no tienes inconveniente lo añado al parche original. Y muchísimas gracias por compartirnos la modificación.

Saludos.