Commit bd2352c0 authored by Thomas Fradet's avatar Thomas Fradet

folder

parent a2625c99
# 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.
This diff is collapsed.
# Format de cours iENA
Ce plugin est un format de cours pour MOODLE. Il change l'apparence d'une page de cours et y ajoute certaines fonctionnalités.
This plugin is a new course format for MOODLE. It change the course page interface and add some functionnalities : lisibility improvement, progression dashboard for student and teacher and blended learning support.
## Auteurs
- Vrignaud Camille <cvrignaud@softia.fr>
- Lebeau Michaël <mlebeau@softia.fr>
- Thomas Fradet <thomas.fradet@univ-lorraine.fr>
## Compatibility
MOODLE 3.5
## Contribution
Contributors are welcom ! Please contact <iena-contact@univ-lorraine.fr>.
## Contact
Pour assistance interne (Univesité de Lorraine) : <https://helpdesk.univ-lorraine.fr>.
Pour tout autre question : <iena-contact@univ-lorraine.fr>.
Other : <iena-contact@univ-lorraine.fr>.
## Activation et paramétrage
Rendez-vous dans les paramètres (généraux) du cours et sélectionnez ce format de cours provisoirement nommé "Format de cours hybride". Une fois sélectionné, vous pourrez ajuster les paramètres propres à ce format de cours.
## Fonctionnalités
### Présentation du cours
Le cours est présenté d'une manière plus structurée et claire permetant une meilleure lecture par l'étudiant.
La description du cours est visible sur la page de cours. La description des sections est pliable / dépliable pour permettre d'y placer une description longue et informative d'une séance de cours sans pour autant gêner l'affichage de la page.
### Suivi de progression
Requis : avoir activé le "suivi d'achèvement d'activité" de MOODLE dans les paramètres généraux du cours (et éventuellement dans l'administration).
Les ressources ou activité dont l'achèvement est paramétré (dans les paramètres de l'activité) apparaissent dans une barre de progression en haut de page pour l'étudiant. Des pourcentages de progression sont disponibles pour chaque section et des éléments colorés suivant l'état d'achèvement permettent de connaître son avancement dans le cours.
L'enseignant peut accéder à un tableau de suivi par section, par groupe. Le tableau est filtrable par pourcentage d'achèvement et téléchargeable. Codes couleurs dans l'interface et notation dans le tableau téléchargé :
- Non fait : vert clair (0)
- Fait (si activité non notée) : vert foncé (1)
- Fait (si activité notée) : vert foncé (2)
- Fait (essayé) mais échoué (si activité notée) : orange (0.5)
Le tableau de suivi permet de sélectionner des étudiants et de leur envoyer un message personnalisé selon leur progression dans le cours.
### Modalités d'enseignement
Un label présence / distance et une date peut être placé dans l'entête d'une section / séance de cours afin d'indiquer des changements de modalité d'enseignement dans des dispositifs hybride. Cette fonction est liée à un rappel automatique par mail.
### Contact enseignant
Un bouton "Enseignant" en haut à droite permet à l'étudiant d'avoir la liste des enseignants du cours et de les contacter facilement par messagerie interne. Par défaut, les messages interne de MOODLE reçus hors connexion sont transmis par mail.
<?php
/**
* Created by PhpStorm.
* User: softia
* Date: 15/03/18
* Time: 16:22
*/
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
*
* sync_task_iena_message lunch cron_message()
*
* @package format_iena
* @category format
* @copyright 2018 Softia/Université lorraine
* @author vrignaud camille
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace format_iena\task;
class sync_task_iena_message extends \core\task\scheduled_task
{
/**
* Get a descriptive name for this task (shown to admins).
*
* @return string
*/
public function get_name()
{
return "task_iena_message";
}
public function execute()
{
global $CFG;
require_once($CFG->dirroot . '/course/format/iena/entity/course_format_iena_cron_action.php');
$cron_test = new \course_format_iena_cron_action();
echo 'send message start';
$cron_test->cron_message();
echo 'send message stop';
}
}
\ No newline at end of file
.test {
color: red;
font-size: 2rem;
}
.left {
float:left;
}
.img_moodle_course {
max-width: 100%;
-webkit-border-radius: 50%;
-moz-border-radius: 50%;
border-radius: 50%;
display: block;
margin: -1px;
min-height: 64px;
min-width: 64px;
}
.padding_column {
padding: 2rem;
}
.align_center {
display: flex;
justify-content: center;
align-items: center;
}
.button {
box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2);
}
.img_center {
top: 1rem;
left: 1rem;
}
.img_moodle_list {
max-width: 100%;
-webkit-border-radius: 50%;
-moz-border-radius: 50%;
border-radius: 50%;
display: block;
margin: -1px;
height: 32px;
width: 32px;
}
.left_course_elements, .right_course_elements {
width: 33%;
float: left;
padding: 1%;
color: white;
text-align: center;
-webkit-box-shadow: 0 1px 3px 0 #d4d4d5, 0 0 0 1px #d4d4d5;
box-shadow: 0 1px 3px 0 #d4d4d5, 0 0 0 1px #d4d4d5;
}
.left_course_elements {
background: #2d2d2d;
}
.right_course_elements {
background: #009186;
}
.title {
font-size: 1.5rem;
color: white;
padding-bottom: 0.5rem
}
.middle_elements {
width: 11%;
float: left;
padding: 1%;
}
#outer-dropzone {
height: 140px;
}
#inner-dropzone {
height: 80px;
}
.dropzone {
background-color: #ccc;
border: dashed 4px transparent;
border-radius: 4px;
margin: 10px auto 30px;
padding: 10px;
width: 80%;
transition: background-color 0.3s;
}
.drop-active {
border-color: #aaa;
}
.drop-target {
background-color: #29e;
border-color: #fff;
border-style: solid;
}
.drag-drop {
display: inline-block;
min-width: 40px;
padding: 2em 0.5em;
color: #fff;
background-color: #29e;
border: solid 2px #fff;
-webkit-transform: translate(0px, 0px);
transform: translate(0px, 0px);
transition: background-color 0.3s;
}
.drag-drop.can-drop {
color: #000;
background-color: #4e4;
}
.textarea:not([rows]) {
max-height: 600px;
min-height: 120px;
}
.textarea {
display: block;
max-width: 99%;
min-width: 99%;
padding: 0.625em;
resize: vertical;
}
.input, .textarea {
-moz-appearance: none;
-webkit-appearance: none;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
border: 1px solid transparent;
border-top-color: transparent;
border-right-color: transparent;
border-bottom-color: transparent;
border-left-color: transparent;
border-radius: 3px;
-webkit-box-shadow: none;
box-shadow: none;
display: -webkit-inline-box;
display: -ms-inline-flexbox;
display: inline-flex;
font-size: 1rem;
height: 2.25em;
-webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start;
line-height: 1.5;
padding-bottom: calc(0.375em - 1px);
padding-left: calc(0.625em - 1px);
padding-right: calc(0.625em - 1px);
padding-top: calc(0.375em - 1px);
position: relative;
vertical-align: top;
background-color: white;
border-color: #dbdbdb;
color: #363636;
-webkit-box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
margin: 0.5rem;
width: auto;
max-width: 90%;
}
input[type='file'] {
margin-bottom: 1rem;
padding: 0rem;
background: none;
border: 0px;
box-shadow: none;
}
.subject-info-box-1,
.subject-info-box-2 {
float: left;
width: 100%;
}
.subject-info-box-1 select,
.subject-info-box-2 select {
height: 200px;
padding: 0;
}
.subject-info-box-1 select option,
.subject-info-box-2 select option {
padding: 4px 10px 4px 10px;
}
.subject-info-box-1 select option:hover,
.subject-info-box-2 select option:hover {
background: #EEEEEE;
}
.subject-info-arrows {
float: left;
width: 50%;
margin-left: 25%;
}
.subject-info-arrows input {
width: 70%;
margin-bottom: 5px;
}
.btn {
padding: 0.5rem;
}
.section {
padding-bottom: 1.5rem;
}
/* VIEW SINGLE ITEM */
.set_height {
min-height: 4rem;
line-height: 2rem;
}
.heading {
background: #2d2d2d;
padding: 0rem;
color: white;
float: left;
width: 100%
}
.percent {
background: #009186;
float: left;
padding: 1rem;
font-size:1.5rem;
}
.titre_section{
float: left;
padding-top: 1rem;
padding-left:1rem;
padding-right: 1rem;
font-size:1.5rem;
font-weight: bold;
}
.block_button {
padding-top: 1rem;
}
.nb_pers {
background: #d68d01;
float:left;
min-width: 4rem;
padding: 1rem 1rem 1rem 1.5rem;
font-size:1.5rem;
}
.right_info {
float: right;
}
.label_item {
color:white;
border:2px solid white;
-webkit-border-radius: 5px;
border-radius: 5px;
margin:0.8rem;
padding:0.05rem 0.3rem;
float: left;
font-weight: bold;
}
.description {
background: #EEE;
color:#323232;
padding: 1rem;
clear: both;
margin-bottom: 0,5rem;
}
.elements {
background: white;
padding: 1rem;
}
/* BUTTONS */
.btn_green , a.btn_green{
color:white!important;
background-color: #26a69a;-webkit-box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12); border:0px; border-radius: initial;
color:white!important; -webkit-appearance: none;
}
.btn_orange, a.btn_orange {
color:white!important;
background-color: #DB8F00;
border:0px;
-webkit-box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
border-radius: initial;
-webkit-appearance: none;
}
.btn_blue , a.btn_blue{
color:white!important;
background-color: #118CBE; border:0px; -webkit-box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
-webkit-appearance: none;
}
.btn-block-tide, a.btn-block-tide {
background-color: #26a69a;
border: 0px;
color:white!important;
box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
-webkit-appearance: none;
}
.btn_red , a.btn_red {
background-color: #e84b56;
border: 0px;
color:white!important;
box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
-webkit-appearance: none;
}
.btn_reset, a.btn_reset {
background-color:grey; border:0px; -webkit-appearance: none;
border: 0px;
color:white!important;
box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
-webkit-appearance: none;margin-left: 1%;
}
.cg_blck {
color:#393939;
}
#first_right {
float:right;margin-right: 2rem;
}
#second_right {
float: right;margin-right: 9%;
}
.full {
width: 100%;
display: flex;
padding: 1rem;
-webkit-box-shadow: 0 0 5px 0 #cfcfcf;
box-shadow: 0 0 5px 0 #cfcfcf;
}
.small {
height: 50px;
overflow:hidden;
}
.big {
height: auto;
}
\ No newline at end of file
/* Top header */
.iena-course-header-top {
margin-bottom: 1.6rem;
}
.iena-course-h-total,
.iena-course-h-attendance,
.iena-course-h-message .btn {
border-radius: 0.15rem;
}
.iena-course-h-group,
.iena-course-h-attendance,
.iena-course-h-message {
margin-bottom: 0.8rem;
}
.iena-course-h-attendance,
.iena-course-h-message,
.iena-course-h-group {
float: right;
margin-left: 0.5rem;
}
/* teacher message dropdown */
.iena-course-h-message .dropdown-menu {
max-height: 16.5rem;
overflow-y: scroll;
}
/* group select */
.iena-course-h-group label {
border-radius: 0.15rem 0 0 0.15rem;
}
.iena-course-h-group select {
border-radius: 0 0.15rem 0.15rem 0;
}
/* course total button */
.iena-course-h-total {
font-weight: 600;
color: #009085;
border-color: #009085;
}
.iena-course-h-total:hover {
border-color: #009085;
background-color: #009085;
}
.iena-course-h-total:active {
border-color: #009085 !important;
background-color: #10aa95 !important;
box-shadow: none !important;
}
.iena-course-h-total:focus {
border-color: #009085;
background-color: #10aa95;
color: #ffffff;
box-shadow: none;
}
/* Bottom header */
.iena-course-header-bottom {
margin-bottom: 1.6rem;
}
/* Toggler */
.iena-course-header-toggler {
text-align: center;
}
.iena-course-header-toggler hr {
border: 0.5px solid #999;
}