"Cours" non visibles dans le bloc navigation en mode étudiant

Re: "Cours" non visibles dans le bloc navigation en mode étudiant

par Daniel Méthot,
Nombre de réponses : 9
Avatar Moodleurs particulièrement utiles

Bonjour,

Sachant que quand on réinitialise les tableaux de bord selon le nouveau modèle choisi, on détruit toute l'organisation personnelle de chacun des utilisateurs ?

C'est pourquoi je n'ai jamais osé le faire, sauf sur des plateformes en construction.

Daniel

En réponse à Daniel Méthot

Réinitialisation des tableaux de bord et perte des personnalisations des utilisateurs

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Bonjour,

Effectivement, on supprime les personnalisations des utilisateurs.

La question reste de savoir s'il y en a beaucoup qui ont personnalisé leur tableau de bord.

Si quelqu'un a une astuce ou une requête bien sentie pour obtenir cette information, ça m'intéresse.

Séverin
En réponse à Séverin Terrier

Re: Réinitialisation des tableaux de bord et perte des personnalisations des utilisateurs

par Christian Bocquet,
Avatar Moodleurs particulièrement utiles

Bonjour Séverin,

A tester :

 SELECT * FROM `mdl_my_pages` WHERE `private`=1 AND `userid`>1

userid > 1 pour ne pas obtenir l'administrateur créateur du site.

Christian


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

Re: Réinitialisation des tableaux de bord et perte des personnalisations des utilisateurs

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour Christian,

Merci pour cette requête (qui me retourne 8 résultats).

Et si on veut connaître les personnes concernées :

SELECT u.firstname, u.lastname
FROM `mdl_user` u
JOIN `mdl_my_pages` mp ON mp.userid=u.id
WHERE `mp.private`=1 AND `mp.userid`>1

Séverin

Moyenne des évaluations Utile (1)
En réponse à Séverin Terrier

Re: Réinitialisation des tableaux de bord et perte des personnalisations des utilisateurs

par Christian Bocquet,
Avatar Moodleurs particulièrement utiles

As-tu testé ? Suite à de nouveaux tests, je constate que dès qu'un utilisateur accède à son tableau de bord, il s'enregistre une nouvelle ligne (avec son userid) dans la table mdl_my_pages avec 'private' = 1 alors qu'il n'a fait aucune modification à son tableau de bord.

En réponse à Christian Bocquet

Re: Réinitialisation des tableaux de bord et perte des personnalisations des utilisateurs

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Non, je dois avouer ne pas avoir testé (car les résultats me semblaient cohérent, vu les noms qui apparaissaient : administrateurs et utilisateurs avancés).

De plus, j'avais lancé la requête sur une instance de test (ancienne copie de la production). En la lançant sur l'instance de production, je passe effectivement à 25773 lignes de résultats !
En réponse à Séverin Terrier

Re: Réinitialisation des tableaux de bord et perte des personnalisations des utilisateurs

par Bruno Malaval,
Avatar Moodleurs particulièrement utiles

Bonjour,

Même constatation de mon coté : en réinitialisant le tableau de bord d'un utilisateur,
Moodle recréé 2 entrées dans la table my_page , 1 publique, 1 privée

Après, la solution est peut-être dans le code du fichier <moodle>/my/lib.php

Il y a les fonctions qui permettent de réinitialiser les tableaux de bord.
Il y a dans les requêtes des liens avec le contextid de l'utilisateur, les instances de blocks, ...



    $page = my_get_page($userid, $private);
    if ($page->userid == $userid) {
        $context = context_user::instance($userid);
        if ($blocks = $DB->get_records('block_instances', array('parentcontextid' => $context->id,
                'pagetypepattern' => $pagetype))) {
            foreach ($blocks as $block) {
                if (is_null($block->subpagepattern) || $block->subpagepattern == $page->id) {
                    blocks_delete_instance($block);
                }
            }
        }
        $DB->delete_records('block_positions', ['subpage' => $page->id, 'pagetype' => $pagetype, 'contextid' => $context->id]);
        $DB->delete_records('my_pages', array('id' => $page->id));
    }

Donc cela reviendrai à chercher les instances de blocks présentes dans le contexte de l'utilisateur ... ?

Bruno

En réponse à Séverin Terrier

Re: Réinitialisation des tableaux de bord et perte des personnalisations des utilisateurs

par Christian Bocquet,
Avatar Moodleurs particulièrement utiles

Bonsoir Séverin,

Pourrais-tu tester la requête du fichier en annexe. Il suffit de remplacer le préfixe "mdl2b_" par celui que ta base de données utilise. La requête est l'UNION de deux requêtes:

- La première pour les utilisateurs qui auraient ajouté un bloc à leur tableau de bord (sur la base du moment où est créé le bloc initial "myoverview" dans le tableau de bord de l'utilisateur; si on préfère on peut remplacer "myoverview" par "private_files".)
- La deuxième pour les utilisateurs qui auraient supprimé un bloc.

L'UNION (l'intersection n'étant pas vide) devrait donner les utilisateurs ayant modifié leur tableau de bord par défaut. Si un utilisateur supprime un bloc puis remet le même, la requête considérera qu'il a modifié le tableau de bord par défaut. Ce n'est pas le cas s'il le réinitialise.
Cette requête ne tient pas compte de la position ou visibilité des blocs.

Christian

En réponse à Christian Bocquet

Re: Réinitialisation des tableaux de bord et perte des personnalisations des utilisateurs

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour Christian,

Merci pour cette tentative.

Mais j'ai 25,881 lignes de résultats, et je doute franchement qu'autant de personnes aient modifié leur tableau de bord pensif

Et si je ne prends que la première partie, elle ne renvoie aucun résultat.

Séverin

En réponse à Séverin Terrier

Re: Réinitialisation des tableaux de bord et perte des personnalisations des utilisateurs

par Christian Bocquet,
Avatar Moodleurs particulièrement utiles

Merci Séverin,

J'ai ajouté deux conditions dans la requête. Voir fichier en annexe. Le nombre de lignes devrait diminuer ...

As-tu ajouté un (ou plusieurs) blocs à ton tableau de bord personnel par rapport aux blocs définis dans le tableau de bord par défaut ? Si c'était le cas avec la requête en première partie, et d'après ce que je souhaite obtenir, au moins ton nom devrait figurer.

A quand remonte la dernière réinitialisation de tous les tableaux de bord des utilisateurs de votre plateforme ?

Christian