-
Thomas Fradet authoredThomas Fradet authored
- 08/01/2019
- Description des sections
- Barre de progression
- Pourcentage de progression dans les entêtes de section
- Suivi (enseignant)
- Tableau de suivi (enseignant)
- Page du cours (étudiant)
- 12/02/19
- Entête du cours
- Entêtes de section
- Tableau de suivi
- 23/05/2019
- à tester
- Bugs résolus
- Page principale du cours
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 18
- Page principale du cours sans achèvement activé dans le cours
- Page de suivi des étudiants
- 13
- 14
- 1
- 17
- Paramétrage d'une section (date, modalité, etc.)
- 15
- 16
- Améliorations
- Suivi des étudiants
- Message quand pas d'activité à suivre
- Cron
- Paramètres
- Notifications
- Page du cours
- Description du cours
08/01/2019
Description des sections
La description des sections s'affiche si elle est renseignée même lorsqu'elle ne contient pas de balise HTML <p>
.
La description des sections s'affiche en mode édition de la même manière qu'en mode lecture, y compris avec la possibilité d'afficher / masquer la suite.
Le lien pour afficher / masquer la suite est placé en dessous de la zone de description pour être plus visible et a des bords inférieurs arrondis pour ressembler à une petite "tirette".
Le texte du lien pour afficher / masquer la suite lorsqu'elle est dépliée est remplacé de "Réduire" à "Réduire la description" pour en augmenter la largeur et donc cliquer dessus plus facilement pour replier.
Barre de progression
La barre de progression de l'étudiant sur la page de cours affiche un pourcentage de progression globale correct et précis à une décimale.
Les ronds de couleur qui indiquent l'état d'achèvement des activité est modifiée pour prendre en compte les différents états d'achèvement possibles. Le orange n'est plus utilisé pour fonctionner avec les dates des sections. Etats et couleurs :
- Pas fait : vert clair.
- Fait (non noté) : vert foncé.
- Fait et réussi (noté) : vert foncé.
- Fait mais échoué (noté) : orange clair.
Toute la barre de progression ne base ses informations que sur les activités qui ont un suivi d'achèvement. L'ancien système de suivi à paramétrer en parallèle du suivi d'achèvement n'est plus utilisé.
La largeur des labels contenant le nom des sections est fixée à 300px afin que les ronds à droite soient toujours alignés (but esthétique). La largeur correspond à un nom de section de 5 mots environ.
Pourcentage de progression dans les entêtes de section
Le pourcentage de progression dans les entêtes de section est juste et ne peut pas afficher 99% quand tout est effectué. Il est calculé selon la même méthode que pour la barre de progression en haut de page.
Suivi (enseignant)
Tableau de suivi (enseignant)
A présent, toutes les activités sous suivi d'achèvement apparaissent dans le tableau et seulement celles-ci. La sélection des activités à suivre n'existe plus car elle était un doublon du suivi d'achèvement et avait une faible plus-value. Pour qu'une activité apparaisse il faut activer le suivi d'achèvement.
Les activités cachées mais disponibles s'affichent forcément dans la barre de progression tant qu'elles sont sous suivi d'achèvement. Sur le principe, toute activité pour laquelle on a jugé bon d'activer le suivi d'achèvement est bien censée apparaître dans les tableau de suivi de l'étudiant et de l'enseignant.
Le tableau est modifié en conséquence du changement de toutes les données et de leurs formes. Les informations présentes restent identiques.
Les intitulés de colonnes (nom des activités) sont placés en biais afin d'avoir plus de place pour afficher un grand nombre d'activité.
Le tableau peut défiler en largeur et en hauteur. Les entêtes sont toujours visibles à l'écran.
Le tableau permet de voir le nom d'une activité au survol de la souris d'une case.
Les cases sont colorées selon l'état d'achèvement selon les mêmes règles que pour le graphique de progression de l'étudiant sur la page du cours :
- Pas fait : vert clair.
- Fait (non noté) : vert foncé.
- Fait et réussi (noté) : vert foncé.
- Fait mais échoué (noté) : orange clair.
La performance est améliorée, notamment lors de l'affichage d'un seul groupe (au lieu de tous les étudiants).
La sélection d'étudiants en vue d'envoyer un message est préservée en utilisant le filtre de section et le filtre de pourcentage d'achèvement, mais pas le filtre de groupe, ce qui n'aurait pas d'intérêt en principe de toutes façon. On peut donc appliquez différents filtres de section et de % d'achèvement en sélectionnant au fur et à mesure plusieurs étudiants puis leur envoyer un message.
Le filtre sur le degré d'achèvement est plus précis. Il permet de sélectionner tous, = 100%, = 0%, < 25%, < 50%, < 100% et >= 50%, >= 25%, >= 0%.
Le téléchargement du tableau est amélioré avec un pourcentage à deux décimales, des décimales localisées (virgule en français pour une meilleure ouverture du CSV sur les outils Microsoft) et un score différent en fonction du type d'achèvement pour plus d'information :
- Pas fait : 0
- Fait (non noté) : 1
- Fait et réussi (noté) : 2
- Fait mais échoué (noté) : 0,5
Le tableau téléchargé contient les étudiants du groupe actuellement sélectionné et la section actuellement affichée. Il est possible de sélectionner tous les groupes et toutes les sections pour avoir un tableau complet. Ceci est indiqué via une aide sous le lien de téléchargement. Le filtre du pourcentage d'achèvement n'est pas appliqué.
Les paramètres de filtre sont conservé au rechargement de la page et au changement de groupe.
Page du cours (étudiant)
Le score global de l'étudiant dans sa barre de progression est plus précis et ne devrait plus afficher 99% au lieu de 100% quand tout est complet ou autres problèmes similaires, tant que le nombre d'activité est inférieur à 1000.
Le score détaillé de l'étudiant (barre de progression) est affiché plus large et aligné pour des raisons esthétiques et des bonne lecture des nombre de section.
Le score détaillé de l'étudiant (barre de progression) et le score présent dans l'entête de chaque section comporte plus de sécurités quant à la présentation de chiffres erronés. L'ajout, suppression et modification des paramètres d'achèvement d'activité avant ou après achèvement est prise en compte.
Le score présent dans l'entête de chaque section s'affiche dès que la section comporte des activités sous suivi d'achèvement, même si aucune n'est effectuée (score de 0%).
12/02/19
Entête du cours
Le style n'est plus inclus directement dans le PHP, mais placé dans le fichier styles.css global du plugin.
Entêtes de section
La taille des éléments de l'entête est modifiée pour qu'elle soit moins massive.
Modification du label d'accès au suivi des étudiants lorsqu'un groupe a été sélectionné pour harmonier avec aucune sélection (suivi et suivi étudiants au profit de suivi étudiants).
Tableau de suivi
Si aucune donnée n'est disponible dans le tableau, alors un message l'indique au lieu de présenter un tableau vide.
Sélectionner toute la liste ne sélectionne plus que les étudiants en effet affichés, au lieu de sélectionner également les étudiants qui n'y figurent pas à cause de l'application d'un filtre. Après avoir sélectionné tout, on ne peut pas changer de filtre et sélectionner tout pour le nouveau résultat du filtre appliqué, mais seulement désélectionner tout. Par exemple, il n'est pas possible de sélectionner tous < 25% puis tout > 75%.
Lors de l'envoi d'un message à certains étudiants sélectionnés, le nombre d'étudiants concernés est affiché dans le titre.
Lors de l'envoi d'un message à certains étudiants sélectionnés, si aucun destinataire n'a été sélectionné, un message l'indique et l'envoi est indisponible. Un bouton permet de revenir à la page précédente.
Correction du fait que le filtre affichait >=0 au lieu de >0.
23/05/2019
MAJ en 3.7
à tester
Bugs résolus
Page principale du cours
2
Sur la page d'accueil du cours.
Warning: include(../../lib.php): failed to open stream: No such file or directory in /Applications/MAMP/htdocs/moodle37/course/format/iena/entity/course_format_iena_cron_action.php on line 37
Warning: include(): Failed opening '../../lib.php' for inclusion (include_path='/Applications/MAMP/htdocs/moodle37/lib/pear:.:/Applications/MAMP/bin/php/php7.2.10/lib/php') in /Applications/MAMP/htdocs/moodle37/course/format/iena/entity/course_format_iena_cron_action.php on line 37
Warning: include(../../../../config.php): failed to open stream: No such file or directory in /Applications/MAMP/htdocs/moodle37/course/format/iena/entity/course_format_iena_cron_action.php on line 38
Warning: include(): Failed opening '../../../../config.php' for inclusion (include_path='/Applications/MAMP/htdocs/moodle37/lib/pear:.:/Applications/MAMP/bin/php/php7.2.10/lib/php') in /Applications/MAMP/htdocs/moodle37/course/format/iena/entity/course_format_iena_cron_action.php on line 38
Les fichiers ne sont plus inclus car ils le sont dans course/view.php qui devrait se charger d'inclure à son tout le reste.
[x] tester si les crons fonctionnent toujours et si oui, classer le bug.
3
Clef numsection manquante sur l'objet cours. Suppression de l'appel à cette clef car dans le format de cours topic ils utilisent 0 pour ne pas recréer de sections. Question : à quoi ça sert ?
Test : créé un nouveau cours avec cette modification : OK Test : changer le nombre de sections avec cette modification : OK
Avant : course_create_sections_if_missing($course, range(0,
[x] Solved.
4
Typo numsections au lieu de $numsections dans une condition dont l'intérieur n'était pas utilisé.
La condition elle-même est commentée et le $ est ajouté.
[x] Solved.
5
Notice: Undefined offset: 0 in /Applications/MAMP/htdocs/moodle37/course/format/iena/renderer.php on line 788
Avant :
[x] Solved.
ET
Notice: Undefined offset: 0 in /Applications/MAMP/htdocs/moodle37/course/format/iena/renderer.php on line 796
Avant :
[x] Solved.
6
Notice: Undefined property: stdClass::$showdefaultsectionname in /Applications/MAMP/htdocs/moodle37/course/format/iena/renderer.php on line 102
Commenté : sert à rien et la property n'existe pas. Pas présent dans le code de base du format topic.
[x] Solved.
7
Notice: Undefined property: stdClass::$sectionposition in /Applications/MAMP/htdocs/moodle37/course/format/iena/renderer.php on line 836
Property sectionposition non définie dans une condition qui de plus requiert isset d'une variable non instanciée (code commenté). Dans le test d'une condition pour echo justement cette variable non instanciée (=== NULL).
La condition et l'echo qu'elle contient sont commentés.
[x] Solved.
8
Notice: Undefined variable: completion_total in /Applications/MAMP/htdocs/moodle37/course/format/iena/view/view_course_header.php on line 13
Instantiation d'une propriété de la classe view_course_header d'après une variable n'existant pas en paramètre du constructeur. Cette propriété n'est plus utilisée (code commenté).
La création de la propriété devenue inutile est commentée.
[x] Solved.
9
Notice: Undefined variable: USER in /Applications/MAMP/htdocs/moodle37/course/format/iena/view/view_course_header.php on line 370
Ajout de la global $USER dans la méthode.
[x] Solved.
10
Notice: Undefined variable: view in /Applications/MAMP/htdocs/moodle37/course/format/iena/renderer.php on line 413
Instanciation de la variable $view = "";
[x] Solved.
11
Notice: Trying to get property 'presence' of non-object in /Applications/MAMP/htdocs/moodle37/course/format/iena/renderer.php on line 511
ET
Idem pour date_rendu juste en dessous.
Ajout d'une condition que la variable contenant l'objet ne soit pas === false dans le cas où aucun paramètre n'a été réglé pour la section (date, modalité, notifications). Sinon ce n'est pas un objet, mais false.
[x] Solved.
12
Notice: Undefined variable: date in /Applications/MAMP/htdocs/moodle37/course/format/iena/renderer.php on line 622
Après le correctif #11, une variable instanciée uniquement dans la condition où $param_section n'est pas false ne l'est plus quand il n'y a aucun paramétrage existant pour la section.
Ajout d'un else à la condition pour que $date soit toujours instancié.
[x] Solved.
18
Notice sur renderer.php $course->sectionposition la propriété n'existe pas.
Commentaire du code qui semble n'injecter qu'un span vide inutile avec une classe below qui n'existe pas dans le format de base Topic.
[x] Solved.
Page principale du cours sans achèvement activé dans le cours
Si l'achèvement d'activité n'est pas activé dans le cours.
Problème de variable nulle.
[x] Solved.
Page de suivi des étudiants
13
Notice: Undefined variable: where in /Applications/MAMP/htdocs/moodle37/course/format/iena/view/view_suivi_unit3.php on line 67
Warning: implode(): Invalid arguments passed in /Applications/MAMP/htdocs/moodle37/course/format/iena/view/view_suivi_unit3.php on line 67
Notice: Undefined variable: where_params in /Applications/MAMP/htdocs/moodle37/course/format/iena/view/view_suivi_unit3.php on line 68
Notice: Undefined variable: firstnamesort in /Applications/MAMP/htdocs/moodle37/course/format/iena/view/view_suivi_unit3.php on line 70
Notice: Undefined variable: csv in /Applications/MAMP/htdocs/moodle37/course/format/iena/view/view_suivi_unit3.php on line 71
Warning: Use of undefined constant COMPLETION_REPORT_PAGE - assumed 'COMPLETION_REPORT_PAGE' (this will throw an Error in a future version of PHP) in /Applications/MAMP/htdocs/moodle37/course/format/iena/view/view_suivi_unit3.php on line 71
Notice: Undefined variable: csv in /Applications/MAMP/htdocs/moodle37/course/format/iena/view/view_suivi_unit3.php on line 72
Notice: Undefined variable: start in /Applications/MAMP/htdocs/moodle37/course/format/iena/view/view_suivi_unit3.php on line 72 Non-numeric limitnum parameter detected: 'COMPLETION_REPORT_PAGE', did you pass the correct arguments? line 1050 of /lib/dml/moodle_database.php: call to debugging() line 1231 of /lib/dml/mysqli_native_moodle_database.php: call to moodle_database->normalise_limit_from_num() line 1200 of /lib/completionlib.php: call to mysqli_native_moodle_database->get_records_sql() line 1232 of /lib/completionlib.php: call to completion_info->get_tracked_users() line 73 of /course/format/iena/view/view_suivi_unit3.php: call to completion_info->get_progress_all() line 102 of /course/format/iena/suivi_unit.php: call to require_once()
Problèmes relatifs à la fonction copiée dans le suivi d'achèvement natif de MOODLE dont les paramètres sont ici inexistants.
Remplacement des variables non instanciées par des valeur qui sont celles par défaut dans la fonction appellée :
- $where = ''
- $where_params = array()
- $pagesize = '',
- $start = ''
Utilisation du classement 'u.lastname ASC, u.firstname ASC' au lieu d'utiliser une variable booléenne (non instanciée) pour choisir entre prénom/nom ou nom/prénom.
[x] Solved.
14
Notice: Undefined index: filter in /Applications/MAMP/htdocs/moodle37/course/format/iena/view/view_suivi_unit3.php on line 114
Modification de la prise en compte du paramètre get optionnel 'filter' pour 'all' si non isset et sinon la valeur du paramètre passé dans le but qu'il ne puisse jamais être NULL. La valeur est utilisée pour matcher la liste déroulante du filtre de % d'achèvement.
[x] Solved.
1
NaN dans le tableau d'achèvement quand pas d'activité dans la section (division par 0).
Le nombre d'activité est vérifié pour afficher 0 s'il n'y a pas d'activité.
[x] Solved.
17
Bug : L'envoi d'un message à plusieurs étudiants ne l'envoie qu'au premier le nombre de fois qu'il y avait d'étudiants sélectionnés.
Instanciation du message pour chaque utilisateur, sans quoi la propriété du userto n'est pas surécrite. Modification de la boucle : ok.
[x] Solved.
Paramétrage d'une section (date, modalité, etc.)
15
Notice: Trying to get property 'date_rendu' of non-object in /Applications/MAMP/htdocs/moodle37/course/format/iena/view/view_param_section.php on line 85
Et autres erreur du même genre.
Raison : pas d'enregistrement existant pour cette section, donc le formulaire est rempli sur la base d'un objet qui n'existe pas (===false).
Des conditions sont ajoutées pour tester la présence de paramètres existants et agit en conséquence pour préremplir ou non le formulaire.
Suppression de la partie inutilisée du formulaire qui était utilisée pour cacher la section avant une certaine date.
[x] Solved.
16
Erreurs diverses lors du post du formulaire d'enregistrement des paramètres d'une section.
Raison : index manquants dans le post lorsqu'ils ne sont pas définis dans le formulaire.
Le paramètre hide ayant été supprimé, la valeur false est attribuée dans l'enregistrement. Par la suite, il faudra le supprimer des données en base.
Les paramètres non définis sont testés avec un isset au lieu de ramener leur absence à false dans les conditions.
Variable courseid non définie remplacée par $COURSE->id plus sécurisée.
[x] Solved.
Améliorations
Suivi des étudiants
Message quand pas d'activité à suivre
[x] Lorsqu'une section ne contient pas d'activité suivies, afficher un message au lieu de la liste des étudiants avec aucune activité en colonne et 0% pour chaque. Il indique qu'aucune activité n'est suivie pour cette section. Le message indiquant qu'aucun étudiant n'est retourné par les filtres ne peut apparaître que s'il y a des activités suivies.
Cron
Paramètres
[x] Changement des jours de "*/1" à "*"
pour envoyer tous les jours.
Notifications
Les messages ayant évolués en chat ou notifications, le cron est modifié pour envoyer des notifications.
Cliquer sur le notification envoie directement vers la section du cours considérée.
Page du cours
Description du cours
Le lien pour afficher l'entête ne s'affiche plus s'il n'y a pas de description du cours. Les descriptions vides type <p><br></p>
que les WYSIWYG de MOODLE aiment bien faire ne s'affichent pas non plus.