Commit 6f5cec2c authored by Thomas Fradet's avatar Thomas Fradet

use api for section update

parent 7d786514
# 17/07/2019
__Moodle 3.7.1__
Le paramètre "description de la section" ne s'actualisait pas lorsqu'il était réglé dans les paramètres de la section sans passer par le mode édition et les paramètres classiques.
# 23/05/2019
__MAJ en 3.7__
## Suivi des étudiants
### Tableau de suivi
Le téléchargement du tableau de suivi inclus les groupes même quand tout le tableau est téléchargé. Cette opération peut être longue (+ de 10 secondes), mais des mécanismes existent pour éviter que des responsables de groupes chargent la vue pour tous les groupes dans des cours volumineux (plusieurs centaines d'étudiants).
Le texte explicatif du tableau à téléchargé est amélioré pour expliquer la notation (0, 1, 0.5 et 2).
L'envoi de message à tous les étudiants sélectionné prend bien en compte le filtre et le groupe.
### 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. 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.
## Divers
Nettoyage du code.
Suppression de paramètres de cours inutiles.
---
# 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.
---
# 08/01/2019
## Description des sections
......@@ -79,70 +155,3 @@ Le score détaillé de l'étudiant (barre de progression) et le score présent d
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__
## Suivi des étudiants
### Tableau de suivi
Le téléchargement du tableau de suivi inclus les groupes même quand tout le tableau est téléchargé. Cette opération peut être longue (+ de 10 secondes), mais des mécanismes existent pour éviter que des responsables de groupes chargent la vue pour tous les groupes dans des cours volumineux (plusieurs centaines d'étudiants).
Le texte explicatif du tableau à téléchargé est amélioré pour expliquer la notation (0, 1, 0.5 et 2).
L'envoi de message à tous les étudiants sélectionné prend bien en compte le filtre et le groupe.
### 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. 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.
## Divers
Nettoyage du code.
Suppression de paramètres de cours inutiles.
......@@ -31,6 +31,7 @@
*/
define('NO_OUTPUT_BUFFERING', true);
require_once('../../../config.php');
require_once('../../lib.php');
global $COURSE, $DB, $USER;
......@@ -40,6 +41,9 @@
$PAGE->set_pagelayout('course');
$PAGE->set_url($url);
$course = $DB->get_record('course', array('id' => $courseID), '*', MUST_EXIST);
require_login($course, false, NULL);
if (!has_capability('moodle/course:update', $context = context_course::instance($courseID), $USER->id)) {
$link = $CFG->wwwroot . '/course/view.php?id=' . $courseID;
......@@ -50,7 +54,7 @@
if ($_POST) {
global $DB;
$dateChaine = $_POST["date_iena"]["year"] . "-" . $_POST["date_iena"]["month"] . "-" . $_POST["date_iena"]["day"] . " " .
$_POST["date_iena"]["hour"] . ":" . $_POST["date_iena"]["minute"] . ":00";
$_POST["date_iena"]["hour"] . ":" . $_POST["date_iena"]["minute"] . ":00";
$dateUp = date_create($dateChaine);
$data_iena = new stdClass();
if (isset($_POST['date_render'])) {
......@@ -77,7 +81,8 @@
}
$data_iena->nb_days_before = $_POST['nb_days_before'];
$data_iena->nb_days_after = $_POST['nb_days_after'];
// $data_iena->hide = $_POST['hide'];
/* Anciennement, servait à décider si la section était suivie dans les tableau de bord. Aujourd'hui, c'est le suivi d'achèvement d'activité qui est utilisé à la place. */
/* $data_iena->hide = $_POST['hide']; */
$data_iena->hide = false;
$testIfsection = $DB->get_record('format_iena', array('id_section' => $sectionId), '*');
......@@ -87,31 +92,34 @@
$data_iena->id = $testIfsection->id;
$DB->update_record('format_iena', $data_iena, false);
}
$data['id'] = $sectionId;
$data['timemodified'] = time();
$data['name'] = $_POST['name'];
$data['summary'] = $_POST['summary']['text'];
$DB->update_record('course_sections', $data);
rebuild_course_cache($COURSE->id, true);
$section = $DB->get_record('course_sections', array('id' => $sectionId), '*', MUST_EXIST);
$data = new stdClass();
$data->name = $_POST['name'];
$data->summary = $_POST['summary']['text'];
$data->summaryformat = $_POST['summary']['format'];
course_update_section($COURSE, $section, $data);
$link = $CFG->wwwroot . '/course/view.php?id=' . $courseID;
header("Location: {$link}");
exit;
}
$dataSection = $DB->get_record('format_iena', array('id_section' => $sectionId), '*');
$course = $DB->get_record('course', array('id' => $courseID), '*', MUST_EXIST);
require_login($course, false, NULL);
$PAGE->set_title($COURSE->fullname);
$PAGE->set_heading($COURSE->fullname);
echo $OUTPUT->header();
//$PAGE->requires->js("/course/format/Sprint3/js/jquery.min.js");
//$PAGE->requires->js("/course/format/iena/js/file.js");
//$PAGE->requires->js_call_amd("/course/format/Sprint3/js/jquery.dataTables.js", 'init');
require_once("$CFG->libdir/formslib.php");
require_once('view/view_param_section.php');
$view_param_section = new view_param_section();
echo $view_param_section->get_content($course, $dataSection);
echo $OUTPUT->footer();
\ No newline at end of file
} else {
$dataSection = $DB->get_record('format_iena', array('id_section' => $sectionId), '*');
$PAGE->set_title($COURSE->fullname);
$PAGE->set_heading($COURSE->fullname);
echo $OUTPUT->header();
//$PAGE->requires->js("/course/format/Sprint3/js/jquery.min.js");
//$PAGE->requires->js("/course/format/iena/js/file.js");
//$PAGE->requires->js_call_amd("/course/format/Sprint3/js/jquery.dataTables.js", 'init');
require_once("$CFG->libdir/formslib.php");
require_once('view/view_param_section.php');
$view_param_section = new view_param_section();
echo $view_param_section->get_content($course, $dataSection);
echo $OUTPUT->footer();
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment