Para contar el tiempo pasado por un usuario en un curso, disponemos del plugin Course dedication, que tiene un coste anual asociado.
Por otro lado, podemos extraer el tiempo que ha pasado un usuario en un curso sin necesidad de plugins, utilizando consultas directas sobre la base de datos de Open LMS, aunque hay que tener claro que este valor no es exacto, ya que, entre otras cosas, no se contaría el tiempo que el alumno pasa, por ejemplo, viendo un vídeo embebido o leyendo información en un enlace externo.
La consulta sería:
SELECT T.userid, CONCAT(u.firstname, ' ', u.lastname) AS fullname, FROM_UNIXTIME(MIN(T.timecreated)) AS initial, FROM_UNIXTIME(MAX(T.timecreated)) AS end, SUBSTRING(Sec_to_time(MAX(T.sumtime)), 1, 8) AS total FROM ( SELECT l.id, l.timecreated, l.userid, DATE_FORMAT(FROM_UNIXTIME(l.timecreated), '%d-%m-%Y') AS dTime, @prevtime := (SELECT timecreated FROM mdl_logstore_standard_log l2 WHERE l.userid = l2.userid AND l.courseid = l2.courseid AND l2.id < l.id ORDER BY l2.id DESC LIMIT 1) AS prev_time, IF (l.userid != @lastuser, @delta := 0, @lastuser) AS useract, l.timecreated - @prevtime AS diff, IF (l.timecreated - @prevtime < 7200, @delta := @delta + (l.timecreated - @prevtime ), @delta) AS sumtime, IF (l.userid != @lastuser, @lastuser := l.userid, @lastuser) AS useractual FROM mdl_logstore_standard_log AS l, (SELECT @delta := 0) AS s_init, (SELECT @lastuser := 0) AS s_lastuser WHERE 0 = 0 AND l.courseid = 2 ORDER BY l.userid ASC, l.id ASC ) T JOIN mdl_user u ON T.userid = u.id GROUP BY T.userid ORDER BY MAX(T.sumtime) DESC
Cuidando de colocar el ID del curso reemplazando el "2" en el punto señalado en negrita, cerca del final.
En este artículo te explicamos cómo utilizar el administrador de SQL para realizar consultas en Open LMS.
Comentarios
0 comentarios
Inicie sesión para dejar un comentario.