DocScoDocPE/docs/Assiduites.md
2023-07-10 18:17:34 +02:00

12 KiB
Raw Blame History

Module "Assiduités"

Ce module de ScoDoc a pour but de remplacer le module d'Absences présent dans Scodoc. En plus de moderniser l'ancien module, le module assiduités met à disposition une api complète.

Ce projet a été développé en 2022-2023, par Matthias Hartmann, apprenti de l'IUT de Lannion financé par l'Association ScoDoc.

Vidéo de présentation du module d'assiduités

Fonctionnalités

Le module, intégrée à ScoDoc, fournit pour l'instant:

  • Gestion des absences/présences/retard
  • Précision des saisies (périodes déterminées par une heure de début et une heure de fin au lieu de demi-journées)
  • Gestion et sauvegarde de justificatifs numériques.
  • API complète

Guide d'utilisation

Migration de l'ancien module

Afin de favoriser la transition de l'ancien module au nouveau, un script de migration a été développé.

Script de Migration

Le script se nomme migrate-abs-to-assiduites et ne peut se lancer qu'en ligne de commande.

Par défaut, la migration s'opérera sur l'ensemble des départements en utilisant les préférences de ScoDoc.

Néanmoins le script possède 4 options pour modifier son comportement :

  • -d, --dept Permet de restreindre la migration à un département à l'aide de son acronyme. Utilisation : flask migrate-abs-to-assiduites -d <ACRONYME>
  • -m, --morning Permet de définir l'heure de début des cours. Utilisation : flask migrate-abs-to-assiduites -m <hh:mm> exemple : hh:mm -> 08:30
  • -n, --noon Permet de définir l'heure de fin du matin (= l'heure de début de l'après-midi). Utilisation : flask migrate-abs-to-assiduites -n <hh:mm> exemple : hh:mm -> 13:30
  • -e, --evening Permet de définir l'heure de fin des cours. Utilisation : flask migrate-abs-to-assiduites -e <hh:mm> exemple : hh:mm -> 18:30

Les options peuvent senchaîner : flask migrate-abs-to-assiduites -d TEST -m 10:30 -n 14:50 -e 19:45

Lors du lancement du script, une barre de progression apparaîtra. Celle si vous indique l'avancée de la transformation des absences en assiduités.

Une fois arrivée à 100%, Un processus de validation et de justification des assiduités se lancera. Celui-ci peut (suivant les configurations) prendre un certain temps. Veuillez ne pas le stopper en cours de route.

Lorsque la migration sera finie, un fichier log de la migration sera généré pour chaque département. Vous recevrez aussi des statistiques sur le nombre de justificatif et d'assiduités générés.

Script de Suppression

En cas de problème, ou si vous souhaitez purger la base de donnée, un script de suppression des assiduités et des justificatifs est disponible.

Le script se nomme downgrade-assiduites-module.

Si vous lancer le script sans aucune option, il ne se passera rien.

Voici les options :

  • -d, --dept Permet de restreindre la suppression à un département à l'aide de son acronyme. Utilisation : flask downgrade-assiduites-module -d <ACRONYME>
  • -a, --assiduites Provoque la suppression de toutes les assiduités Utilisation : flask downgrade-assiduites-module -a
  • -j, --justificatifs Provoque la suppression de tous les justificatifs Utilisation : flask downgrade-assiduites-module -j

Quelques exemples :

  • Pour tout supprimer : flask downgrade-assiduites-module -a -j
  • Pour supprimer un département : flask downgrade-assiduites-module -d DEPT -a -j
  • Pour supprimer l'assiduité d'un département : flask downgrade-assiduites-module -d DEPT -a
  • Pour supprimer les justificatifs d'un département : flask downgrade-assiduites-module -d DEPT -j

Personnalisation du module

Le module possède deux types de configuration, une générale et une par département/semestre.

La configuration générale permet de configurer la ligne temporelle visible sur certaines pages de saisie d'assiduités.

Configuration de l'assiduité : Général

Route : /ScoDoc/config_assiduites

  • Début de la journée : l'heure de début de la ligne temporelle (par défaut : 8h00)
  • L'heure de midi : l'heure pivot qui sépare la matinée de l'après-midi (par défaut : 13h00)
  • Fin de la journée : l'heure de fin de la ligne temporelle (par défaut : 18h00)
  • Granularité : La granularité de la ligne temporelle. (par défaut : 15 min)

La configuration par département/semestre permet de configurer certaines actions liés à l'assiduité

Configuration de l'assiduité : département

Route : /ScoDoc/<Dept>/Scolarite/edit_preferences

  • Forcer la déclaration du module : Forcer les utilisateurs de ScoDoc à renseigner le module à chaque saisie d'assiduités.
  • Forcer l'appel des présents : Force les utilisateurs à noter les présences/absences/retard lors d'une saisie.
  • Durée par défaut d'un créneau : Détermine la durée classique d'un cours. (Ce sera la période préenregistrée sur la ligne temporelle)
  • Définir l'état par défaut : Défini l'état par défaut qui sera appliqué aux étudiants avant validation d'une saisie d'assiduité.
  • Jours non travaillés : Défini les jours sur lesquels la saisie d'assiduités ne sera pas possible.
  • Métrique de l'assiduité : Défini l'unité de l'assiduité qui sera utilisé par les autres modules de ScoDoc.
    • 1/2 J. : Demi-Journée
    • J. : Journées
    • H. : Heures

Saisie des Assiduités

La saisie se fait soit sur un groupe soit sur un étudiant. Dans tous les cas il y a deux façons de saisir l'assiduité. Une saisie Journalière et une saisie Différée.

Saisie d'un groupe

Tout comme l'ancien module, pour saisir l'assiduité d'un groupe il faut se rendre sur la page un semestre du département concerné.

Page du semestre concerné

Au bas de cette page vous retrouverez la liste des groupes du semestre. Si vous avez la permission de modifier l'assiduité, vous observerez 3 boutons supplémentaires sur chaque groupe vous permettant de voir ou saisir l'assiduité du groupe.

Saisie Journalière

La première chose à faire lorsque vous êtes arrivés sur la page "Saisie Journalière" c'est de compléter les informations de la séance :

Capture des sélecteurs

  • Le ou les groupes sélectionnés (dans la plupart des cas, le groupe est déjà présélectionné)
  • Le module concerné (par défaut il n'est pas obligatoire de sélectionner un module, cependant une configuration permet de forcer la sélection)
  • La date de la saisie. Attention, seule les dates comprises dans le semestre sont valides. (Un message d'erreur vous le signalera si la date n'est pas valide)

Lorsque vous êtes sûr de vous, appuyer sur le bouton Valider. Attention : La validation est définitive, si vous avez fait une erreur il faudra recharger la page

Après la validation, les champs précédents seront grisés.

Explication de l'interface

Capture de l'interface

  1. La ligne temporelle (Timeline) sert à désigner la période de l'assiduité qui sera saisie.

    Il est possible de la déplacer en maintenant le clique gauche dessus puis en bougeant la souris.

    Si la période n'est pas de la bonne taille, il est possible de l'agrandir ou de la réduire en plaçant sa souris à l'extrémité droite.

    Votre curseur devrait changer, à partir de ce moment là vous pouvez cliquer puis bouger l'extrémité pour modifier la taille de la période.

    Si la période bouge toujours alors que vous avez lâché le clique gauche, cliquer à nouveau.

  2. Les boutons d'actions de masse Mettre tout le monde : . Ces boutons définirons le même état pour chaque étudiant sur la période sélectionnée.

    En cliquant sur un bouton d'état, l'état sera mis pour chaque étudiant, pour modifier cet état il faut appuyer sur un autre bouton d'état.

    Si vous souhaitez retirer les assiduités, il faut cliquer sur le bouton d'état ayant le même état que les étudiants.

  3. Les lignes étudiants sont des lignes montrant les informations d'assiduité de chaque étudiant. Chaque ligne est composée de 3 parties :

    1. Le nom, le prénom et une photo de l'étudiant afin de le reconnaître facilement

    2. Une petite ligne temporelle montrant l'assiduité de l'étudiant sur la journée.

      Le carré au début de la ligne montre la dernière assiduité du jour précédent.

      En passant votre souris au dessus des couleurs, vous aurez accès à plus d'informations sur l'assiduité de l'étudiant.

      Cliquer sur une assiduité positionnera la ligne temporelle globale sur la période de l'assiduité.

      La période globale est représentée par un encadré bleu sur la ligne temporelle.

      Les assiduités justifiées et validés sont représentés par leur couleur respective + un hachage bleu

      Les assiduités justifiées mais non validées sont représentés par leur couleur respective + un hachage rouge.

    3. Les boutons d'assiduités individuels. Ces boutons permettent de déterminer l'état de l'étudiant.

      Ils fonctionnent de la même façon que les boutons mettre tout le monde :.

      Si la ligne de l'étudiant est rouge, cela signifie que la période sélectionnée rentre en conflit avec les assiduités de l'étudiant. Cliquer sur une bouton d'assiduité ne modifiera pas l'état de l'étudiant mais ouvrira un menu de résolution de conflit.

      Résolution de conflit

Les assiduités de la page sont enregistrées en temps réel. Lorsque la saisie est terminée vous pouvez fermer la page.

Saisie différée

La page saisie différée à pour but de faciliter la saisie d'assiduités avec plusieurs périodes.

Page différée

La page est composée d'un tableau et d'un bouton valider. Cette page ne sauvegarde pas automatiquement les modifications

Explication du tableau :

  • La colonne Noms : Vous y retrouverez tous les étudiants du groupe sélectionné. En cliquant sur le titre de la colonne vous pourrez changer l'ordre des étudiants (croissant ou décroissant)

  • Les colonnes Assiduités : Lorsque vous arrivez sur la page, une seule colonne d'assiduité est présente.

    Si vous avez besoins d'autres colonnes, appuyer sur le bouton +.

    Si vous souhaitez supprimer une colonne appuyer sur la croix X de la colonne.

    Il vous faudra remplir la colonne afin de pouvoir saisir l'assiduité des étudiants :

    1. La date de début : Sur la première colonne, la date par défaut sera la date du jour, sur les nouvelles colonnes, la date par défaut sera la date de fin de la colonne précédente.
    2. La date de fin : La date de fin n'est pas renseignée par défaut, cependant la première fois que vous changer la date de début de la colonne, la date de fin sera automatiquement mise à jour de façon à prendre la taille d'un créneau classique (configuration du semestre/département).
    3. Le module concerné par l'assiduité. Ce sélecteur n'est pas obligatoire par défaut (configuration du semestre/département).
    4. Sélectionner une assiduité permet de mettre tous les étudiants à un certain état. Ce sélecteur n'est pas obligatoire.
  • Chaque ligne du tableau correspond à un étudiant. Vous pouvez alors sélectionner l'état de l'assiduité de chaque étudiant pour chaque colonne.

Après avoir rempli le tableau il faudra valider en cliquant sur valider les assiduités.

Après validation, toutes les colonnes seront désactivées, si besoins vous pouvez les réactiver en cliquant sur Activer pour chaque colonne.

Il est possible que des erreurs apparaissent. Les erreurs sont gérées par colonnes puis par étudiant. Cela signifie qu'une erreur de colonne (ex: une mauvaise date) désactivera complètement la colonne alors qu'une erreur d'étudiant (ex: l'étudiant possède déjà une assiduité sur cette période) désactivera uniquement l'envoie de l'assiduité le concernant.

Vous pouvez obtenir plus d'informations sur l'erreur en plaçant votre souris au dessus du .

Il est possible de forcer la mise à jour des assiduités : Attention, cela ne fonctionnera que pour les assiduités ayant exactement la même période (Cela a été mis en place pour facilement corriger les oubli de module)

Chaque colonne possède un numéro distinctif qui est visible en laissant la souris au dessus de l'entête de la colonne. Ce numéro est utilisé dans les messages d'erreurs.