Message aux utilisateurs jamais connectés ? (pb de filtre)

Message aux utilisateurs jamais connectés ? (pb de filtre)

par Patrick Viney,
Nombre de réponses : 2
Bonjour,

J'ai un enseignant qui souhaite envoyer un message ciblé aux étudiants qui ne se sont pas encore connectés à son cours. Pour cela :

- il est allé sur la liste des participants à son cours
- a cliqué sur "inactifs depuis..." 2 semaines

Résultat : le filtre n'a pas pris en compte les utilisateurs qui ne s'étaient pas encore connecté au cours (mention "jamais").

Est-ce un comportement voulu ou est-ce un bug ? Y a-t-il un moyen pour sélectionner facilement tous les étudiants "jamais" connectés sur la page participants d'un cours ?

Ci-joint, image reproduisant le problème soulevé par mon enseignant (Moodle 3.3) :


Annexe FiltreEnvoiMessageInactifs.png
Moyenne des évaluations  -
En réponse à Patrick Viney

Re: Message aux utilisateurs jamais connectés ? (pb de filtre)

par Christian Bocquet,
Avatar Moodleurs particulièrement utiles

Bonjour,

Je constate la même chose. A mon avis ce n'est pas un bug. Je pense que le filtre se fait à partir des données du dernier accès au cours qui se trouvent dans la table mdl_user_lastaccess. Or pour un inscrit à un cours qui ne s'est jamais connecté à ce cours, il n'y pas encore de ligne créée dans cette table et avec l'id de ce cours.

En l'absence de valeur, je pense, d'après la ligne que l'on trouve dans le fichier moodle/user/index.php , que c'est la valeur -1 qui est attribuée  :
$accesssince  = optional_param('accesssince', 0, PARAM_INT); // Filter by last access. -1 = never.

Pour que les inscrits jamais connectés soient retenus par le filtre, il faudrait peut-être modifier
le code de la fonction utilisée par le filtre qui se trouve à la fin du fichier moodle/user/index.php

/**
 * Returns SQL that can be used to limit a query to a period where the user last accessed a course..
 *
 * @param string $accesssince
 * @return string
 */
function get_course_lastaccess_sql($accesssince='') {
    if (empty($accesssince)) {
        return '';
    }
     if ($accesssince == -1) { // Never.
        return 'ul.timeaccess = 0';
    } else{
        return 'ul.timeaccess != 0 AND ul.timeaccess < '.$accesssince;
    }
}


Pour un enseignant, je ne vois pas de moyen pour sélectionner facilement tous les étudiants "jamais" connectés sur la page participants d'un cours.

Christian

Moyenne des évaluations Utile (1)
En réponse à Christian Bocquet

Re: Message aux utilisateurs jamais connectés ? (pb de filtre)

par Patrick Viney,

Merci pour cette réponse. Ok maintenant, je vois d'où ça vient, mais modifier cette fonction risque d'avoir des effets ailleurs sur le site, donc je pense que je ne vais pas m'y essayer. Merci pour l'info en tout cas.