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, se puede 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 link externo.
La consulta es:
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 MAX(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 ASC 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.