chamilo / chamilo-lms

Chamilo is a learning management system focused on ease of use and accessibility
https://chamilo.org
GNU General Public License v3.0
798 stars 480 forks source link

Sistema de suscripción a sesiones con posibilidad de extensión de duración por usuario #5638

Open juancpbinario opened 3 months ago

juancpbinario commented 3 months ago

Actualmente la sesiones se pueden configurar por una duración de días, según se inscribe un alumno en la sesión este podrá acceder desde la fecha de primer acceso hasta el máximo de días que tenga configurada como duración la sesión.

imagen

Esto se controla a través de la tabla "session" donde tenemos el campo "duration"

imagen

El problema que nos encontramos es que no es posible "extender" la duración de los usuarios, se tendría que quitar y volver agregar al alumno en la sesión, perdiendo el progreso, o hacer una trampa modificando los registros en la base de datos, pero esto sería algo que quedaría fuera del alcance de los tutores.

En un principio estábamos planteado extender la funcionalidad de las suscripciones actuales para poder extender el tiempo de sesión por usuario, pero nos encontramos en la tabla "session_rel_user" un campo con nombre "duration" que no se estaba usando

imagen

Revisando el código para verificar que no se estaba usando se ha encontrado código en desuso que apuntaba a que en el pasado existió esta funcionalidad, por ejemplo estas funciones para comprobar, concretamente

https://github.com/chamilo/chamilo-lms/blob/04c3e31cef55f168efa95a6ab1f1fd0763f9a89e/main/inc/lib/sessionmanager.lib.php#L7004-L7013

https://github.com/chamilo/chamilo-lms/blob/04c3e31cef55f168efa95a6ab1f1fd0763f9a89e/main/inc/lib/sessionmanager.lib.php#L7015-L7050

https://github.com/chamilo/chamilo-lms/blob/04c3e31cef55f168efa95a6ab1f1fd0763f9a89e/main/inc/lib/sessionmanager.lib.php#L7052-L7075

También se localiza que en el listado de usuarios en el resumen de sesiones hubo en algún momento una opción para modificar y permitir extender los días de acceso por usuario a través de main/session/session_user_edit.php

https://github.com/chamilo/chamilo-lms/blob/04c3e31cef55f168efa95a6ab1f1fd0763f9a89e/main/session/resume_session.php#L401-L408

Qué fue comentado en 2016: https://github.com/chamilo/chamilo-lms/commit/e0e55b708df6ea5023cc3159faba1ecbe41e53a7

La pregunta sería viendo que no se usa el campo "duration" de "session_rel_user" podriamos usarlo para volver implementar esta funcionalidad con los cambios necesarios?

ywarnier commented 3 months ago

Gracias por la referencia a BT#8317. Revisando este ticket internamente, veo que indica (hace 9 años ya) que la funcionalidad quedó implementada. Ninguna señal (ahí) de que no estuviera funcional o de que se quiera quitarla después. Sin embargo, había sido desarrollada para un cliente en específico y en esta época no teníamos el proceso de añadir una opción en configuration.dist.php con los cambios de DB necesarios, por lo que quizás se haya simplemente comentado por falta de uso después, no lo se.

Aquí está el commit que agregó el último bloque que mencionas (en resume_session.php) https://github.com/chamilo/chamilo-lms/commit/c0e4ee509be5fe3d90fd266cd98b338b78fa9757

El problema es que, en el comentario del cambio en e0e55b7, se especifica el ticket #8151, que este es (de manera obvia) un número erroneo (porque este ticket habla de visibilidad de tareas, no de duración de sesiones).

Sin embargo, en el commit anterior (a95c8b848) también se menciona 8151, pero igual no es ticket de Github ni de nuestro sistema, así que no se qué es...

En todo caso, por mi parte puedes volver a activar la funcionalidad. Ha sido pedida un par de veces ya y no veo porqué no tenerla activa en 1.11.28.

Esto sí : supongo que si se desactivó es que tenía algún defecto, así que habrá que probarlo bien.

juancpbinario commented 3 months ago

Perfecto, gracias!