CHANGELOG.md 16.5 KB
Newer Older
Thomas Fradet's avatar
folder    
Thomas Fradet committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# 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. 

Thomas Fradet's avatar
maj    
Thomas Fradet committed
92
93
94
95
96
97
98
99
100
101
102
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. 
Thomas Fradet's avatar
folder    
Thomas Fradet committed
103

Thomas Fradet's avatar
Thomas Fradet committed
104
105
Correction du fait que le filtre affichait >=0 au lieu de >0. 

Thomas Fradet's avatar
Thomas Fradet committed
106
107
108
109
# 23/05/2019

__MAJ en 3.7__

Thomas Fradet's avatar
Thomas Fradet committed
110
## __à tester__
Thomas Fradet's avatar
Thomas Fradet committed
111

Thomas Fradet's avatar
Thomas Fradet committed
112
### 2
Thomas Fradet's avatar
Thomas Fradet committed
113

Thomas Fradet's avatar
Thomas Fradet committed
114
Sur la page d'accueil du cours. 
Thomas Fradet's avatar
Thomas Fradet committed
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129

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. 

[ ] tester si les crons fonctionnent toujours et si oui, classer le bug. 

## __Bugs résolus__

Thomas Fradet's avatar
Thomas Fradet committed
130
131
132
### Page principale du cours

#### 3
Thomas Fradet's avatar
Thomas Fradet committed
133
134
135
136
137
138
139
140
141
142
143

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, $course->numsections));
Après : course_create_sections_if_missing($course, 0);

[x] Solved. 

Thomas Fradet's avatar
Thomas Fradet committed
144
#### 4
Thomas Fradet's avatar
Thomas Fradet committed
145
146
147
148
149
150
151

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. 

Thomas Fradet's avatar
Thomas Fradet committed
152
#### 5
Thomas Fradet's avatar
Thomas Fradet committed
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169

Notice: Undefined offset: 0 in /Applications/MAMP/htdocs/moodle37/course/format/iena/renderer.php on line 788

Avant : $nameSection[$section] .= $this->section_title_without_link($thissection, $course);
Après : $nameSection[$section] = $this->section_title_without_link($thissection, $course);

[x] Solved. 

ET 

Notice: Undefined offset: 0 in /Applications/MAMP/htdocs/moodle37/course/format/iena/renderer.php on line 796

Avant : $introSection[$section] .= $this->section_header($thissection, $course, false, 0, true);
Après : $introSection[$section] = $this->section_header($thissection, $course, false, 0, true);

[x] Solved. 

Thomas Fradet's avatar
Thomas Fradet committed
170
#### 6
Thomas Fradet's avatar
Thomas Fradet committed
171
172
173
174
175
176
177

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. 

Thomas Fradet's avatar
Thomas Fradet committed
178
#### 7
Thomas Fradet's avatar
Thomas Fradet committed
179

Thomas Fradet's avatar
Thomas Fradet committed
180
Notice: Undefined property: stdClass::$sectionposition in /Applications/MAMP/htdocs/moodle37/course/format/iena/renderer.php on line 836
Thomas Fradet's avatar
Thomas Fradet committed
181

Thomas Fradet's avatar
Thomas Fradet committed
182
183
184
185
186
187
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. 

Thomas Fradet's avatar
Thomas Fradet committed
188
#### 8
Thomas Fradet's avatar
Thomas Fradet committed
189
190
191
192
193
194
195
196
197

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. 

Thomas Fradet's avatar
Thomas Fradet committed
198
#### 9
Thomas Fradet's avatar
Thomas Fradet committed
199
200
201
202
203
204
205

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. 

Thomas Fradet's avatar
Thomas Fradet committed
206
#### 10
Thomas Fradet's avatar
Thomas Fradet committed
207
208
209
210
211
212
213

Notice: Undefined variable: view in /Applications/MAMP/htdocs/moodle37/course/format/iena/renderer.php on line 413

Instanciation de la variable $view = "";

[x] Solved. 

Thomas Fradet's avatar
Thomas Fradet committed
214
#### 11 
Thomas Fradet's avatar
Thomas Fradet committed
215
216
217
218
219
220
221
222
223
224
225

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. 

Thomas Fradet's avatar
Thomas Fradet committed
226
#### 12
Thomas Fradet's avatar
Thomas Fradet committed
227
228
229
230
231
232
233
234

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. 
Thomas Fradet's avatar
Thomas Fradet committed
235

Thomas Fradet's avatar
Thomas Fradet committed
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
### 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é. 

Thomas Fradet's avatar
Thomas Fradet committed
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
[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

Thomas Fradet's avatar
Thomas Fradet committed
309
310
311
312
313
314
315
316
317
318
319
320
321
322
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. 



Thomas Fradet's avatar
Thomas Fradet committed
323
324
325
326
327
328
329







Thomas Fradet's avatar
Thomas Fradet committed
330
331
332
333
334
335
336
337
## Améliorations

### Suivi des étudiants

#### Message quand pas d'activité à suivre

[ ] 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. 

Thomas Fradet's avatar
Thomas Fradet committed
338
339
340
### Cron

Changement des jours de `"*/1" à "*"` pour envoyer tous les jours. 
Thomas Fradet's avatar
Thomas Fradet committed
341
342