1
0
Fork 0

Compare commits

...

14 Commits

55 changed files with 1703 additions and 776 deletions

View File

@ -21,8 +21,9 @@ Il est recommandé de créer un virtualenv:
python3.11 -m venv venv
source venv/bin/activate
```
(n'importe quelle version de python récente fera l'affaire).
puis d'y installer les composants suivants:
Puis installer les composants suivants dans ce virtualenv:
```bash
pip install mkdocs
@ -31,8 +32,24 @@ pip install mkdocs-material
pip install mkdocs-plugin-inline-svg
```
## Génération de la doc
Pour générer le site:
```bash
mkdocs build
```
Pour lancer un serveur local permettant d'afficher la doc, avec rafraichissement
automatique dès qu'un fichier source est modifié:
```bash
mkdocs serve
```
Pour le reste voir la documentation de [MkDocs](https://www.mkdocs.org/).
## WIP
- reprendre la page BUT.md
-

View File

@ -1,9 +1,11 @@
# Module "Assiduités"
# Suivi de l'assiduité
Ce module de ScoDoc remplace l'ancien module de suivi des absences de Scodoc.
En plus de moderniser l'ancien module, le module assiduités met à disposition une API complète.
Il propose des fonctions plus étendues: absences, retards, justificatifs (et
gestion des documents associés) avec une granularité fine, des outils de
*reporting* et une API complète permettant d'interfacer des modules tiers.
Ce projet a été développé en 2022-2023, par Matthias Hartmann, apprenti de l'IUT de
Ce projet a été développé de 2022 à 2024, par Matthias Hartmann, apprenti de l'IUT de
Lannion financé par l'Association ScoDoc.
**Ce module est disponible à partir de ScoDoc version 9.6**.
@ -22,7 +24,7 @@ Le module fournit:
## Guide d'utilisation
- [Module "Assiduités"](#module-assiduités)
- [Suivi de l'assiduité](#suivi-de-lassiduité)
- [Fonctionnalités](#fonctionnalités)
- [Guide d'utilisation](#guide-dutilisation)
- [Migration de l'ancien module](#migration-de-lancien-module)
@ -182,7 +184,7 @@ Explication de l'interface
sélectionnée rentre en conflit avec les assiduités de l'étudiant.
Cliquer sur un 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

View File

@ -1,13 +1,14 @@
# Le Bachelor Universitaire de Technologie (BUT)
Formation en trois ans dispensées par les IUT français, introduite en 2021, et
basée sur une forme d'approche par compétences nécessitant un système
d'évaluation spécifique.
Le BUT est une formation en trois ans dispensées par les IUT français,
introduite en 2021, et basée sur une forme d'approche par compétences
nécessitant un système d'évaluation spécifique.
Cette page décrit les principaux éléments du BUT utiles à comprendre pour le
gérer avec ScoDoc. Vous trouverez ensuite un exemple de mise en place des
semestres d'un BUT ici: [Modélisation BUT: exemple de la spécialité
Informatique](BUTExempleInfo.md). Pour les curieux et les développeurs, la page
semestres d'un BUT ici:
[Modélisation BUT: exemple de la spécialité Informatique](BUTExempleInfo.md).
Pour les curieux et les développeurs, la page
[modélisation des parcours BUT](ModelisationParcoursBUT.md) donne quelques
détails sur la façon dont ScoDoc organise les objets du BUT.
@ -23,33 +24,35 @@ style="margin-top:0px; margin-bottom:0px; border-width:0px;"/></a>
en jury. Une UE est rattachée à une *formation*.
- Module: dans ScoDoc, un module désigne une dispositif pédagogique, évalué.
Dans les formations BUT, le module prend la forme d'une *ressource* ou d'une
SAE (*situation d'apprentissage et d'évaluation*). Un module est rattaché à
Dans les formations BUT, le module prend la forme d'une **ressource** ou d'une
**SAE** (*situation d'apprentissage et d'évaluation*). Un module est rattaché à
une (seule) UE.
Dans le BUT, un module est aussi associé à une ou ou plusieurs UE, cette
association étant affecté de *coefficients* (une valeur par UE associée).
association étant affectée de *coefficients* (une valeur par UE associée).
- Évaluation: dispositif produisant une note pour les étudiants inscrits à un
module. L'évaluation est associée à des coefficients.
## Structure des formations par compétences de type BUT
L'architecture d'une formation BUT est définie par les éléments suivants:
L'architecture d'une formation BUT est définie par un *référentiel de
compétence* définissant notamment les éléments suivants:
- Compétence
- Niveau
- Composantes essentielles ("En respectant les règles métiers...")
- Situations professionnelles ("Surveillance de la qualité de la
production...")
- **Compétence**
- Niveau
- Composantes essentielles ("En respectant les règles métiers...")
- Situations professionnelles ("Surveillance de la qualité de la
production...")
- Niveaux de compétence: associés à une année. Attention, le niveau 1 commence
parfois en deuxième année.
- Numéro (1, 2, 3)
- Titre
- Apprentissages critiques (AC): "Identifier les dysfonctionnements du réseau local..."
- **Niveaux de compétence**: la compétence est divisée en niveaux, associés à
une année de la formation. Le premier niveau 1 commence souvent en première
année (BUT1), mais parfois en deuxième année (BUT2). Le niveau est défini par
- Numéro (1, 2, 3)
- Titre
- Apprentissages critiques (AC): "Identifier les dysfonctionnements du réseau local..."
Chaque niveau se décompose en deux UE (aka "regroupement cohérent d'UE"), en
Chaque niveau de compétence sera associé à deux UE (aka "regroupement cohérent d'UEs"), en
semestres impair et pair d'une année scolaire.
La figure ci-dessous indique la correspondance entre compétences (découpées en
@ -67,12 +70,14 @@ nuls (pas de coefficients négatifs).
### Coefficients des SAÉ et ressources
Les coefficients des modules (ressources et SAÉ) sont fixés par le PN (*adapté
localement*).
Les coefficients des modules (ressources et SAÉ) sont fixés par le programme de
formation (basé sur des préconisations nationales *adaptées localement*). Le
programme spécifie la liste et les coefficients des modules, il est voté en
CFVU et ne doit donc pas être modifié en cours d'année.
Traditionnellement, chaque module $m$ est noté par une note (moyenne de ses
évaluations) représentée par le nombre $\mu_m$. Si $c_{u,m}$ désigne le coefficient du
module $m$ dans l'UE $u$, la moyenne d'UE de l'étudiant est
évaluations) représentée par le nombre $\mu_m$. Si $c_{u,m}$ désigne le
coefficient du module $m$ dans l'UE $u$, la moyenne d'UE de l'étudiant est
$$\mu_u = \frac{1}{\sum_m c_{u,m}} \, \sum_{m \in u} c_{u,m} \, \mu_m$$
@ -93,7 +98,7 @@ Un autre exemple, cette fois avec des coefficients différents et un nombre plus
réduit d'apprentissages critiques:
![but-ref-comp-ex-commente](fig/but-ref-comp-ex-commente.png)
### Note d'un module
### Poids des évaluations
La note (moyenne) d'un module (SAÉ ou ressource) se calcule à partir de ses
évaluations. Chaque évaluation est pondérée, par un poids $p$ est fixé par
@ -101,6 +106,11 @@ l'enseignant. Ce poids joue le même rôle que le coefficient d'une évaluation
classique, mais peut se décliner en plusieurs valeurs, une par UE associée au
module.
!!! warning "Attention"
En BUT, la moyenne d'un module n'est pas un nombre unique: il y a une
moyenne différente par UE liée à ce module.
Soit $n_e$ la note à l'évaluation $e$ du module $m$, et $p_{e, u}$ son poids
vers l'UE $u$. La somme des notes d'un module pour l'UE $u$ est:
@ -118,8 +128,8 @@ La moyenne d'un étudiant dans un module est un vecteur, car on a une note moyen
$$\mu_{m, u} = \frac{\sum_e p_{e,u} \, n_e}{\sum_{e} \, p_{u,e}}$$
Toutefois, une moyenne *scalaire* (un nombre entre 0 et 20) est calculée à
titre indicatif (et sera éventuellement utilisée dans certaines fonctions de
ScoDoc conçues avant le BUT):
titre indicatif (mais n'est pas présentée aux étudiants dans les bulletins pour
ne pas les induire en erreur):
$$\mu_m = \frac{\sum_e (\sum_u p_{e,u}) \, n_e}{\sum_{u,e} \, p_{u,e}}$$
@ -133,8 +143,10 @@ L'exemple suivant illustre ce mode de calcul:
<img src="/fig/but-exemple-calcul-notes.png" width="70%">
Par ailleurs, il est (parfois, peut-être) utile de calculer des moyennes par
pôles au sein de l'UE: pôle SAÉ, pôle ressource.
Dans ScoDoc, on va éditer les coefficients des modules sur cette page
<img src="/screens/but-info-edit-coefs-S4.png" width="40%">
(voir [l'exemple complet du paramétrage d'un BUT](BUTExempleInfo.md)).
### Validation d'une UE
@ -149,29 +161,38 @@ peuvent entrainer la validation d'UE a posteriori.
### Capitalisation
Les UE sont capitalisables, c'est à dire qu'un étudiant conserve les UEs
obtenues (avec moyenne > 10/20) s'il arrête temporairement ses études ou redouble un semestre.
Dans le BUT comme dans toutes les formations LMD, les UEs sont capitalisables,
c'est à dire qu'un étudiant conserve les UEs obtenues (avec moyenne > 10/20)
s'il arrête temporairement ses études ou redouble un semestre.
En cas de redoublement, l'étudiant qui choisi de répéter une UE capitalisée conserve le
résultat antérieur sauf s'il obtient une meilleure moyenne.
En cas de redoublement, l'étudiant qui choisi de répéter une UE capitalisée
conserve le résultat antérieur sauf s'il obtient une meilleure moyenne.
### Moyenne générale
### Moyenne générale indicative
La validation du BUT ne considère pas de "moyenne générale": chaque
regroupement d'UE est considéré indépendamment (aucunes compensations entre UE
relevant de compétences différentes).
La validation du BUT ne considère pas de "moyenne générale": chaque regroupement
d'UE est considéré indépendamment (aucune compensations entre UEs relevant de
compétences différentes).
Cependant, ScoDoc calculera une moyenne générale indicative, utile pour
Cependant, ScoDoc peut calculer une moyenne générale indicative, utile pour
certaines opérations (tri de tableaux, création de groupe de niveaux semblables,
avis de poursuite d'études, etc.).
Cette moyenne sera calculée en utilisant les ECTS de chaque UE du semestre
Cette moyenne indicative est calculée en utilisant les ECTS de chaque UE du semestre
considéré:
$$ g = \frac{1}{\sum_{u \in \cal S} \mbox{ects}_u} \sum_{u \in \cal S} \mbox{ects}_u \, \mu_u $$
Attention, les UEs sans notes sont ici considérées comme ayant une moyenne
nulle. En début d'année, la moyenne générale indicative sera donc souvent très basse.
nulle. En début d'année, la moyenne générale indicative sera donc souvent très
basse.
!!! note "Note"
Il est possible, dans chaque semestre, de désactiver le calcul de la moyenne
générale indicative si on ne souhaite pas en tenir compte.
<img src="/screens/but-option-moy-indicative.png" width="50%">
### Passage d'une année à l'autre
@ -183,9 +204,11 @@ Les conditions de passages vers l'année suivante sont:
2. Aucun regroupement cohérent dUE < 8.
3. Cas particulier du passage en BUT 3: nécessité davoir validé toutes les UE
du BUT 1.
Note: La validation des deux UE du niveau dune compétence emporte la validation de
lensemble des UE du niveau inférieur de cette même compétence.
lensemble des UEs du niveau inférieur de cette même compétence.
Voir la [page dédiée aux jurys BUT](BUTJurys.md).
### Redoublements
@ -221,33 +244,37 @@ bonus pourra donc être appliqué au niveau des moyennes UE: soit sur toutes
(bonus fixe ajouté à chaque UE), soit sur un sous-ensemble des UE du semestre.
Les règles précises du calcul de ce bonus sont malheureusement variables d'un
établissement à l'autre: ScoDoc 7 proposait plus d'une douzaine de variantes. La
situation sera identique avec le BUT et ScoDoc 9, et la mise en place d'une
fonction spécifique dans ScoDoc demandera un paramétrage particulier: voir [la
page sur les bonus et malus](BonusMalus.md).
établissement à l'autre: ScoDoc 9 propose actuellement (mars 2024)
quarante-trois (43, vous avez bien lu) modes de calculs différents. La mise en
place d'une fonction spécifique dans ScoDoc demande un paramétrage particulier:
voir [la page sur les bonus et malus](BonusMalus.md).
## Éditer ou importer une formation
## Éditer ou importer une formation et référentiels
ScoDoc permet d'importer des programmes de formations créés par d'autres
applications, comme Orébut, puis de les modifier pour introduire une *adaptation
locale*.
ScoDoc permet de créer et éditer un programme de formation, et d'exporter ou
importer des formations dans un format d'échange XML.
TODO: voir si on offre la possibilité de voir/gérer le delta entre le PN et le local.
Les référentiels de compétences des BUTs ont été copiés depuis Orébut (application
officielle de l'ADIUT).
## Modules et évaluations
Pour des informations générales, voir la page sur [les évaluations](Evaluation.md).
### Créer une évaluation
Pour fixer les poids des évaluations du module, on peut employer plusieurs méthodes:
Pour fixer les poids des évaluations du module, on va fixer un coefficient et
éventuellement moduler les poids vers les UEs:
- un nombre (poids de l'évaluation dans le module, sans préciser si cette
évaluation affecte plus un UE qu'une autre);
- cocher des apprentissages critiques (on rappelle que les AC sont associés à des niveaux de
compétences, donc à 2 UE consécutives);
- indiquer un poids par UE.
Par ailleurs, on peut cocher des apprentissages critiques (AC), associés à des
niveaux de compétences, afin de vérifier que l'ensemble des évaluations couvre
bien les critères préconisés dans le référentiel de compétences.
#### Coefficient et poids d'une évaluation
Afin de faciliter la tâche des enseignants, ScoDoc sépare le coefficient d'une
@ -267,14 +294,19 @@ $$p_{e, u} = w_e \, \frac{b_{e,u}}{\sum_u b_{e,u}}$$
- Si on décoche un AC, les poids sont mis à jour, au prorata du nombre d'AC
dans chaque UE (compétence).
Voir aussi la page sur [les évaluations](Evaluation.md).
## Tableau de bord module
Fonctions de base, en plus de celles déjà présentes en ScoDoc 7:
- Vérification de la conformité (tous les AC cochés dans le PN sont évalués)
Fonctions spécifiques au BUT:
- Poids de chaque évaluation dans chaque UE et conformité au programme de la formation
### Travaux en cours
- Vérification de la conformité (tous les AC cochés dans le PN sont évalués)
(pas encore disponible en 9.6.x).
En bas du tableau de bord du module on aura un tableau récapitulatif:
<img src="/fig/but-tableau-evals-module-ok.png" width="50%">
@ -284,43 +316,30 @@ des poids ou oubli d'une évaluation):
<img src="/fig/but-tableau-evals-module-ko.png" width="50%">
## Bulletins de notes
La quantité d'information à présenter rend la conception des bulletins de notes difficile.
La quantité d'information à présenter rend la conception des bulletins (relevés) de notes délicate.
### Modèle "Lillois"
Pour le BUT, on propose:
- un bulletin semestriel avec notes des ressources, des SAÉs et résultats aux
UEs. Ce bulletin peut être plus ou moins détaillé, versions "long",
"intermédiaire" ou "court".
- un bulletin résumé, en une page, donnant les principaux résultats du semestre
et l'avancement dans l'acquisition des compétences.
Proposition de l'IUT de Lille:
Ces documents sont disponibles aux formats web (html), PDF et json (API).
- en ligne, les ressources, puis les SAÉ;
- en colonnes, les UE;
- dans chaque case, le coefficient et la note obtenue;
- on peut ajouter les évaluations (lignes);
- on pourrait ajouter les infos habituelles en colonnes: min/max/moy/rangs/...
Avantage: toutes les informations importantes sont présentées.
Inconvénients (?): beaucoup de cases vides, peu synthétique, pas évident à
exploiter pour un non spécialiste du BUT (poursuites d'études, employeurs).
<img src="/fig/but-bul-lille.png" width="50%">
### Modèle "Bordelais"
Cette proposition a été reçue sous différentes formes de plusieurs collègues.
L'idée est de présenter le bulletin en deux parties: d'abord les résultats de
chaque ressource et SAE, puis les résultats de chaque UE.
Un exemple préliminaire:
<img src="/fig/but-bul-bdx.png" width="50%">
Voir quelques propositions, sources d'inspiration pour les formats proposés par
ScoDoc 9 [sur cette page](BUTBulletins.md)
## Tenue des Jury BUT
La tenue des jury BUT dans ScoDoc est en fait plus simple que celle des anciens DUTs, avec moins
de décisions ad-hoc (compensations plus simples, moins de cas de mise en
attente). Comme pour les formations LMD, il s'agit avant tout de constater ou
valider manuellement les Unités d'Enseignements (UEs) associées à des ECTS.
La tenue des jury BUT dans ScoDoc est en fait plus simple que celle des anciens
DUTs, avec moins de décisions ad-hoc (compensations plus simples, moins de cas
de mise en attente). Comme pour les formations LMD, il s'agit avant tout de
constater ou valider manuellement les Unités d'Enseignements (UEs) associées à
des ECTS.
Avant de tenir un jury de BUT il est absolument indispensable que la formation
et les semestre soient bien paramétrés. Voir [l'exemple complet du paramétrage
@ -365,6 +384,7 @@ A la fin, les validations enregistrées pour cet étudiant sont:
!!! note "Voir aussi"
- [Modélisation BUT: exemple de la spécialité Informatique](BUTExempleInfo.md)
- [Les codes de jury en BUT](BUTCodesJury.md)
- [Guide utilisateur](GuideUtilisateur.md)
- [Guide du responsable de formation](GuideAdminFormation.md)
- [Tutoriels vidéo](https://www.youtube.com/channel/UCb0JYCBRi0CsE4XFp4ByhXg)

35
docs/BUTBulletins.md Normal file
View File

@ -0,0 +1,35 @@
# Bulletins de notes pour le BUT
## Anciennes propositions
Exemples de propositions de formats de bulletins discutées au moment de la
création de ScoDoc 9.
### Modèle "Lillois"
Proposition de l'IUT de Lille:
- en ligne, les ressources, puis les SAÉ;
- en colonnes, les UE;
- dans chaque case, le coefficient et la note obtenue;
- on peut ajouter les évaluations (lignes);
- on pourrait ajouter les infos habituelles en colonnes: min/max/moy/rangs/...
Avantage: toutes les informations importantes sont présentées.
Inconvénients (?): beaucoup de cases vides, peu synthétique, pas évident à
exploiter pour un non spécialiste du BUT (poursuites d'études, employeurs).
<img src="/fig/but-bul-lille.png" width="50%">
### Modèle "Bordelais"
Cette proposition a été reçue sous différentes formes de plusieurs collègues.
L'idée est de présenter le bulletin en deux parties: d'abord les résultats de
chaque ressource et SAE, puis les résultats de chaque UE.
Un exemple préliminaire:
<img src="/fig/but-bul-bdx.png" width="50%">

View File

@ -29,19 +29,43 @@ ScoDoc prend en compte cela par différents mécanismes:
Chaque UE possède un code interne ScoDoc que l'on peut modifier via la page
d'édition des programmes:
<img src="/screens/ue-edit-code.png" width="70%"
<img src="/screens/ue-edit-code.png" width="70%"
alt="Modification du code interne d'une UE">
On peut utiliser un code quelconque, y compris celui donné dans un autre
logiciel comme Apogée. En bas de cette même page, ScoDoc affiche la liste des
UEs ayant le même code, afin de vérifier facilement la compatibilité:
<img src="/screens/ue-edit-code-equiv.png" width="70%"
<img src="/screens/ue-edit-code-equiv.png" width="70%"
alt="UEs partageant le même code">
Ne pas confondre ce code d'UE interne avec le code Apogée, qui n'est utilisé que pour
les exports de résultats.
## La moyenne d'UE capitalisée
La note (moyenne) de l'UE est enregistrée ("photo instantanée") au moment de la
saisie de la décision de jury la concernant (si cette décision est
"capitalisante"), afin d'être utilisée dans la suite de la scolarité de
l'étudiant (redoublement, ou construction de RCUE inter-annuels).
Attention, il faut veiller à ne jamais modifier les notes après décision du
jury, c'est une évidence qui n'est pas toujours respectée. En effet, outre le
fait que le jury serait alors sans valeur, si la moyenne d'une UE capitalisée
change après son enregistrement, on observera des discordances entre les valeurs
capitalisées (PV de jury, etc) et celles calculées et affichées sur les relevés
de notes.
ScoDoc essaye de décourager cela:
- verrouillage de semestres conseillé immédiatement après le jury;
- nombreux avertissements lors des tentatives de saisies de notes s'il existe
une décision de jury.
Au besoin, il est toujours possible, avec les droits adéquats, après
déverrouillage du semestre et avec en principe l'autorisation du président du
jury (...) de resaisir la décision, afin d'enregistrer la nouvelle moyenne.
## Exemple BUT avec UE capitalisée
Soit une formation BUT, ici R&T, avec 3 UE. Certaines ressources (comme R101) sont communes à
@ -77,3 +101,37 @@ tableau de bord module.
C'est dans cet exemple le cas pour la SAÉ `SAE11`.
<img src="/fig/but-uescap-inscrmodule.png" width="30%">
## Gestion des semestres à l'étranger
Certains étudiants suivent parfois des semestres à l'extérieur de leur
établissement d'origine.
Le jury a décidé d'une équivalence entre certaines UEs suivies à l'extérieur et
celles du la formation d'origine.
Il est important de reporter ces résultats dans ScoDoc afin que celui-ci puisse
tenir compte des UEs validés, de leurs ECTS, et en fin de cursus délivrer
correctement le diplôme.
Une façon simple de traiter ce cas et de le gérer comme les transferts
d'étudiants en cours de cursus: à l'inscription dans le semestre $S_{n+1}$, on
va enregistrer les validations d'UEs *antérieures* obtenues dans le semestre
$S_n$, que celui ci est été effectué à l'étranger (équivalence des UEs) ou dans
un autre établissement (transfert).
Note: il y aura alors un "trou" dans le cursus, par exemple $S_1, S_2, S_3, S_5$, si
$S_4$ est effectué à l'étranger.
Dans cet exemple, l'étudiant a suivi son semestre $S_4$ à l'extérieur: il
n'apparait pas sur sa fiche. Après inscription en S5, on valide ses UEs de S4.
<img src="/screens/validation-ues-anterieures-menu.png" width="70%"
alt="Menu validation UEs antérieures">
Lors de la saisie d'une validation d'UE antérieure, on indique son code jury (en
général `ADM` si il n'y a pas eu de problèmes), et la note obtenue (qui pourra
servir comme UE capitalisée ou sur les avis de poursuite d'études):
<img src="/screens/validation-ues-anterieures-saisie.png" width="70%"
alt="Formulaire validation UEs antérieures">

22
docs/BUTJurys.md Normal file
View File

@ -0,0 +1,22 @@
# Les jurys de BUT
!!! warning Travaux en cours
Cette page est en cours de rédaction.
Le Bachelor Universitaire de Technologie (BUT) institue des règles de
progression et de validation spécifiques dont ScoDoc tient compte.
## Décisions de jury en BUT
*décrire sur quoi portent les décisions (UE, )
Voir détail des codes [Codes de jurys BUT](BUTCodesJury.md).
!!! note "Voir aussi"
- [Récapitulatif des opérations en fin de semestre](TransitionSemestre.md)
- [Codes de jurys BUT](BUTCodesJury.md)
- [Calculs spécifiques en BUT](BUT.md)
- [FAQ](FAQ.md)
- [Contacts](Contact.md)

View File

@ -26,13 +26,13 @@ Plus de détails ci-dessous.
Chaque évaluation produit des notes de différents types:
* note numérique (positive ou nulle): sera normalisée entre 0 et 20
- note numérique (positive ou nulle): sera normalisée entre 0 et 20
* note absente: considérée comme zéro
- note absente: considérée comme zéro
* note en attente: non prise en compte
- note en attente: non prise en compte
* note excusée: non pris en compte
- note excusée: non pris en compte
Chaque étudiant a donc un nombre variable de notes à prendre en compte dans
chaque module. Chaque note est associée à un coefficient: le coefficient de
@ -104,35 +104,29 @@ générale n'est pas définie. Toutefois, ScoDoc calcule une *moyenne indicative
qui est la moyenne des moyennes des UE du semestre pondérée par leurs ECTS. Voir
détails [sur la page BUT](BUT.md#moyenne-generale)
## Notes de rattrapage
## Notes de rattrapage, deuxième session et bonus
Dans chaque module, il est possible de définir une évaluation de "rattrapage".
Lors de la création (ou modification) de l'évaluation, indiquer le type
"Rattrapage":
![CreateEvaluationRat.png](screens/CreateEvaluationRat.png)
Pour chaque étudiant, la note obtenue à l'évaluation de rattrapage remplace la
moyenne du module, seulement si elle est supérieure à celle-ci.
Voir la section [modalité d'une évaluation](Evaluation.md#bloquage-et-date-de-prise-en-compte).
## Bonus sport/culture
Ce bonus s'applique directement sur la **moyenne générale** et/ou sur les
moyennes d'UE (notamment en BUT).
Les notes des UEs de type spécial "Sport & Culture" sont utilisées pour calculer ce bonus.
Les notes des UEs de type spécial "Sport & Culture" sont utilisées pour calculer
ce bonus.
Pour qu'un étudiant bénéficie de ce bonus, il doit être inscrit à un module
d'une UE de type "Sport&Culture". Cette UE et modules associés doivent donc être
prévu dans le programme pédagogique.
La règle appliquée dépend de l'établissement. Par exemple, l'Université de
Haute Alsace appliquait le règlement suivant: *Les étudiants de l'IUT peuvent
suivre des enseignements optionnels de l'U.H.A. (sports, musique, deuxième
langue, culture, etc) non rattachés à une unité d'enseignement. Les points
au-dessus de 10 sur 20 obtenus dans chacune des matières optionnelles sont
cumulés dans la limite de 10 points. 5% de ces points cumulés s'ajoutent à la
moyenne générale du semestre déjà obtenue par l'étudiant.*
La règle appliquée dépend de l'établissement. Par exemple, l'Université de Haute
Alsace appliquait le règlement suivant: *Les étudiants de l'IUT peuvent suivre
des enseignements optionnels de l'U.H.A. (sports, musique, deuxième langue,
culture, etc) non rattachés à une unité d'enseignement. Les points au-dessus de
10 sur 20 obtenus dans chacune des matières optionnelles sont cumulés dans la
limite de 10 points. 5% de ces points cumulés s'ajoutent à la moyenne générale
du semestre déjà obtenue par l'étudiant.*
L'administrateur peut changer la fonction de calcul du bonus sport via le
formulaire de configuration accessible (aux admin) depuis la page d'accueil. Si
@ -160,7 +154,7 @@ Pour valider une RCUE, on vérifie que moy_rcue > sco_codes.BUT_RCUE_SUFFISANT
où est défini comme BUT_RCUE_SUFFISANT = 8.0 - NOTES_TOLERANCE.
avec
avec
NOTES_TOLERANCE = 0.00499999999999
```
@ -180,6 +174,7 @@ n'a pas toute la précision.
!!! note "Voir aussi"
- [Guide utilisateur](GuideUtilisateur.md)
- [Les évaluations](Evaluation.md)
- [Calculs spécifiques en BUT](BUT.md)
- [FAQ](FAQ.md)
- [Contacts](Contact.md)

View File

@ -1,6 +1,7 @@
# Capitalisation des UEs de DUT
Brève note expliquant le système de capitalisation de UE dans le cadre des DUT.
Pour le Bachelor (BUT), voir [Capitalisation des Unités d'Enseignement en
BUT](BUTCapitalisationUE.md).

100
docs/Evaluation.md Normal file
View File

@ -0,0 +1,100 @@
# Les évaluations
On appelle dans ScoDoc "évaluation" toute action pédagogique produisant une
note. Les notes sont des nombres positifs ou nuls (exceptés les "notes" de malus
qui peuvent être négatives).
## Définition d'une évaluation
- **Description**: texte libre, qui sera affiché sur certains bulletins.
- **Barème**: note maximale $M$. Les valeurs seront saisies dans l'intervalle $[0, M]$.
Les notes affichées sont toujours ramenées sur 20.
- **Date, heures de début et fin** de la réalisation de l'évaluation. Si les
étudiants ne sont pas tous évalués en même temps (exemple: note de TP de
différents groupes), on peut ne pas indiquer de date (la possibilité de
définir plusieurs dates est à l'étude pour une version future).
- **Visible sur bulletins**: indique si l'évaluation et la note de l'étudiant doit
être affichée sur les bulletins au format dit "intermédiaire" (ni cours, ni
long). C'est le format utilisé par la passerelle. La note reste prise en
compte dans les moyennes même si l'évaluation n'est pas affichée.
- **Prise en compte immédiate**: si coché, les notes saisies dans l'évaluation
seront prises en compte dans le calcul des moyennes avant même que les notes
de tous les étudiants ne soit saisies.
### Pourquoi éviter d'utiliser "prise en compte immédiate" ?
Il est tentant de positionner toutes les évaluations en "*prise en compte
immédiate*", parce que cela permet de communiquer leurs résultats aux étudiants
sans attendre. Ce n'est pourtant pas une bonne idée, car:
- cela complique l'harmonisation: si on a plusieurs correcteurs, et que le second
se rend compte d'une erreur de barème, il sera trop tard pour corriger sans
informer les étudiants;
- cela augmente le risque d'oubli ou de négligence (tout devrait être fait pour
que les collègues corrigent et saisissent leurs notes rapidement);
- en note manquante dans une évaluation "immédiate" est considérée comme "en
attente": cela bloque la tenue du jury pour ces étudiants.
Ce réglage peut-être être contre-productif, voire nuisible si les notes sont
montrées aux étudiants avant qu'elles soient définitives: il devrait rester
réservé à des cas particuliers.
## Coefficient et poids
Le coefficient est utilisé pour pondérer les notes de l'évaluation afin de
calculer la moyenne au module.En BUT, les poids modulent l'importance de
l'évaluation dans chaque UE. Voir la page [calcul des notes](CalculNotes.md).
## État d'une évaluation
Une évaluation dans laquelle tous les étudiants inscrits au module ont une note
est dite *complète*. Elle est alors prise en compte dans le calcul des moyennes
et publiée sur les bulletins (selon les formats et réglages).
Si toutes les notes ne sont pas saisies, l'évaluation est dite *incomplète*, et
n'est pas prise en compte *sauf* si l'option "Prise en compte immédiate" est
activée.
Si toutes les notes sont saisies, mais certaines sont "en attente" (`ATT`),
l'évaluation est dite *en attente*. Elle est prise en compte.
## Modalité d'une évaluation
- **Normale**: produit une note utilisée dans le calcul des moyennes du module.
- **Rattrapage**: la note d'une évaluation de "rattrapage" remplacera la moyenne
du module de l'étudiant *si et seulement si elle est meilleures que celles
calculées*.
- **Deuxième session**: la note remplace, lorsqu'elle est saisie, la moyenne de
l'étudiant à ce module, même si sa note de deuxième session est plus faible
que sa moyenne normale.
- **Bonus**: la valeur est ajoutée à la moyenne du module, voir détail ci-dessous.
### Évaluations de "bonus"
Les évaluations bonus sont particulières:
- la valeur est ajoutée à la moyenne du module;
- le bonus peut être négatif (malus);
- le bonus ne s'applique pas aux notes de rattrapage et deuxième session;
- le coefficient est ignoré, mais en BUT le bonus vers une UE est multiplié par le poids correspondant (par défaut égal à 1);
- les notes de bonus sont prises en compte même si incomplètes.
## Bloquage et date de prise en compte
Ceci permet d'empêcher la prise en compte (et éventuellement la publication) de
l'évaluation, même si ses notes sont complètes, ou bien de la différer jusqu'à
la date indiquée. Cette fonctionnalité peut être utilisée
- temporairement pour ne pas communiquer trop tôt un résultat aux étudiants (on
peut alors programmer la date de déblocage);
- définitivement parce qu'on décide de ne pas tenir compte d'une évaluation,
mais de garder ses résultats saisis.
!!! note "Voir aussi"
- [Les principaux objets de ScoDoc](IntroObjetsScoDoc.md)
- [Calcul des notes](CalculNotes.md)
- [Les évaluations et le BUT](BUT.md#creer-une-evaluation)
- [FAQ](FAQ.md)
- [Contacts](Contact.md)

View File

@ -1,8 +1,8 @@
# Gestion des jurys DUT
# Gestion des jurys DUT
La gestion des jury DUT s'est inspirée des travaux de J.F. Mazoin, de l'ADIUT (et en particulier du document présenté le 30 mai 2006).
Nous utiliserons les codes suivant pour représenter les décisions de jury:
@ -10,7 +10,7 @@ Nous utiliserons les codes suivant pour représenter les décisions de jury:
Code | &nbsp;
-----|-----
ADM | semestre validé automatiquement
ADM | semestre validé automatiquement
ADC | semestre validé par compensation avec un autre
ADJ | semestre validé par le jury
ATT | pas la moyenne, barres UE ok: décision en attente du semestre suivant
@ -38,9 +38,9 @@ Nous utiliserons les codes suivant pour représenter les décisions de jury:
- assiduité satisfaisante.
(Chaque semestre ne pouvant n'en compenser qu'un seul autre, nous sommes conscients que cette règle
conduit à désavantager certains étudiants qui compensent, alors que le jury décide de valider le
semestre à des étudiants plus faibles qui ne peuvent pas compenser et conserve donc cette possibilité
(Chaque semestre ne pouvant n'en compenser qu'un seul autre, nous sommes conscients que cette règle
conduit à désavantager certains étudiants qui compensent, alors que le jury décide de valider le
semestre à des étudiants plus faibles qui ne peuvent pas compenser et conserve donc cette possibilité
pour la suite de leur parcours...).
* **Codes d'état d'UE:**
@ -51,17 +51,17 @@ ADM | UE validée automatiquement (moyenne UE >= 10) |
CMP | UE validée (moyenne UE < 10, mais semestre validé) |
AJ | UE ajournée (échec) |
Notons que le jury n'intervient pas sur les décisions d'UE: elles sont toujours prises
*automatiquement* en fonction des notes (et enregistrées par ScoDoc lorsqu'on entre une
Notons que le jury n'intervient pas sur les décisions d'UE: elles sont toujours prises
*automatiquement* en fonction des notes (et enregistrées par ScoDoc lorsqu'on entre une
décision de semestre).
* **Codes devenir:** (*internes à ScoDoc, donnés ici pour information*)
Code | &nbsp;
-----|-----
NEXT | passe au semestre suivant dans le cursus
REO | réorienté (dans une autre filière, “exclus”)
REDOANNEE | redouble annee (eg passe de S2 à S1)
NEXT | passe au semestre suivant dans le cursus
REO | réorienté (dans une autre filière, “exclus”)
REDOANNEE | redouble annee (eg passe de S2 à S1)
REDOSEM | redouble semestre (eg passe de S1 à S1 "décalé")
@ -81,23 +81,23 @@ Le jury conduit à prendre les décisions suivantes:
- décider du devenir de l'étudiant (passage, redoublement, réorientation) (“Devenir”).
## Compensation des semestres
## Compensation des semestres
Voir la page [CompensationSemestre](CompensationSemestre.md)
## Capitalisation des UEs
## Capitalisation des UE
Voir la [ note sur la capitalisation des UE](CapitalisationUE)
Voir la [note sur la capitalisation des UE](CapitalisationUE.md)
## Gestion des cas particuliers
## Gestion des cas particuliers
Parcours du type: S1 (ADM), S2 (AJ), S3 (AJ), S3D (ATT), S2D
Il faut tenir le jury de S2D, puis revenir sur le jury de S3D qui va, si S2D est validé, recevoir le code ADM et autoriser le passage en S4.
Il faut tenir le jury de S2D, puis revenir sur le jury de S3D qui va, si S2D est
validé, recevoir le code ADM et autoriser le passage en S4.
## Document de préparation du jury
## Document de préparation du jury
Il s'agit d'une simple feuille Excel récapitulant les informations
essentielles pour tenir un jury:
identité, parcours, moyennes et décisions des 2 derniers semestres.
@ -107,19 +107,19 @@ des cas rares (étudiants ayant effectué le début de leur scolarité ailleurs,
etc).
## Procès verbaux de jury
### PV de jury: récapitulatif complet des décisions de jury
## Procès verbaux de jury
### PV de jury: récapitulatif complet des décisions de jury
Document signé par le directeur de l'IUT récapitullant l'ensemble des décisions
pour un semestre de formation.
Il s'agit d'un document PDF en format paysage, à imprimer sur
papier ordinaire A4.
Les logos (IUT en haut, université en pied de page) sont
Les logos (IUT en haut, université en pied de page) sont
paramétrables par l'utilisateur: voir [configuration des logos](GestionLogos.md).
### Lettres d'avis individuelles
### Lettres d'avis individuelles
Courriers (papier) adressés aux étudiants pour les informer
des décisions du jury.
@ -134,4 +134,4 @@ préalable celle d'Apogée).
On peut spécifier une image de la signature du responsable de formation pour
lui éviter de fastidieuses séances de paraphage.

153
docs/IntroObjetsScoDoc.md Normal file
View File

@ -0,0 +1,153 @@
# Les principaux objets de ScoDoc
Nous introduisons ici les principaux objets manipulés par ScoDoc.
## Départements
Un serveur ScoDoc peut gérer un nombre quelconque de départements. Les
départements sont entièrement séparés, à l'exception des comptes utilisateurs
(un secrétaire ou une enseignante peuvent intervenir dans plusieurs
départements). Les étudiants et les formations sont rattachés à un et un seul
département.
Lorsqu'un utilisateur se connecte, il voit en bleu les liens vers les
départements dans lesquels il a le droit d'aller.
![sco-accueil-0223.png](screens/sco-accueil-0223.png)
## Semestre
Un *semestre* représente une session d'un dispositif de formation. La plupart des
formations LMD sont structurées en années scolaires de deux semestres. Dans
ScoDoc, un "semestre" peut avoir une durée quelconque, il peut aussi bien s'agir
une action de formation continue d'une semaine que d'une formation sur un an.
Saisie des dates de début et fin d'un semestre:
![sco-dates-semestre.png](screens/sco-dates-semestre.png)
Les semestre a un ou plusieurs (co)responsables, utilisateurs ayant des droits
particuliers, dont ceux de modifier la liste des modules d'enseignement à
suivre, de nommer les enseignants, etc. Les responsables de semestres sont
souvent appelés *directeurs ou directrices des études*.
Un semestre a un ensemble d'étudiants inscrits.
Le tableau de bord du semestre indique notamment la liste des modules qui y sont
proposés:
![sco-formsemestre-status.png](screens/sco-formsemestre-status.png)
## Formations (programmes pédagogiques)
Un semestre utilise une *formation* (programme pédagogique) qui définit les
unités d'enseignement (UE), modules, coefficients, crédits académiques, etc.
Pour en savoir plus, voir [programmes pédagogiques et versions](Formations.md).
Exemple: une formation de *Bachelor Universitaire de Technologie* (BUT):
![sco-formation-but.png](screens/sco-formation-but.png)
## Modules
Un *module* représente un dispositif pédagogique, typiquement un ensemble de
cours, travaux dirigés, travaux pratiques, mais il peut aussi s'agir d'un
projet, d'un stage, ou de tout ensemble d'activités.
Un module a un enseignant responsable (typiquement le chargé de cours) et des
des enseignants associés (typiquement les chargés de TD).
Un sous-ensemble des étudiants inscrits au semestre peut être inscrit au module.
En BUT, les modules représentent les *ressources* et les SAÉs.
Le tableau de bord d'un module permet d'y inscrire les étudiants, modifier les
enseignants, créer des évaluations et y saisir des notes.
Exemple: une ressource de BUT
![sco-modimpl-status.png](screens/sco-modimpl-status.png)
## Évaluations
Une *évaluation* est un dispositif pédagogique produisant une note par étudiant.
Les notes sont numériques, mais dans les formations en approche par compétences
(APC), les évaluations peuvent être associées à des *apprentissages critiques*.
Pour en savoir plus:
- [Les évaluations](Evaluation.md)
- [Calcul des notes](CalculNotes.md)
- [Bachelor Universitaire de Technologie (BUT)](BUT.md)
Exemple: modification d'une évaluation
![sco-evaluation-edit.png](screens/sco-evaluation-edit.png)
## Étudiants
Un étudiant peut être créé individuellement par formulaire, ou bien importé via
une feuille de calcul (par exemple Excel), ou, via un connecteur API, importé
depuis un autre système (Apogée, Pégase, annuaire...).
Les étudiants sont rattachés à un et un seul département (en cas de transfert,
le créer dans l'autre département). Chaque étudiant peut être inscrit à un
nombre quelconque de semestres (en général, à un instant $t$, l'étudiant a un
seul semestre en cours, mais il arrive que les semestres suivis se chevauchent).
La fiche de l'étudiant rassemble de nombreuses informations: données d'état
civil, coordonnées, photographie, semestres suivis et leurs résultats résumés,
annotations, etc. Ces informations peuvent être modifiées dans ScoDoc. Les accès
et les droits de modification sont contrôlés par des autorisations spécifiques,
tous les utilisateurs n'ont pas accès aux mêmes vues.
Exemple: extrait de la fiche d'un étudiant
![sco-fiche-etud.png](screens/sco-fiche-etud.png)
## Groupes et partitions
Les étudiants d'un semestre peuvent être répartis dans des groupes.
Chaque *partition* d'un semestre défini un ensemble de groupes: par exemple, les
la partition des groupes de TD, ou la partition des projets tuteurés.
On peut à tout moment créer une partition, y créer des groupes, y placer ou
déplacer des étudiants.
Exemple: l'éditeur de partitions
![sco-partition-edit.png](screens/sco-partition-edit.png)
## Utilisateurs
ScoDoc gère des comptes utilisateur, et associe à chacun des rôles spécifiques,
eux-mêmes associés à des permissions (droits d'accès). ce système permet de
hiérarchiser l'accès aux informations et opérations sensibles (modification de
résultats, inscriptions, éditions de procès-verbaux, etc.).
- [Rôles et permissions dans ScoDoc](ConfigPermissionsDept.md)
- [Gestion des utilisateurs dans ScoDoc](AdminUsers.md)
### Administrateur de département
L'administrateur d'un département (typiquement le responsable de formation ou
chef de département, ou bien une personne de confiance) possède des droits
étendus sur son département (rassemblés dans le rôle `AdminDept`). Il peut
notamment modifier les formations, mettre en place des semestres, créer des
comptes utilisateurs.
### Super-administrateur
Le super-administrateur est un utilisateur ayant des droits d'accès complet au
logiciel. Ce compte ne doit pas être utilisé pour autre chose que le paramétrage
global. Il est le seul à avoir accès aux pages de configuration, accessibles via
la page d'accueil:
![sco-config-generale.png](screens/sco-config-generale.png)
## Assiduité et justificatifs
Voir [Suivi de l'assiduité](Assiduites.md).
!!! note "Voir aussi"
- [Guide utilisateur](GuideUtilisateur.md)
- [FAQ](FAQ.md)
- [Contacts](Contact.md)

View File

@ -1,15 +1,18 @@
# Préférences de ScoDoc
## Préférences de ScoDoc
Ces variables sont modifiables globalement ou seulement pour un semestre spécifique (sauf pour certaines d'entre elles, qui n'ont de sens que globalement). Si un semestre défini une variable (via la page "Préférences du semestre" accessible dans le menu "Semestre"), sa valeur remplace, pour lui seulement, celle définie globalement (via la page "Paramétrage").
Ces variables sont modifiables globalement ou seulement pour un semestre
spécifique (sauf pour certaines d'entre elles, qui n'ont de sens que
globalement). Si un semestre défini une variable (via la page "Préférences du
semestre" accessible dans le menu "Semestre"), sa valeur remplace, pour lui
seulement, celle définie globalement (via la page "Paramétrage").
*Page générée à l'aide de la méthode* `doc_preferences`
## Générales
Nom | &nbsp; | &nbsp;
---- | ---- | ----
`DeptName` | Nom abrégé du département |
`DeptName` | Nom abrégé du département |
`DeptFullName` | Nom complet du département | inutilisé par défaut
`UnivName` | Nom de l'Université | apparait sur les bulletins et PV de jury
`InstituteName` | Nom de l'Institut | exemple "IUT de Villetaneuse". Peut être utilisé sur les bulletins.
@ -29,7 +32,7 @@ Nom | &nbsp; | &nbsp;
Nom | &nbsp; | &nbsp;
---- | ---- | ----
`email_chefdpt` | e-mail chef du département | utilisé pour envoi mail notification absences
`work_saturday` | Considérer le samedi comme travaillé |
`work_saturday` | Considérer le samedi comme travaillé |
`handle_billets_abs` | Gestion de "billets" d'absence | fonctions pour traiter les "billets" déclarés par les étudiants sur un portail externe
`abs_notify_chief` | Notifier les absences au chef | Envoyer un mail au chef si un étudiant a beaucoup d'absences
`abs_notify_respsem` | Notifier les absences au dir. des études | Envoyer un mail au responsable du semestre si un étudiant a beaucoup d'absences
@ -45,9 +48,9 @@ Nom | &nbsp; | &nbsp;
Nom | &nbsp; | &nbsp;
---- | ---- | ----
`portal_url` | URL du portail |
`portal_url` | URL du portail |
`portal_timeout` | timeout | secondes
`portal_dept_name` | Code du département sur le portail |
`portal_dept_name` | Code du département sur le portail |
`etapes_url` | URL listant les étapes Apogée | par defaut, selon l'api, getEtapes ou scodocEtapes sur l'URL du portail
`maquette_url` | URL maquettes Apogee | par defaut, scodocMaquette sur l'URL du portail
`portal_api` | Version de l'API | 1 ou 2
@ -71,8 +74,8 @@ Nom | &nbsp; | &nbsp;
`SCOLAR_FONT` | Police de caractère principale | pour les pdf
`SCOLAR_FONT_SIZE` | Taille des caractères | pour les pdf
`SCOLAR_FONT_SIZE_FOOT` | Taille des caractères pied de page | pour les pdf
`pdf_footer_x` | Position horizontale du pied de page pdf (en mm) |
`pdf_footer_y` | Position verticale du pied de page pdf (en mm) |
`pdf_footer_x` | Position horizontale du pied de page pdf (en mm) |
`pdf_footer_y` | Position verticale du pied de page pdf (en mm) |
## Procès verbaux de jury (documents PDF)
@ -84,21 +87,21 @@ Nom | &nbsp; | &nbsp;
`INSTITUTION_NAME` | Nom institution sur pied de pages PV | (pdf, balises &lt;b&gt; interprétées)
`INSTITUTION_ADDRESS` | Adresse institution sur pied de pages PV | (pdf, balises &lt;b&gt; interprétées)
`INSTITUTION_CITY` | Ville de l'institution | pour les lettres individuelles
`PV_INTRO` | Paragraphe d'introduction sur le PV | Balises remplacées: %(Univname)s = nom de l'université, %(DecNum)s = numéro de l'arrêté, %(Date)s = date de la commission, %(Type)s = type de commission (passage ou délivrance)
`PV_WITH_BACKGROUND` | Mettre l'image de fond sur les PV de jury (paysage) |
`PV_WITH_HEADER` | Ajouter l'en-tête sur les PV (paysage) |
`PV_WITH_FOOTER` | Ajouter le pied de page sur les PV (paysage) |
`pv_left_margin` | Marge gauche PV en mm |
`pv_top_margin` | Marge haute PV |
`pv_right_margin` | Marge droite PV |
`pv_bottom_margin` | Marge basse PV |
`PV_INTRO` | Paragraphe d'introduction sur le PV | Balises remplacées: %(Univname)s = nom de l'université, %(DecNum)s = numéro de l'arrêté, %(Date)s = date de la commission, %(Type)s = type de commission (passage ou délivrance)
`PV_WITH_BACKGROUND` | Mettre l'image de fond sur les PV de jury (paysage) |
`PV_WITH_HEADER` | Ajouter l'en-tête sur les PV (paysage) |
`PV_WITH_FOOTER` | Ajouter le pied de page sur les PV (paysage) |
`pv_left_margin` | Marge gauche PV en mm |
`pv_top_margin` | Marge haute PV |
`pv_right_margin` | Marge droite PV |
`pv_bottom_margin` | Marge basse PV |
`PV_LETTER_DIPLOMA_SIGNATURE` | Signature des lettres individuelles de diplôme | %(DirectorName)s et %(DirectorTitle)s remplacés
`PV_LETTER_PASSAGE_SIGNATURE` | Signature des lettres individuelles de passage d'un semestre à l'autre | %(DirectorName)s et %(DirectorTitle)s remplacés
`pv_sig_image_height` | Hauteur de l'image de la signature | Lorsqu'on donne une image de signature, elle est redimensionnée à cette taille (en millimètres)
`PV_LETTER_TEMPLATE` | Lettre individuelle | Balises remplacées et balisage XML, voir la documentation
`PV_LETTER_WITH_BACKGROUND` | Mettre l'image de fond sur les lettres individuelles de décision |
`PV_LETTER_WITH_HEADER` | Ajouter l'en-tête sur les lettres individuelles de décision |
`PV_LETTER_WITH_FOOTER` | Ajouter le pied de page sur les lettres individuelles de décision |
`PV_LETTER_WITH_BACKGROUND` | Mettre l'image de fond sur les lettres individuelles de décision |
`PV_LETTER_WITH_HEADER` | Ajouter l'en-tête sur les lettres individuelles de décision |
`PV_LETTER_WITH_FOOTER` | Ajouter le pied de page sur les lettres individuelles de décision |
`pv_htab1` | marge colonne droite lettre | pour les courriers pdf
`pv_htab2` | marge colonne gauche lettre | pour les courriers pdf
`PV_FONTNAME` | Police de caractère pour les PV | pour les pdf
@ -109,32 +112,31 @@ Nom | &nbsp; | &nbsp;
---- | ---- | ----
`bul_title` | Titre des bulletins | <tt>%(DeptName)s</tt> est remplacé par le nom du département
`bul_class_name` | Format des bulletins | format de présentation des bulletins de note (web et pdf)
`bul_show_abs` | Indiquer les absences sous les bulletins |
`bul_show_abs_modules` | Indiquer les absences dans chaque module |
`bul_show_decision` | Faire figurer les décisions sur les bulletins |
`bul_show_abs` | Indiquer les absences sous les bulletins |
`bul_show_abs_modules` | Indiquer les absences dans chaque module |
`bul_show_decision` | Faire figurer les décisions sur les bulletins |
`bul_show_ects` | Faire figurer les ECTS sur les bulletins | crédits associés aux UE ou aux modules, selon réglage
`bul_show_codemodules` | Afficher codes des modules sur les bulletins |
`bul_show_matieres` | Afficher les matières sur les bulletins |
`bul_show_codemodules` | Afficher codes des modules sur les bulletins |
`bul_show_matieres` | Afficher les matières sur les bulletins |
`bul_show_all_evals` | Afficher toutes les évaluations sur les bulletins | y compris incomplètes ou futures
`bul_show_rangs` | Afficher le classement sur les bulletins |
`bul_show_ue_rangs` | Afficher le classement dans chaque UE sur les bulletins |
`bul_show_mod_rangs` | Afficher le classement dans chaque module sur les bulletins |
`bul_show_moypromo` | Afficher moyennes de la promotion sur les bulletins |
`bul_show_minmax` | Afficher min/max moyennes sur les bulletins |
`bul_show_minmax_mod` | Afficher min/max moyennes des modules sur les bulletins |
`bul_show_minmax_eval` | Afficher min/max moyennes des évaluations sur les bulletins |
`bul_show_coef` | Afficher coefficient des ue/modules sur les bulletins |
`bul_show_ue_cap_details` | Afficher détail des notes des UE capitalisées sur les bulletins |
`bul_show_ue_cap_current` | Afficher les UE en cours mais capitalisées sur les bulletins |
`bul_show_temporary_forced` | Bannière "provisoire" sur les bulletins |
`bul_show_temporary` | Bannière "provisoire" si pas de décision de jury |
`bul_temporary_txt` | Texte de la bannière "provisoire |
`bul_show_uevalid` | Faire figurer les UE validées sur les bulletins |
`bul_show_mention` | Faire figurer les mentions sur les bulletins et les PV |
`bul_show_date_inscr` | Faire figurer la date d'inscription sur les bulletins |
`bul_show_sig_left` | Faire figurer le pied de page de gauche (ex.: nom du directeur) sur les bulletins |
`bul_show_sig_right` | Faire figurer le pied de page de droite (ex.: nom du chef de département) sur les bulletins |
`bul_display_publication` | Indique si les bulletins sont publiés | décocher si vous n'avez pas de portal étudiant publiant les bulletins
`bul_show_rangs` | Afficher le classement sur les bulletins |
`bul_show_ue_rangs` | Afficher le classement dans chaque UE sur les bulletins |
`bul_show_mod_rangs` | Afficher le classement dans chaque module sur les bulletins |
`bul_show_moypromo` | Afficher moyennes de la promotion sur les bulletins |
`bul_show_minmax` | Afficher min/max moyennes sur les bulletins |
`bul_show_minmax_mod` | Afficher min/max moyennes des modules sur les bulletins |
`bul_show_minmax_eval` | Afficher min/max moyennes des évaluations sur les bulletins |
`bul_show_coef` | Afficher coefficient des ue/modules sur les bulletins |
`bul_show_ue_cap_details` | Afficher détail des notes des UE capitalisées sur les bulletins |
`bul_show_ue_cap_current` | Afficher les UE en cours mais capitalisées sur les bulletins |
`bul_show_temporary_forced` | Bannière "provisoire" sur les bulletins |
`bul_show_temporary` | Bannière "provisoire" si pas de décision de jury |
`bul_temporary_txt` | Texte de la bannière "provisoire |
`bul_show_uevalid` | Faire figurer les UE validées sur les bulletins |
`bul_show_mention` | Faire figurer les mentions sur les bulletins et les PV |
`bul_show_date_inscr` | Faire figurer la date d'inscription sur les bulletins |
`bul_show_sig_left` | Faire figurer le pied de page de gauche (ex.: nom du directeur) sur les bulletins |
`bul_show_sig_right` | Faire figurer le pied de page de droite (ex.: nom du chef de département) sur les bulletins |
`bul_pdf_title` | Bulletins PDF: paragraphe de titre | (balises interprétées, voir documentation)
`bul_pdf_caption` | Bulletins PDF: paragraphe sous table note | (visible seulement si "Faire figurer les décision" est coché)
`bul_pdf_sig_left` | Bulletins PDF: signature gauche | (balises interprétées, voir documentation)
@ -146,10 +148,10 @@ Nom | &nbsp; | &nbsp;
Nom | &nbsp; | &nbsp;
---- | ---- | ----
`left_margin` | Marge gauche |
`top_margin` | Marge haute |
`right_margin` | Marge droite |
`bottom_margin` | Marge basse |
`left_margin` | Marge gauche |
`top_margin` | Marge haute |
`right_margin` | Marge droite |
`bottom_margin` | Marge basse |
## Envoi des bulletins par e-mail
@ -160,7 +162,7 @@ Nom | &nbsp; | &nbsp;
`bul_intro_mail` | Message d'accompagnement | <tt>%(DeptName)s</tt> est remplacé par le nom du département, <tt>%(nomprenom)s</tt> par les noms et prénoms de l'étudiant, <tt>%(dept)s</tt> par le nom du département, et <tt>%(webmaster)s</tt> par l'adresse mail du Webmaster.
`bul_mail_list_abs` | Indiquer la liste des dates d'absences par mail | dans le mail envoyant le bulletin de notes
`bul_mail_contact_addr` | Adresse mail contact "webmaster" | apparait dans le mail accompagnant le bulletin, voir balise "webmaster" ci-dessus.
`bul_mail_allowed_for_all` | Autoriser tous les utilisateurs à expédier des bulletins par mail |
`bul_mail_allowed_for_all` | Autoriser tous les utilisateurs à expédier des bulletins par mail |
## Mise en forme des feuilles (Absences, Trombinoscopes, ...)
@ -168,13 +170,13 @@ Nom | &nbsp; | &nbsp;
---- | ---- | ----
`feuille_releve_abs_taille` | Taille feuille relevé absences | Dimensions du papier pour les feuilles de relevés d'absences hebdomadaire
`feuille_releve_abs_format` | Format feuille relevé absences | Format du papier pour les feuilles de relevés d'absences hebdomadaire
`feuille_releve_abs_samedi` | Samedi travaillé |
`feuille_releve_abs_samedi` | Samedi travaillé |
`feuille_releve_abs_AM` | Créneaux cours matin | Nombre de créneaux de cours le matin
`feuille_releve_abs_PM` | Créneaux cours après-midi | Nombre de créneaux de cours l'après-midi
`feuille_placement_emargement` | Feuille d'émargement des contrôles - Signature étudiant | Hauteur de l'espace pour signer
`feuille_placement_positions` | Feuille des places lors des contrôles | Nombre maximum de lignes par colonne
`prepa_jury_nip` | Code NIP sur la feuille préparation jury |
`prepa_jury_ine` | Code INE sur la feuille préparation jury |
`prepa_jury_nip` | Code NIP sur la feuille préparation jury |
`prepa_jury_ine` | Code INE sur la feuille préparation jury |
`anonymous_lst_code` | Code pour listes anonymes | à défaut, un code interne sera utilisé
## Avis de poursuites d'études
@ -183,7 +185,7 @@ Nom | &nbsp; | &nbsp;
---- | ---- | ----
`NomResponsablePE` | Nom du responsable des poursuites d'études | pour les avis pdf de poursuite
`pe_avis_latex_tmpl` | Template LaTeX des avis | préparez-le dans un éditeur de texte puis copier le contenu ici (en utf8). Sinon, le fichier un_avis.tex du serveur sera utilisé.
`pe_avis_latex_footer` | Code LaTeX en fin d'avis |
`pe_avis_latex_footer` | Code LaTeX en fin d'avis |
`pe_tag_annotation_avis_latex` | Tag désignant l'avis PE | ajoutez une annotation aux étudiants précédée du tag désigné ici pour qu'elle soit interprétée comme un avis de poursuites d'études et ajoutée aux avis LaTeX.
## Connexion avec le logiciel d'emplois du temps

View File

@ -4,7 +4,7 @@ Voir les <a href="https://www.youtube.com/playlist?list=PLw49h6RbvswhasBk9bXj7Pz
## Page d'accueil
![accueil](screens/accueil-scodoc7.png)
![accueil](screens/sco-accueil-dept.png)
On y trouve les éléments suivants:
@ -13,7 +13,7 @@ droite) et contient des liens facilitant la navigation sur le site (certains
sont paramétrables à l'installation). On note l'accès à trois composants
importants: Entreprises (fichier d'entreprises), Notes (gestion des notes),
Absences (relevé des absences), et un champ de texte permettant de rechercher un
étudiant par son nom.
étudiant par son nom.
L'identité de l'utilisateur défini ses droits d'accès (rôle) et les fonctions
qu'il peut utiliser.
@ -22,7 +22,7 @@ Le centre de la page donne les formations (sessions) en cours, groupées par
type. A côté du titre de chaque formation, on a le nom de son responsable (ou
directeur des études dans le jargon IUT), ainsi que les dates de début et de fin
de la session.
## Fiche étudiant
Pour accéder à la fiche d'un étudiant, on peut soit le rechercher par nom (voir
@ -35,8 +35,8 @@ informations sur l'étudiant. ![fiche étudiant](screens/ficheEtud-scodoc7.png)
ScoDoc permet d'enregistrer les absences des étudiants puis de les visualiser
sur un calendrier. On peut aussi obtenir des comptes d'absences, générer des
alarmes par e-mail pour prévenir un responsable, vérifier les absences qui
coincident avec un examen, enregistre les justificatifs, etc. ![calendrier des
absences](screens/calabs-scodoc7.png)
coïncident avec un examen, enregistre les justificatifs, etc. ![calendrier des
absences](screens/sco-assi-cal.png)
## Gestion des notes
@ -47,10 +47,11 @@ web, vérifications, etc.).
### Tableau de bord du semestre, avec les modules
![tableau de bord du semestre](screens/tableaubord2011.png)
![tableau de bord du semestre](screens/sco-formsemestre-status.png)
### Tableau récapitulatif des moyennes
![tableau de bord du semestre](screens/NotesRecap2012-crop.png)
![tableau de bord du semestre](screens/sco-table-recap-but.png)
### Bulletins de notes
@ -74,8 +75,9 @@ respectent les règles.
## Gestion des groupes
ScoDoc permet de définir des partitions et groupes en nombre quelconque, et d'y
répartir facilement les étudiants (glisser/déposer, fonctions de répartition
automatiques). ![affectation aux groupes](screens/GroupesDnD.png)
répartir facilement les étudiants:
![sco-partition-edit.png](screens/sco-partition-edit.png)
## Trombinoscopes
@ -89,5 +91,12 @@ automatiques). ![affectation aux groupes](screens/GroupesDnD.png)
Les données conservées dans le logiciel peuvent être exportées dans une grande
variété de formats (pages web, PDF, Excel, XML...) ce qui facilite tant son
usage par des non informaticiens que son intégration dans d'autres logiciels
(portails d'établissements, systèmes d'informations comme Apogée).
(portails d'établissements, systèmes d'informations comme Apogée).
!!! note "Voir aussi"
- [Les principaux objets de ScoDoc](IntroObjetsScoDoc.md)
- [Guide utilisateur](GuideUtilisateur.md)
- [FAQ](FAQ.md)
- [Contacts](Contact.md)

View File

@ -253,17 +253,17 @@ Ce tableau est trié selon le type des informations renvoyées:
| assiduite**`*`** | liste d'assiduités d'un étudiant | GET | [assiduités](#assiduites) | ScoView |
| assiduite**`*`** | liste d'assiduités d'un formsemestre | GET | [assiduités-formsemestre](#assiduites-formsemestre) | ScoView |
| assiduite**`#`** | liste d'id d'assiduités justifiées | GET | [justificatif-justifies](#justificatif-justifies) | ScoView |
| assiduite:CREATE | création d'assiduité | POST | [assiduite-create](#assiduite-create) | ScoAssiduiteChange |
| assiduite:EDIT | édition d'assiduité | POST | [assiduite-edit](#assiduite-edit) | ScoAssiduiteChange |
| assiduite:DELETE | suppression d'assiduité | POST | [assiduite-delete](#assiduite-delete) | ScoAssiduiteChange |
| assiduite:CREATE | création d'assiduité | POST | [assiduite-create](#assiduite-create) | AbsChange |
| assiduite:EDIT | édition d'assiduité | POST | [assiduite-edit](#assiduite-edit) | AbsChange |
| assiduite:DELETE | suppression d'assiduité | POST | [assiduite-delete](#assiduite-delete) | AbsChange |
| justificatif | un justificatif | GET | [justificatif](#justificatif) | ScoView |
| justificatif**`*`** | liste de justificatif d'un étudiant | GET | [justificatifs](#justificatifs) | ScoView |
| justificatif:CREATE | création de justificatif | POST | [justificatif-create](#justificatif-create) | ScoJustifChange |
| justificatif:EDIT | édition de justificatif | POST | [justificatif-edit](#justificatif-edit) | ScoJustifChange |
| justificatif:DELETE | suppression de justificatif | POST | [justificatif-delete](#justificatif-delete) | ScoJustifChange |
| justificatif:IMPORT | importation de fichier justificatif | POST | [justificatif-import](#justificatif-import) | ScoJustifChange |
| justificatif:EXPORT | exportation de fichier justificatif | POST | [justificatif-export](#justificatif-export) | ScoJustifChange |
| justificatif:REMOVE | suppression de fichier justificatif | POST | [justificatif-remove](#justificatif-remove) | ScoJustifChange |
| justificatif:CREATE | création de justificatif | POST | [justificatif-create](#justificatif-create) | AbsChange |
| justificatif:EDIT | édition de justificatif | POST | [justificatif-edit](#justificatif-edit) | AbsChange |
| justificatif:DELETE | suppression de justificatif | POST | [justificatif-delete](#justificatif-delete) | AbsChange |
| justificatif:IMPORT | importation de fichier justificatif | POST | [justificatif-import](#justificatif-import) | AbsChange |
| justificatif:EXPORT | exportation de fichier justificatif | POST | [justificatif-export](#justificatif-export) | AbsChange |
| justificatif:REMOVE | suppression de fichier justificatif | POST | [justificatif-remove](#justificatif-remove) | AbsChange |
| departement**`*`** | tous les depts | GET | [departements](#departements) | |
| departement**`#`** | tous les ids des depts | GET | [departements-ids](#departements-ids) | ScoView |
| departement | recherche par id | GET | [departement](#departement) | ScoView |
@ -283,24 +283,25 @@ Ce tableau est trié selon le type des informations renvoyées:
| formsemestre**`#`** | | GET | [departement-formsemestres_ids](#departement-formsemestres_ids) | ScoView |
| formsemestre**`*`** | | GET | [departement-formsemestres_courants](#departement-formsemestres_courants) | ScoView |
| formsemestre**`*`** | | GET | [formsemestre-query](#formsemestre-query) | ScoView |
| formsemestre:EDIT | | POST | [formsemestre-edit](#formsemestre-edit) | EditFormSemestre |
| formsemestre**`*`** | | GET | [etudiant-formsemestres](#etudiant-formsemestres) | ScoView |
| formsemestre | | GET | [formsemestre](#formsemestre) | ScoView |
| moduleimpl | | GET | [moduleimpl](#moduleimpl) | ScoView |
| moduleimpl-inscriptions | | GET | [moduleimpl](#moduleimpl-inscriptions) | ScoView |
| partition**`*`** | | GET | [formsemestre-partitions](#formsemestre-partitions) | ScoView |
| partition | | GET | [partition](#partition) | ScoView |
| partition:CREATE | | POST | [formsemestre-partition-create](#formsemestre-partition-create) | ScoEtudChangeGroups |
| partition:EDIT | | POST | [partition-edit](#partition-edit) | ScoEtudChangeGroups |
| partition:ACTION | | POST | [formsemestre-partitions-order](#formsemestre-partitions-order) | ScoEtudChangeGroups |
| partition:DELETE | | POST | [partition-delete](#partition-delete) | ScoEtudChangeGroups |
| partition:ACTION | | POST | [partition-remove_etudiant](#partition-remove_etudiant) | ScoEtudChangeGroups |
| group:CREATE | | POST | [partition-group-create](#partition-group-create) | ScoEtudChangeGroups |
| group:EDIT | | POST | [group-edit](#group-edit) | ScoEtudChangeGroups |
| group:ACTION | | POST | [partition-groups-order](#partition-groups-order) | ScoEtudChangeGroups |
| group:DELETE | | POST | [group-delete](#group-delete) | ScoEtudChangeGroups |
| partition:CREATE | | POST | [formsemestre-partition-create](#formsemestre-partition-create) | EtudChangeGroups |
| partition:EDIT | | POST | [partition-edit](#partition-edit) | EtudChangeGroups |
| partition:ACTION | | POST | [formsemestre-partitions-order](#formsemestre-partitions-order) | EtudChangeGroups |
| partition:DELETE | | POST | [partition-delete](#partition-delete) | EtudChangeGroups |
| partition:ACTION | | POST | [partition-remove_etudiant](#partition-remove_etudiant) | EtudChangeGroups |
| group:CREATE | | POST | [partition-group-create](#partition-group-create) | EtudChangeGroups |
| group:EDIT | | POST | [group-edit](#group-edit) | EtudChangeGroups |
| group:ACTION | | POST | [partition-groups-order](#partition-groups-order) | EtudChangeGroups |
| group:DELETE | | POST | [group-delete](#group-delete) | EtudChangeGroups |
| group* | | GET | [etudiant-formsemestre-groups](#etudiant-formsemestre-groups) | ScoView |
| group:ACTION | | POST | [group-set_etudiant](#group-set_etudiant) | ScoEtudChangeGroups |
| group:ACTION | | POST | [group-remove_etudiant](#group-remove_etudiant) | ScoEtudChangeGroups |
| group:ACTION | | POST | [group-set_etudiant](#group-set_etudiant) | EtudChangeGroups |
| group:ACTION | | POST | [group-remove_etudiant](#group-remove_etudiant) | EtudChangeGroups |
| etudiant**`*`** | recherche par etudid, nip ou ine | GET | [etudiants-clef](#etudiants-clef) | ScoView |
| etudiant**`*`** | les étudiants actuels | GET | [etudiants-courant](#etudiants-courant) | ScoView |
| etudiant**`*`** | étudiants dont le nom commence par | GET | [etudiants-name](#etudiants-name) | ScoView |
@ -310,8 +311,8 @@ Ce tableau est trié selon le type des informations renvoyées:
| etudiant**`*`** | | GET | [group-etudiants-query](#group-etudiants) | ScoView |
| etudiant**`*`** | | GET | [group-etudiants-query](#group-etudiants-query) |
| etudiant | | GET | [etudiant](#etudiant) | ScoView |
| etudiant:CREATE | | GET | [etudiant-create](#etudiant-create) | ScoEtudInscrit |
| etudiant:EDIT | | GET | [etudiant-edit](#etudiant-edit) | ScoEtudInscrit |
| etudiant:CREATE | | GET | [etudiant-create](#etudiant-create) | EtudInscrit |
| etudiant:EDIT | | GET | [etudiant-edit](#etudiant-edit) | EtudInscrit |
| bulletin**`*`** | | GET | [formsemestre-bulletin](#formsemestre-bulletin) | ScoView |
| bulletin | | GET | [etudiant-formsemestre-bulletin](#etudiant-formsemestre-bulletin) | ScoView |
| programme | | GET | [formsemestre-programme](#formsemestre-programme) | ScoView |
@ -324,21 +325,21 @@ Ce tableau est trié selon le type des informations renvoyées:
| logo**`*`** | | GET | [departement-logos](#departement-logos) | ScoSuperAdmin |
| logo | | GET | [logo](#logo) | ScoSuperAdmin |
| logo | | GET | [departement-logo](#departement-logo) | ScoSuperAdmin |
| user | | GET | [user](#user) | ScoUsView |
| user**`*`** | | GET | [users-query](#users-query) | ScoUsView |
| user:CREATE | | POST | [user-create](#user-create) | ScoUserAdmin |
| user:EDIT | | POST | [user-edit](#user-edit) | ScoUserAdmin |
| user:PASSWORD | change le mot de passe d'un utilisateur | POST | [user-password](#user-password) | ScoUserAdmin |
| user:ACTION | | POST | [user-role-add](#user-role-add) | ScoUserAdmin |
| user:ACTION | | POST | [user-role-remove](#user-role-remove) | ScoUserAdmin |
| permission**`*`** | | GET | [permissions](#permissions) | ScoUsView |
| role**`*`** | | GET | [roles](#roles) | ScoUsView |
| role**`*`** | | GET | [role](#role) | ScoUsView |
| role:ACTION | | POST | [role-add_permission](#role-add_permission) | ScoUserAdmin |
| role:ACTION | | POST | [role-remove_permission](#role-remove_permission) | ScoUserAdmin |
| role:CREATE | | POST | [role-create](#role-create) | ScoUserAdmin |
| role:EDIT | | POST | [role-edit](#role-edit) | ScoUserAdmin |
| role:DELETE | | POST | [role-delete](#role-delete) | ScoUserAdmin |
| user | | GET | [user](#user) | UsersView |
| user**`*`** | | GET | [users-query](#users-query) | UsersView |
| user:CREATE | | POST | [user-create](#user-create) | UsersAdmin |
| user:EDIT | | POST | [user-edit](#user-edit) | UsersAdmin |
| user:PASSWORD | change le mot de passe d'un utilisateur | POST | [user-password](#user-password) | UsersAdmin |
| user:ACTION | | POST | [user-role-add](#user-role-add) | UsersAdmin |
| user:ACTION | | POST | [user-role-remove](#user-role-remove) | UsersAdmin |
| permission**`*`** | | GET | [permissions](#permissions) | UsersView |
| role**`*`** | | GET | [roles](#roles) | UsersView |
| role**`*`** | | GET | [role](#role) | UsersView |
| role:ACTION | | POST | [role-add_permission](#role-add_permission) | UsersAdmin |
| role:ACTION | | POST | [role-remove_permission](#role-remove_permission) | UsersAdmin |
| role:CREATE | | POST | [role-create](#role-create) | UsersAdmin |
| role:EDIT | | POST | [role-edit](#role-edit) | UsersAdmin |
| role:DELETE | | POST | [role-delete](#role-delete) | UsersAdmin |
#### Note sur les exemples d'utilisation
@ -438,31 +439,32 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
#### Structure Etudiant
| attribut | type | commentaire |
|:----------------------|:------------------------------|:------------------------------------------------------------|
| _civilite_ | string | '`M`', '`F`' ou '`X`' [[1]](DonneesEtudiant.md) |
| _civilite_etat_civil_ | string | '`M`', '`F`' ou '`X`' [[1]](DonneesEtudiant.md) |
| _code_ine_ | string | non unique! |
| _code_nip_ | string | non unique! |
| _dept_id_ | string | id du département scodoc |
| _id_ | int | id unique |
| _nom_ | string | en majuscule [[1]](DonneesEtudiant.md) |
| _nom_usuel_ | string | null si absent [[1]](DonneesEtudiant.md) |
| _prenom_ | string | [[1]](DonneesEtudiant.md) |
| _prenom_etat_civil_ | string | (si prenom d'usage <> etat_civil [[1]](DonneesEtudiant.md)) |
| _sort_key_ | [ string, string ] | nom-prenom pour trier |
| | | **Format long** |
| _admission_ | admission | |
| _adresses_ | [adresse](#structure-adresse) | |
| _boursier_ | bool | |
| _date_naissance_ | string | date ISO (yyyy-mm-dd) |
| _dept_acronym_ | string | |
| _dept_naissance_ | string | département du lieu de naissance |
| _lieu_naissance_ | string | lieu de naissance (ville) |
| _nationalite_ | string | |
| _photo_filename_ | string | |
| _scodoc7_id_ | string | de la forme 'EID9999' |
| _statut_ | string | '`I`', '`D`' ou '`X`' |
| attribut | type | commentaire |
|:----------------------|:------------------------------------|:------------------------------------------------------------|
| _civilite_ | string | '`M`', '`F`' ou '`X`' [[1]](DonneesEtudiant.md) |
| _civilite_etat_civil_ | string | '`M`', '`F`' ou '`X`' [[1]](DonneesEtudiant.md) |
| _code_ine_ | string | non unique! |
| _code_nip_ | string | non unique! |
| _dept_id_ | string | id du département scodoc |
| _id_ | int | id unique |
| _nom_ | string | en majuscule [[1]](DonneesEtudiant.md) |
| _nom_usuel_ | string | null si absent [[1]](DonneesEtudiant.md) |
| _prenom_ | string | [[1]](DonneesEtudiant.md) |
| _prenom_etat_civil_ | string | (si prenom d'usage <> etat_civil [[1]](DonneesEtudiant.md)) |
| _sort_key_ | [ string, string ] | nom-prenom pour trier |
| | | **Format long** |
| _admission_ | admission | |
| _adresses_ | [adresse](#structure-adresse) | |
| _boursier_ | bool | |
| _date_naissance_ | string | date ISO (yyyy-mm-dd) |
| _dept_acronym_ | string | |
| _dept_naissance_ | string | département du lieu de naissance |
| _lieu_naissance_ | string | lieu de naissance (ville) |
| _nationalite_ | string | |
| _photo_filename_ | string | |
| _scodoc7_id_ | string | de la forme 'EID9999' |
| _statut_ | string | '`I`', '`D`' ou '`X`' |
| _annotations_ | [annotation](#structure-annotation) | |
##### Structure adresse
@ -483,6 +485,19 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
| typeadresse | string | |
| villedomicile | string | |
##### Structure annotation
Les annotations sur les étudiants ne sont accessibles qu'avec la permission `ViewEtudData`.
Sur l'application, elles sont affichées et modifiables sur la fiche de l'étudiants.
| attribut | type | commentaire |
|:---------|:-------|:------------|
| date | string | |
| id | int | |
| comment | string | |
| author | string | |
| etudid | int | |
#### **`etudiants-courants`**
@ -495,7 +510,8 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
* **Exemple d'utilisation:** `/api/etudiants/courants`
* **Résultat:** Liste des étudiants inscrits dans un formsemestre
actuellement en cours. Avec `/long`, donne tous les attributs de
l'étudiants (plus lent).
l'étudiants (plus lent), y compris les annotations si le client
a la permission `ViewEtudData`.
* **Exemple de résultat:** [etudiants-courants.json](samples/sample_etudiants-courants.json.md)
#### **`etudiants-clef`**
@ -529,7 +545,7 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
#### **`etudiant-create`**
* **Méthode: POST**
* **Permission: `ScoEtudInscrit`**
* **Permission: `EtudInscrit`**
* **Paramètres:** ``
* **Data:**
@ -599,13 +615,35 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
#### **`etudiant-edit`**
* **Méthode: POST**
* **Permission: `ScoEtudInscrit`**
* **Permission: `EtudInscrit`**
* **Paramètres:** ``
* **Data:** exactement comme `etudiant/create`, seuls les données passées sont modifiées.
* **Routes:** `/etudiant/edit.
* **Data:** exactement comme `etudiant/create`, seules les données passées sont modifiées.
* **Routes:**
* `/etudiant/etudid/<int:etudid>/edit`
* `/etudiant/nip/<string:nip>/edit`
* `/etudiant/ine/<string:ine>/edit`
* **Résultat:** Modifie les données de l'étudiant.
#### **`etudiant-annotation`**
* **Méthode: POST**
* **Permission: `EtudInscrit`+`ViewEtudData`**
* **Data:** `{ "comment" : "une annotation" }`
* **Routes:**
* `/etudiant/etudid/<int:etudid>/annotation`
* `/etudiant/nip/<string:nip>/annotation`
* `/etudiant/ine/<string:ine>/annotation`
* **Résultat:** Ajoute une annotation sur l'étudiant.
#### **`etudiant-annotation-delete`**
* **Méthode: POST**
* **Permission: `EtudInscrit`**
* **Routes:**
* `/etudiant/etudid/<int:etudid>/annotation/<int:annotation_id>/delete`
* `/etudiant/nip/<string:nip>/annotation<int:annotation_id>/delete`
* `/etudiant/ine/<string:ine>/annotation<int:annotation_id>/delete`
* **Résultat:** Supprimer une annotation sur l'étudiant.
#### **departement-etudiants**
@ -689,7 +727,7 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
| date_debut | datetime (iso) | date et heure de début (tous groupes) |
| date_fin | datetime (iso) | date et heure de fin (tous groupes) |
| description | string | texte libre |
| evaluation_type | int | 0 normale, 1 rattrapage, 2 "2eme session" |
| evaluation_type | int | 0 normale, 1 rattrapage, 2 "2eme session", 3 "bonus" |
| moduleimpl_id | int | moduleimpl |
| note_max | float | barème (20 points) |
| numero | int | ordre présentation |
@ -850,6 +888,21 @@ informatique de 2014 en formation initiale (FI).
| _**titre_court**_ | string | |
| _**titre_num**_ | string | |
#### **`formsemestre-create`**
* **Méthode: POST**
* **Permission: `EditFormSemestre`**
* **Paramètres:** `formsemestre_id`
* **Data:** `{ ... }`
* **Routes:** `/formsemestre/<int:formsemestre_id>/edit`
>`{ "titre" : "titre du semestre" }`
* **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/123/edit`
* **Résultat:** Modifie les paramètres d'un FormSemestre.
* **Exemple de résultat:** nd
#### **departement-formsemestres_ids**
* **Méthode:** GET
@ -919,7 +972,7 @@ informatique de 2014 en formation initiale (FI).
#### **`partition-group-create`**
* **Méthode: POST**
* **Permission: `ScoEtudChangeGroups`**
* **Permission: `EtudChangeGroups`**
* **Paramètres:** `partition_id`
* **Data:** `{ group_name : <string> }`
* **Routes:** `/partition/<int:partition_id>/group/create`
@ -933,7 +986,7 @@ informatique de 2014 en formation initiale (FI).
#### **`group-edit`**
* **Méthode: POST**
* **Permission: `ScoEtudChangeGroups`**
* **Permission: `EtudChangeGroups`**
* **Paramètres:** `group_id`
* **Data:** `{ group_name : <string> }`
* **Routes:** `/group/<int:group_id>/edit`
@ -947,7 +1000,7 @@ informatique de 2014 en formation initiale (FI).
#### **`partition-groups-order`**
* **Méthode: POST**
* **Permission: `ScoEtudChangeGroups`**
* **Permission: `EtudChangeGroups`**
* **Paramètres:** `partition_id`
* **Data:** `[ <int:group_id1>, <int:group_id2>, ... ]`
* **Routes:** `/partition/<int:partition_id>/groups/order`
@ -961,7 +1014,7 @@ informatique de 2014 en formation initiale (FI).
#### **`group-delete`**
* **Méthode: POST**
* **Permission: `ScoEtudChangeGroups`**
* **Permission: `EtudChangeGroups`**
* **Paramètres:** `group_id`
* **Routes:** `/group/<int:group_id>/delete`
* **Exemple d'utilisation:** `/ScoDoc/api/group/4581/delete`
@ -984,7 +1037,7 @@ informatique de 2014 en formation initiale (FI).
#### **`group-set_etudiant`**
* **Méthode: POST**
* **Permission: `ScoEtudChangeGroups`**
* **Permission: `EtudChangeGroups`**
* **Paramètres:** `group_id`, `etudid`
* **Routes:** `/group/<int:group_id>/set_etudiant/<int:etudid>`
* **Exemple d'utilisation:** `/ScoDoc/api/group/4085/set_etudiant/12108`
@ -994,7 +1047,7 @@ informatique de 2014 en formation initiale (FI).
#### **`group-remove_etudiant`**
* **Méthode: POST**
* **Permission: `ScoEtudChangeGroups`**
* **Permission: `EtudChangeGroups`**
* **Paramètres:** `group_id`, `etudid`
* **Routes:** `/group/<int:group_id>/remove_etudiant/<int:etudid>`
* **Exemple d'utilisation:** `/ScoDoc/api/group/4085/remove_etudiant/12108`
@ -1150,7 +1203,7 @@ d'un nombre quelconque de groupes d'étudiants.
#### **`formsemestre-partition-create`**
* **Méthode: POST**
* **Permission: `ScoEtudsChangeGroups`**
* **Permission: `EtudChangeGroups`**
* **Paramètres:** `formsemestre_id`
* **Data:** `{ "partition_name" : <string> }`
* **Routes:** `/formsemestre/<int:formsemestre_id>/partition/create`
@ -1164,7 +1217,7 @@ d'un nombre quelconque de groupes d'étudiants.
#### **`partition-edit`**
* **Méthode: POST**
* **Permission: `ScoEtudsChangeGroups`**
* **Permission: `EtudChangeGroups`**
* **Paramètres:** `partition_id`
* **Data:** `{ partition_name : <string> }`
* **Routes:** `/partition/<int:partition_id>/edit`
@ -1178,7 +1231,7 @@ d'un nombre quelconque de groupes d'étudiants.
#### **`formsemestre-partitions-order`**
* **Méthode: POST**
* **Permission: `ScoEtudsChangeGroups`**
* **Permission: `EtudChangeGroups`**
* **Paramètres:** `formsemestre_id`
* **Data:** `[ <int:partition_id1>, <int:partition_id2>, ... ]`
* **Routes:** `/formsemestre/<int:formsemestre_id>/partitions/order`
@ -1192,7 +1245,7 @@ d'un nombre quelconque de groupes d'étudiants.
#### **`partition-delete`**
* **Méthode: POST**
* **Permission: `ScoEtudsChangeGroups`**
* **Permission: `EtudChangeGroups`**
* **Paramètres:** `partition_id`
* **Routes:** `/partition/<int:partition_id>/delete`
* **Exemple d'utilisation:** `/ScoDoc/api/partition/2047/delete`
@ -1202,8 +1255,7 @@ d'un nombre quelconque de groupes d'étudiants.
#### **`partition-remove_etudiant`**
* **Méthode: POST**
* **Permission: `ScoEtudsChangeGroups`**
* **Permission: `ScoEtudChangeGroups`**
* **Permission: `EtudChangeGroups`**
* **Paramètres:** `partition_id`
* **Routes:** `/partition/<int:partition_id>/remove_etudiant/<int:etudid>`
* **Exemple d'utilisation:** `/ScoDoc/api/partition/1962/remove_etudiant/12107`
@ -1663,10 +1715,15 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
| *user_name* | str ou null | login de l'utilisateur ayant créé l'assiduité |
| *est_just* | boolean | l'assiduité est-elle justifiée |
| *entry_date* | string | la date d'entrée de l'assiduité |
| *external_data* | objet ou null | un objet décrivant des actions non utilisée par ScoDoc |
> Rappel du format de date ISO : yyyy-mm-jjTHH:MM:SS
> Rappel du format de date ISO : yyyy-mm-ddTHH:MM:SS
> Vous pouvez aussi spécifier le temps UTC en ajoutant '+HH:MM' à la fin
!!! warning
Le champs `external_data` est utilisé par ScoDoc pour déterminer les assiduités utilisant n'utilisant pas de module particulier (Tout module / Autre module dans ScoDoc). Il aura alors la forme suivante : `{"module": "Autre"}`
#### **assiduite**
* **Méthode:** GET
@ -1676,6 +1733,20 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* **Exemple d'utilisation:** `/api/assiduite/1`
* **Résultat:** Retourne un objet assiduité ou une erreur si l'id n'est pas connu
* **Exemple de résultat:** [assiduite.json](samples/sample_assiduite.json.md)
*
#### **assiduite-justificatifs[-long]**
* **Méthode:** GET
* **Permission: `ScoView`**
* **Paramètres:** `assiduite_id`
* **Routes:**
* `/assiduite/<int:assiduite_id>/justificatifs`
* `/assiduite/<int:assiduite_id>/justificatifs/long`
* **Exemple d'utilisation:**
* `/api/assiduite/123/justificatifs`
* `/api/assiduite/123/justificatifs/long`
* **Résultat:** Retourne une liste de justificatifs. des objets en utilisant la route `long` sinon les justif_id
* **Exemple de résultat:** [assiduite-justificatifs.json](samples/sample_assiduite_justificatifs.json.md)
#### **assiduites[-query]**
@ -1693,6 +1764,9 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* `formsemestre_id` (X : id du formsemestre)
* `est_just` (v,t,f,vrai,faux,true,false)
* `user_id` (X : id de l'utilisateur)
* `order` (retour ordoné par date de début décroisante)
* `courant` (retour restreint à l'année courante)
* `with_justifs` (ajoute un champs "justificatifs" aux assiduités)
* **Routes:**
* `/assiduites/<int:etudid>`
* `/assiduites/<int:etudid>/query?`
@ -1726,6 +1800,8 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* `est_just` (v,t,f,vrai,faux,true,false)
* `user_id` (X : id de l'utilisateur)
* `metric` ('compte', 'demi', 'journee', 'heure')
* `courant` (retour restreint à l'année courante)
* `split` (compte pour chaque état séparément)
* **Routes:**
* `/assiduites/<int:etudid>/count`
* `/assiduites/<int:etudid>/count/query?`
@ -1755,6 +1831,9 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* `date_fin` (X : date format ISO)
* `est_just` (v,t,f,vrai,faux,true,false)
* `user_id` (X : id de l'utilisateur)
* `order` (retour ordoné par date de début décroisante)
* `courant` (retour restreint à l'année courante)
* `with_justifs` (ajoute un champs "justificatifs" aux assiduités)
* **Routes:**
* `/assiduites/formsemestre/<int:formsemestre_id>`
* `/assiduites/formsemestre/<int:formsemestre_id>/query?`
@ -1777,6 +1856,9 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* `date_fin` (X : date format ISO)
* `est_just` (v,t,f,vrai,faux,true,false)
* `user_id` (X : id de l'utilisateur)
* `metric` ('all', 'compte', 'heure', 'journee', 'demi')
* `courant` (retour restreint à l'année courante)
* `split` (compte pour chaque état séparément)
* **Routes:**
* `/assiduites/formsemestre/<int:formsemestre_id>/count`
* `/assiduites/formsemestre/<int:formsemestre_id>/count/query?`
@ -1799,6 +1881,9 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* `date_fin` (X : date format ISO)
* `est_just` (v,t,f,vrai,faux,true,false)
* `user_id` (X : id de l'utilisateur)
* `order` (retour ordoné par date de début décroisante)
* `courant` (retour restreint à l'année courante)
* `with_justifs` (ajoute un champs "justificatifs" aux assiduités)
* **Routes:**
* `/assiduites/group/query?etudids=`
* **Exemple d'utilisation:**
@ -1813,20 +1898,18 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
etudid3 : [{assiduité...}],
}
```
* **Exemple de résultat:** [assiduites-group.json](samples/sample_assiduites_group.json.md)
#### **assiduites-create**
* **Méthode:** POST
* **Permission: `ScoAbsChange`**
* **Permission: `AbsChange`**
* **Data:**
```json
[
{
"etudid":<int>,
"date_debut": <string>,
"date_fin": <string>,
"etat": <string>,
"moduleimpl_id"?: <int>,
"desc"?:<string>,
@ -1842,12 +1925,13 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
> `[{"date_debut": "2022-10-27T08:00","date_fin": "2022-10-27T10:00","etat": "absent","etudid":1}]`
* **Résultat:** Retourne un objet en deux parties (errors et success) contenant le retour de chaque objet donné dans la requête POST.
* **Exemple de résultat:** [assiduites-create.json](samples/sample_assiduites_create.json.md)
#### **assiduite-create**
* **Méthode:** POST
* **Permission: `ScoAbsChange`**
* **Permission: `AbsChange`**
* **Paramètres:**
* `etudid`
* `nip`
@ -1857,8 +1941,6 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
```json
[
{
"date_debut": <string>,
"date_fin": <string>,
"etat": <string>,
"moduleimpl_id"?: <int>,
"desc"?:<string>
@ -1882,7 +1964,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
#### **assiduite-edit**
* **Méthode:** POST
* **Permission: `ScoAbsChange`**
* **Permission: `AbsChange`**
* **Paramètres:** `assiduite_id`
* **Data:**
@ -1899,15 +1981,13 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
> `{"etat": "absent"}`
* **Résultat:** Modifie l'assiduité désignée. Renvoie une erreur si la
modification rend incompatible la plage de l'assiduité par rapport aux autres
assiduités du même étudiant.
* **Résultat:** Modifie l'assiduité désignée.
* **Exemple de résultat:** [assiduite_edit.json](samples/sample_assiduite_edit.json.md)
#### **assiduites-edit**
* **Méthode:** POST
* **Permission: `ScoAbsChange`**
* **Permission: `AbsChange`**
* **Data:**
```json
@ -1933,7 +2013,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
#### **assiduite-delete**
* **Méthode:** POST
* **Permission: `ScoAbsChange`**
* **Permission: `AbsChange`**
* **Data:**
```json
@ -1954,18 +2034,19 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
#### Structure Justificatif
| attribut | type | commentaire |
| :----------- | :------------- | :------------------------------------------------------------ |
| *justif_id* | int | identifiant unique |
| *etudid* | int | identifiant unique de l'étudiant concerné par le justificatif |
| *date_debut* | string | date ISO du début de la période du justificatif |
| *date_fin* | string | date ISO de la fin de la période du justificatif |
| *etat* | string | état du justificatif ( attente, valide, non_valide, modifie) |
| *raison* | string ou null | explication du justificatif si présente |
| *fichier* | string | identifiant de l'archivage des fichiers |
| *user_id* | int or null | id de l'utilisateur ayant créé le justificatif |
| *user_name* | str ou null | login de l'utilisateur ayant créé le justificatif |
| *entry_date* | string | date ISO de l'entrée du justificatif |
| attribut | type | commentaire |
| :-------------- | :------------- | :------------------------------------------------------------ |
| *justif_id* | int | identifiant unique |
| *etudid* | int | identifiant unique de l'étudiant concerné par le justificatif |
| *date_debut* | string | date ISO du début de la période du justificatif |
| *date_fin* | string | date ISO de la fin de la période du justificatif |
| *etat* | string | état du justificatif ( attente, valide, non_valide, modifie) |
| *raison* | string ou null | explication du justificatif si présente |
| *fichier* | string | identifiant de l'archivage des fichiers |
| *user_id* | int or null | id de l'utilisateur ayant créé le justificatif |
| *user_name* | str ou null | login de l'utilisateur ayant créé le justificatif |
| *entry_date* | string | date ISO de l'entrée du justificatif |
| *external_data* | objet ou null | un objet décrivant des actions non utilisée par ScoDoc |
#### **justificatif**
@ -1989,6 +2070,11 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* `etat` ( attente, valide, non_valide, modifie)
* `date_debut` (X : date format ISO)
* `date_fin` (X : date format ISO)
* `user_id` (X : l'id de l'utilisateur ayant créé l'objet)
* `formsemestre_id` (X: l'id d'un formsemestre. restreint aux date du semestre)
* `order` (retoure les justificatifs par ordre décroissant de date_debut)
* `courant` (restreint aux justificatifs de l'année courante)
* `group_id` (X : id du groupe, restreint aux justificatifs d'un group d'étudiant)
* **Routes:**
* `/justificatifs/<int:etudid>`
* `/justificatifs/<int:etudid>/query`
@ -2005,10 +2091,62 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* **Résultat:** Liste de toutes les objets justificatifs qui correspondent aux critères sélectionnés
* **Exemple de résultat:** [justificatifs.json](samples/sample_justificatifs.json.md)
#### **justificatifs-dept[-query]**
* **Méthode:** GET
* **Permission: `ScoView`**
* **Paramètres:**
* `dept_id`
* **Query string:**
* `etat` ( attente, valide, non_valide, modifie)
* `date_debut` (X : date format ISO)
* `date_fin` (X : date format ISO)
* `user_id` (X : l'id de l'utilisateur ayant créé l'objet)
* `formsemestre_id` (X: l'id d'un formsemestre. restreint aux date du semestre)
* `order` (retoure les justificatifs par ordre décroissant de date_debut)
* `courant` (restreint aux justificatifs de l'année courante)
* `group_id` (X : id du groupe, restreint aux justificatifs d'un group d'étudiant)
* **Routes:**
* `/justificatifs/dept/<int:dept_id>`
* `/justificatifs/dept/<int:dept_id>/query`
* **Exemple d'utilisation:**
* `/api/justificatifs/dept/3`
* `/api/justificatifs/dept/3/query?etat=valide&courant`
* **Résultat:** Liste de toutes les objets justificatifs du département donné qui correspondent aux critères sélectionnés
* **Exemple de résultat:** [justificatifs-dept.json](samples/sample_justificatifs_dept.json.md)
#### **justificatifs-formsemestre[-query]**
* **Méthode:** GET
* **Permission: `ScoView`**
* **Paramètres:**
* `formsemestre_id`
* **Query string:**
* `etat` ( attente, valide, non_valide, modifie)
* `date_debut` (X : date format ISO)
* `date_fin` (X : date format ISO)
* `user_id` (X : l'id de l'utilisateur ayant créé l'objet)
* `formsemestre_id` (X: l'id d'un formsemestre. restreint aux date du semestre)
* `order` (retoure les justificatifs par ordre décroissant de date_debut)
* `courant` (restreint aux justificatifs de l'année courante)
* `group_id` (X : id du groupe, restreint aux justificatifs d'un group d'étudiant)
* **Routes:**
* `/justificatifs/formsemestre/<int:formsemestre_id>`
* `/justificatifs/formsemestre/<int:formsemestre_id>/query`
* **Exemple d'utilisation:**
* `/api/justificatifs/formsemestre/3`
* `/api/justificatifs/formsemestre/3/query?etat=valide&courant`
* **Résultat:** Liste de toutes les objets justificatifs du formsemestre donné qui correspondent aux critères sélectionnés
* **Exemple de résultat:** [justificatifs-formsemestre.json](samples/sample_justificatifs_formsemestre.json.md)
#### **justificatif-create**
* **Méthode:** POST
* **Permission: `ScoAbsChange`**
* **Permission: `AbsChange`**
* **Paramètres:**
* `etudid`
* `nip`
@ -2054,7 +2192,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
#### **justificatif-edit**
* **Méthode:** POST
* **Permission: `ScoAbsChange`**
* **Permission: `AbsChange`**
* **Paramètres:** `justif_id`
* **Data:**
@ -2078,7 +2216,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
#### **justificatif-delete**
* **Méthode:** POST
* **Permission: `ScoAbsChange`**
* **Permission: `AbsChange`**
* **Data:**
```json
@ -2103,7 +2241,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
#### **justificatif-import**
* **Méthode:** POST
* **Permission: `ScoAbsChange`**
* **Permission: `AbsChange`**
* **Paramètres:** `justif_id`
> Procédure d'importation de fichier : [importer un justificatif](FichiersJustificatifs.md#importer-un-fichier)
@ -2116,7 +2254,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
#### **justificatif-export**
* **Méthode:** POST
* **Permission: `ScoAbsChange`**
* **Permission: `ScoView`**
* **Paramètres:**
* `justif_id`
* `filename`
@ -2131,7 +2269,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
#### **justificatif-remove**
* **Méthode:** POST
* **Permission: `ScoAbsChange`**
* **Permission: `AbsChange`**
* **Paramètres:** `justif_id`
> Procédure de suppression de fichier : [supprimer un justificatif](FichiersJustificatifs.md#supprimer-un-fichier)
@ -2144,9 +2282,9 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
#### **justificatif-list**
* **Méthode:** GET
* **Permission: `ScoView` / `ScoJustifView`**
* **Permission: `ScoView` / `AbsJustifView`**
* Si `ScoView` : retourne uniquement les fichiers fourni par le même utilisateur
* Si `ScoJustifView` : retourne tous les fichiers
* Si `AbsJustifView` : retourne tous les fichiers
* **Paramètres:** `justif_id`
* **Routes:** `/justificatif/<int:justif_id>/list`
* **Exemple d'utilisation:** `/api/justificatif/1/list`

View File

@ -1,55 +1,60 @@
# Récapitulatif des opérations en fin de semestre (et début du suivant)
Cette page récapitule les opérations typiquement effectuées par un chef de
département en IUT à la fin d'un semestre. Selon les cas, certaines opérations
peuvent être effectuées par les directeurs des études. La plupart des étapes
mentionnées ici sont aussi applicables pour d'autres types de formation.
Cette page récapitule les opérations typiquement effectuées par le ou la
responsable de formation (par ex. une cheffe de département en IUT) à la fin
d'un semestre. Selon les cas, certaines opérations peuvent être effectuées par
les directeurs des études.
Voir aussi le [Guide pour la cheffe ou le chef de
département](GuideAdminFormation.md).
Voir aussi le [Guide pour la cheffe ou le chef de département](GuideAdminFormation.md).
## À la fin d'un semestre
1. Vérifier que les réglages de votre semestre correspondent bien à ce que vous
voulez. En particulier, les options comme *proposer compensation* et *jurys
avec semestres décalés* (accessibles via *Modifier le semestre*, voir
figure).
![reglages-semestres-check.png](screens/reglages-semestres-check.png)
1. Vérifier que les réglages de votre semestre correspondent bien à ce que vous
voulez. En particulier, surtout pour les DUT, les options comme *proposer
compensation* et *jurys avec semestres décalés* (accessibles via *Modifier
le semestre*, voir figure).
![reglages-semestres-check.png](screens/reglages-semestres-check.png)
2. Vérifier que le cursus choisi est correct (menu *Semestre* / *Voir la
formation*): ainsi, le parcours affiché doit être "DUT selon l'arrêté d'août
2005" pour le DUT.
2. Vérifier que la formation (menu **Semestre / Voir la formation**) est
correcte et, s'il y a des messages d'avertissement dans la formation ou sur
le tableau de bord du semestre, que vous les avez pris en compte ou
comprenez la situation.
3. Vérifier que toutes les notes ont été saisies: regarder le tableau de bord,
qui affiche dans chaque module les évaluations et indique si des notes
manquent ou sont en attente.
3. Vérifier que toutes les notes ont été saisies: regarder le tableau de bord,
qui affiche dans chaque module les évaluations et indique si des notes
manquent ou sont en attente. Le tenue d'un jury exige que toutes les notes
sont à jour.
4. (optionnel) Vérifier les absences si cela n'a pas déjà été fait. Dans le
menu *Semestre* du tableau de bord, suivre *Vérifier les absences aux
évaluations*.
Attention, actuellement ScoDoc enregistre les absences par demi-journées, ce
qui fait qu'un étudiant peut être noté absent alors qu'il a assisté à un
examen sur une partie de la demi-journée et sèché le cours suivant.
4. (optionnel) En BUT, sur un semestre impair (S1, S3, S5), si les étudiants ont
déjà commencé le semestre suivant (par exemple si le S2 a commencé avant que
le jury de S1 ait été enregistré), prendre soin de bloquer la prise en compte
des moyennes du semestre pair: sur celui là, via **Semestre / Modifier le
semestre**, cocher *empêcher le calcul des moyennes d'UE*. Sinon, les
décisions annuelles BUT seraient calculées !
5. Réunir la commission (ou le jury):
5. (optionnel) Vérifier les absences si cela n'a pas déjà été fait. Dans le
menu *Semestre* du tableau de bord, suivre *Vérifier les absences aux
évaluations*.
a. Il peut être utile de préparer des documents pour les membres de la
commission: suivre *Générer feuille préparation Jury* dans le menu *Jury*.
6. Réunir la commission (ou le jury):
b. Durant la commission, nous recommandons de saisir en temps réel les
décisions (menu *Jury / Saisie des décisions*). **Pour éviter que les
étudiants n'aient accès aux décisions pendant le jury, décocher l'option
*publier le bulletin sur le portail* ** (menu *Semestre / Options du
semestre*).
a. Il peut être utile de préparer des documents pour les membres de la
commission: suivre *Générer feuille préparation Jury* dans le menu *Jury*.
6. Édition du procès-verbal: menu *Jury / Voir les décisions du jury*.
b. Durant la commission, nous recommandons de saisir en temps réel les
décisions (menu *Jury / Saisie des décisions*). **Pour éviter que les
étudiants n'aient accès aux décisions pendant le jury, décocher l'option
*publier le bulletin sur la passerelle* ** (menu *Semestre / Options du
semestre*).
1. En bas de la page, un lien *Courriers individuels (classeur pdf)* permet
de générer les courriers à adresser aux étudiants (penser à vérifier
leurs adresses postales au préalable sur leurs fiches).
7. Édition du procès-verbal: menu *Jury / Voir les décisions du jury*.
2. Le lien *PV officiel (pdf)* permet de générer le procès verbal avec la
liste des décisions pour chaque étudiant.
a. En bas de la page, un lien *Courriers individuels (classeur pdf)* permet
de générer les courriers à adresser aux étudiants (penser à vérifier
leurs adresses postales au préalable sur leurs fiches).
b. Le lien *PV officiel (pdf)* permet de générer le procès verbal avec la
liste des décisions pour chaque étudiant.
A ce stade, le semestre est terminé. Il est recommandé de le **verrouiller**
après les prises de décisions définitives.
@ -59,11 +64,11 @@ après les prises de décisions définitives.
1. **Créer une instance du semestre suivant** (par exemple un S2 après un S1).
Pour cela, aller sur la page *Programmes*, choisir la formation (rappelons
que ScoDoc appelle "formation" la définition d'un programme pédagogique) et
suivre le lien *UE, modules, semestres*.
suivre le lien *UE, modules, semestres*.
2. En bas de la page qui détaille le programme, suivre le lien *Mettre en place
un nouveau semestre de formation* et remplissez le formulaire.
Une autre approche, souvent plus rapide, consiste à créer un semestre en
utilisant un semestre existant comme modèle: on reprend la même liste de
modules; pour cela, se placer sur le semestre modèle, et utiliser le menu **
@ -74,14 +79,14 @@ après les prises de décisions définitives.
doit commencer quelques jours (ou semaines) après le précédent !)
2. Désignez le responsable (directeur des études en DUT).
3. Si vous êtes interfacé à Apogée (via un portail), indiquez le code étape
Apogée correspondant à votre nouveau semestre.
4. Cocher les modules de votre semestre, et associez leur un enseignant
responsable (ce dernier pourra créer des évaluations dans ce module et
déclarer des collègues pouvant saisir les notes).
5. Après relecture, cliquez sur le bouton *Créer ce semestre de formation*.
NB: toutes ces informations pourront être ultérieurement modifiées via le lien *Semestre / Modifer le semestre* du tableau de bord.
@ -114,10 +119,10 @@ C'est prêt. Les enseignants autorisés peuvent créer des évaluations et saisi
## Problèmes couramment rencontrés
- **Etudiants en doubles**: ceci arrive lorsqu'on crée manuellement les
- **Etudiants en double**: ceci arrive lorsqu'on crée manuellement les
étudiants. Il faut absolument éviter de créer un étudiant qui existe déjà,
sinon on perd la possibilité de suivre le parcours de chacun. Le respect de la
procédure ci-dessus garanti normalement que les étudiants restent uniques.
procédure ci-dessus garanti que les étudiants restent uniques.
N'utiliser *créer un nouvel étudiant* qu'après vous être assuré qu'il n'était
pas déjà inscrit dans un autre semestre, et que l'on sait que l'on ne va pas
l'importer depuis Apogée.
@ -138,5 +143,6 @@ Pour toute question, n'hésitez pas à nous contacter ([contacts](Contact.md)).
- [Vérifier les codes NIP](VerifCodeNIP.md)
- [Guide pour le ou la responsable de formation](GuideAdminFormation.md)
- [Les jurys de BUT](BUTJurys.md)
- [FAQ](FAQ.md)
- [Contacts](Contact.md)
- [Contacts](Contact.md)

View File

@ -34,11 +34,11 @@ retourner à `Emmanuel.Viennet at gmail.com`.
## Présentation générale
- [Présentation générale du logiciel avec copies d'écran](PresentationGenerale.md)
- [Les principaux objets de ScoDoc](IntroObjetsScoDoc.md)
- Quelques <a href="https://www.youtube.com/playlist?list=PLw49h6RbvswhasBk9bXj7PzOD8GDW3kG1" target="_blank">vidéos d'introduction sur YouTube <img src="/img/tube.png" alt="" style="margin-top:0px; margin-bottom:0px; border-width:0px;"/></a>
- très ancienne présentation au colloque du [CRI-IUT](https://www.criiut.fr/) en 2013: [diapos en pdf](papers/presScoDocCRIIUT2013.pdf)
- Un très très ancien [article sur ScoDoc](papers/scodoc-reunion2007.pdf)
- Un *très* très ancien [article sur ScoDoc](papers/scodoc-reunion2007.pdf)
## Communauté d'utilisateurs
@ -48,6 +48,12 @@ retourner à `Emmanuel.Viennet at gmail.com`.
## Actualités
### Mars 2024
La série **9.6.x** continue son développement, avec une gestion de l'assiduité
toujours plus facile à utiliser, un nouveau module de génération des résultats
pour les poursuites d'études, et de nombreuses améliorations.
### Septembre 2023: parution de ScoDoc 9.6.x pour Debian 12
**9.6.x** est la version en production de ScoDoc. Y sont régulièrement intégrées
@ -133,7 +139,7 @@ d'emplois du temps des universités, notamment pour faciliter le suivi de
l'assiduité (lien emplois du temps / module ScoDoc).
Les anciennes versions de ScoDoc :
- ScoDoc 9.5 : printemps 2023 (*fin de vie octobre 2023*)
- Nouveau système de suivi de l'assiduité (absences, présences)
@ -168,11 +174,11 @@ Les anciennes versions de ScoDoc :
- ScoDoc 9.0 : publiée le 19 sept. 2021, version complètement remaniée en
Python 3/Flask.
<br>
<br>
!!! note "Voir aussi"
- [Guide utilisateur](GuideUtilisateur.md)
- <a href="https://www.youtube.com/playlist?list=PLw49h6RbvswhasBk9bXj7PzOD8GDW3kG1" target="_blank">Tutoriels sur YouTube <img src="/img/tube.png" alt="" style="margin-top:0px; margin-bottom:0px; border-width:0px;"/></a>
- [Contacts](Contact.md).

View File

@ -1,18 +1,22 @@
### assiduite
#### GET /assiduite/1
```json
{
"assiduite_id": 1,
"date_debut": "2022-09-25T08:00:00+0200",
"date_fin": "2022-09-25T08:00:00+0200",
"desc": null,
"entry_date": "2023-07-28T11:13:45+0200",
"est_just": false,
"etat": "PRESENT",
"etudid": 1,
"moduleimpl_id": 8,
"user_id": null
"assiduite_id": 1,
"code_nip": "1",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"desc": null,
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"est_just": false,
"etat": "PRESENT",
"etudid": 1,
"external_data": null,
"moduleimpl_id": 12,
"user_id": null,
"user_name": null,
"user_nom_complet": null
}
```

View File

@ -1,21 +1,38 @@
### assiduite_create
#### POST /assiduite/1/create
> `Content-Type: application/json`
>
> `[{"date_debut": "2022-10-27T08:00","date_fin": "2022-10-27T10:00","etat": "absent"}]`
>
> `[{"date_debut": "2023-10-27T08:00","date_fin": "2023-10-27T10:00","etat": "absent"}]`
```json
{
"errors": [],
"success": [
{
"indice": 0,
"message": {
"assiduite_id": 60
}
}
]
"errors": [
{
"indice": 0,
"message": "Duplication: la p\u00e9riode rentre en conflit avec une plage enregistr\u00e9e"
}
],
"success": []
}
```
#### POST /assiduite/1/create
> `Content-Type: application/json`
>
> `[{"date_debut": "2023-10-27T08:00","date_fin": "2023-10-27T10:00","etat": "absent"}]`
```json
{
"errors": [],
"success": [
{
"indice": 0,
"message": {
"assiduite_id": 49
}
}
]
}
```

View File

@ -1,28 +1,28 @@
### assiduite_delete
#### POST /assiduite/delete
> `Content-Type: application/json`
>
>
> `[2,2,3]`
```json
{
"errors": [
{
"indice": 1,
"message": "Assiduite non existante"
}
],
"success": [
{
"indice": 0,
"message": "OK"
},
{
"indice": 2,
"message": "OK"
}
]
"errors": [
{
"indice": 1,
"message": "Assiduite non existante"
}
],
"success": [
{
"indice": 0,
"message": "OK"
},
{
"indice": 2,
"message": "OK"
}
]
}
```

View File

@ -1,37 +1,35 @@
### assiduite_edit
#### POST /assiduite/1/edit
> `Content-Type: application/json`
>
> `{"moduleimpl_id":2}`
```json
{
"OK": true
}
```
#### POST /assiduite/1/edit
> `Content-Type: application/json`
>
>
> `{"etat": "retard","moduleimpl_id":3}`
```json
{
"OK": true
"OK": true
}
```
#### POST /assiduite/1/edit
> `Content-Type: application/json`
>
>
> `{"moduleimpl_id":2}`
```json
{
"OK": true
}
```
#### POST /assiduite/1/edit
> `Content-Type: application/json`
>
> `{"etat":"absent"}`
```json
{
"OK": true
"OK": true
}
```

View File

@ -0,0 +1,32 @@
### assiduite_justificatifs
#### GET /assiduite/1/justificatifs
```json
[
1,
"..."
]
```
#### GET /assiduite/1/justificatifs/long
```json
[
{
"code_nip": "1",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"etat": "MODIFIE",
"etudid": 1,
"external_data": null,
"fichier": null,
"justif_id": 1,
"raison": null,
"user_id": null,
"user_name": null,
"user_nom_complet": null
},
"..."
]
```

View File

@ -1,71 +1,79 @@
### assiduites
#### GET /assiduites/1
```json
[
{
"assiduite_id": 1,
"date_debut": "2022-09-25T08:00:00+0200",
"date_fin": "2022-09-25T08:00:00+0200",
"desc": null,
"entry_date": "2023-07-28T11:13:45+0200",
"est_just": false,
"etat": "PRESENT",
"etudid": 1,
"moduleimpl_id": 8,
"user_id": null
},
{
"assiduite_id": 2,
"date_debut": "2022-09-26T08:00:00+0200",
"date_fin": "2022-09-26T09:00:00+0200",
"desc": null,
"entry_date": "2023-07-28T11:13:45+0200",
"est_just": false,
"etat": "RETARD",
"etudid": 1,
"moduleimpl_id": 13,
"user_id": null
},
"..."
{
"assiduite_id": 1,
"code_nip": "1",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"desc": null,
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"est_just": false,
"etat": "PRESENT",
"etudid": 1,
"external_data": null,
"moduleimpl_id": 12,
"user_id": null,
"user_name": null,
"user_nom_complet": null
},
"..."
]
```
#### GET /assiduites/1/query?etat=retard
```json
[
{
"assiduite_id": 2,
"date_debut": "2022-09-26T08:00:00+0200",
"date_fin": "2022-09-26T09:00:00+0200",
"desc": null,
"entry_date": "2023-07-28T11:13:45+0200",
"est_just": false,
"etat": "RETARD",
"etudid": 1,
"moduleimpl_id": 13,
"user_id": null
},
{
"assiduite_id": 3,
"date_debut": "2022-09-27T08:00:00+0200",
"date_fin": "2022-09-27T10:00:00+0200",
"desc": null,
"entry_date": "2023-07-28T11:13:45+0200",
"est_just": false,
"etat": "RETARD",
"etudid": 1,
"moduleimpl_id": 14,
"user_id": null
},
"..."
"..."
]
```
#### GET /assiduites/1/query?moduleimpl_id=1
```json
["..."]
[
"..."
]
```
#### GET /assiduites/1/query?with_justifs=
```json
[
{
"assiduite_id": 1,
"code_nip": "1",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"desc": null,
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"est_just": false,
"etat": "PRESENT",
"etudid": 1,
"external_data": null,
"justificatifs": [
{
"code_nip": "1",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"etat": "MODIFIE",
"etudid": 1,
"external_data": null,
"fichier": null,
"justif_id": 1,
"raison": null,
"user_id": null,
"user_name": null,
"user_nom_complet": null
}
],
"moduleimpl_id": 12,
"user_id": null,
"user_name": null,
"user_nom_complet": null
},
"..."
]
```

View File

@ -1,32 +1,84 @@
### assiduites_count
#### GET /assiduites/1/count
```json
{
"compte": 4,
"demi": 3,
"heure": 6.0,
"journee": 4
"compte": 1,
"demi": 0,
"heure": 0.0,
"journee": 1
}
```
#### GET /assiduites/1/count/query?etat=present,retard&metric=compte,heure
```json
{
"compte": 4,
"heure": 6.0
"compte": 1,
"heure": 0.0
}
```
#### GET /assiduites/1/count/query?etat=retard
```json
{
"compte": 3,
"demi": 3,
"heure": 6.0,
"journee": 3
"compte": 0,
"demi": 0,
"heure": 0,
"journee": 0
}
```
#### GET /assiduites/1/count/query?split
```json
{
"absent": {
"compte": 0,
"demi": 0,
"heure": 0,
"journee": 0,
"justifie": {
"compte": 0,
"demi": 0,
"heure": 0,
"journee": 0
},
"non_justifie": {
"compte": 0,
"demi": 0,
"heure": 0,
"journee": 0
}
},
"present": {
"compte": 1,
"demi": 0,
"heure": 0.0,
"journee": 1
},
"retard": {
"compte": 0,
"demi": 0,
"heure": 0,
"journee": 0,
"justifie": {
"compte": 0,
"demi": 0,
"heure": 0,
"journee": 0
},
"non_justifie": {
"compte": 0,
"demi": 0,
"heure": 0,
"journee": 0
}
},
"total": {
"compte": 1,
"demi": 0,
"heure": 0.0,
"journee": 1
}
}
```

View File

@ -0,0 +1,38 @@
### assiduites_create
#### POST /assiduites/create
> `Content-Type: application/json`
>
> `[{"etudid":-1,"date_debut": "2023-10-26T08:00","date_fin": "2023-10-26T10:00","etat": "absent"}]`
```json
{
"errors": [
{
"indice": 0,
"message": "Cet \u00e9tudiant n'existe pas."
}
],
"success": []
}
```
#### POST /assiduites/create
> `Content-Type: application/json`
>
> `[{"etudid":1,"date_debut": "2023-10-26T08:00","date_fin": "2023-10-26T10:00","etat": "absent"}]`
```json
{
"errors": [],
"success": [
{
"indice": 0,
"message": {
"assiduite_id": 50
}
}
]
}
```

View File

@ -1,73 +1,119 @@
### assiduites_formsemestre
#### GET /assiduites/formsemestre/1
```json
[
{
"assiduite_id": 1,
"date_debut": "2022-09-25T08:00:00+0200",
"date_fin": "2022-09-25T08:00:00+0200",
"desc": null,
"entry_date": "2023-07-28T11:13:45+0200",
"est_just": false,
"etat": "PRESENT",
"etudid": 1,
"moduleimpl_id": 8,
"user_id": null
},
{
"assiduite_id": 2,
"date_debut": "2022-09-26T08:00:00+0200",
"date_fin": "2022-09-26T09:00:00+0200",
"desc": null,
"entry_date": "2023-07-28T11:13:45+0200",
"est_just": false,
"etat": "RETARD",
"etudid": 1,
"moduleimpl_id": 13,
"user_id": null
},
"..."
{
"assiduite_id": 1,
"code_nip": "1",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"desc": null,
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"est_just": false,
"etat": "PRESENT",
"etudid": 1,
"external_data": null,
"moduleimpl_id": 12,
"user_id": null,
"user_name": null,
"user_nom_complet": null
},
{
"assiduite_id": 2,
"code_nip": "NIP2",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"desc": null,
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"est_just": false,
"etat": "RETARD",
"etudid": 2,
"external_data": null,
"moduleimpl_id": 4,
"user_id": null,
"user_name": null,
"user_nom_complet": null
},
"..."
]
```
#### GET /assiduites/formsemestre/1/query?etat=retard
```json
[
{
"assiduite_id": 2,
"date_debut": "2022-09-26T08:00:00+0200",
"date_fin": "2022-09-26T09:00:00+0200",
"desc": null,
"entry_date": "2023-07-28T11:13:45+0200",
"est_just": false,
"etat": "RETARD",
"etudid": 1,
"moduleimpl_id": 13,
"user_id": null
},
"..."
{
"assiduite_id": 2,
"code_nip": "NIP2",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"desc": null,
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"est_just": false,
"etat": "RETARD",
"etudid": 2,
"external_data": null,
"moduleimpl_id": 4,
"user_id": null,
"user_name": null,
"user_nom_complet": null
},
{
"assiduite_id": 7,
"code_nip": "NIP4",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"desc": null,
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"est_just": false,
"etat": "RETARD",
"etudid": 4,
"external_data": null,
"moduleimpl_id": 6,
"user_id": null,
"user_name": null,
"user_nom_complet": null
},
"..."
]
```
#### GET /assiduites/formsemestre/1/query?moduleimpl_id=1
```json
[
{
"assiduite_id": 3,
"date_debut": "2022-09-27T08:00:00+0200",
"date_fin": "2022-09-27T08:00:00+0200",
"desc": null,
"entry_date": "2023-07-28T11:13:45+0200",
"est_just": false,
"etat": "PRESENT",
"etudid": 1,
"moduleimpl_id": 1,
"user_id": null
},
"..."
{
"assiduite_id": 27,
"code_nip": "NIP10",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"desc": null,
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"est_just": false,
"etat": "PRESENT",
"etudid": 10,
"external_data": null,
"moduleimpl_id": 1,
"user_id": null,
"user_name": null,
"user_nom_complet": null
},
{
"assiduite_id": 43,
"code_nip": "NIP14",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"desc": null,
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"est_just": false,
"etat": "RETARD",
"etudid": 14,
"external_data": null,
"moduleimpl_id": 1,
"user_id": null,
"user_name": null,
"user_nom_complet": null
},
"..."
]
```

View File

@ -1,32 +1,30 @@
### assiduites_formsemestre_count
#### GET /assiduites/formsemestre/1/count
```json
{
"compte": 0,
"demi": 0,
"heure": 0.0,
"journee": 0
"compte": 48,
"demi": 14,
"heure": 65.0,
"journee": 18
}
```
#### GET /assiduites/formsemestre/1/count/query?etat=present,retard&metric=compte,heure
```json
{
"compte": 0,
"heure": 0.0
"compte": 29,
"heure": 35.0
}
```
#### GET /assiduites/formsemestre/1/count/query?etat=retard
```json
{
"compte": 0,
"demi": 0,
"heure": 0.0,
"journee": 0
"compte": 14,
"demi": 8,
"heure": 19.0,
"journee": 11
}
```

View File

@ -0,0 +1,62 @@
### assiduites_group
#### GET /assiduites/group/query?etudids=1,2,3
```json
{
"1": [
{
"assiduite_id": 1,
"code_nip": "1",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"desc": null,
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"est_just": false,
"etat": "PRESENT",
"etudid": 1,
"external_data": null,
"moduleimpl_id": 12,
"user_id": null,
"user_name": null,
"user_nom_complet": null
}
],
"2": [
{
"assiduite_id": 2,
"code_nip": "NIP2",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"desc": null,
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"est_just": false,
"etat": "RETARD",
"etudid": 2,
"external_data": null,
"moduleimpl_id": 4,
"user_id": null,
"user_name": null,
"user_nom_complet": null
}
],
"3": [
{
"assiduite_id": 3,
"code_nip": "3",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"desc": null,
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"est_just": false,
"etat": "PRESENT",
"etudid": 3,
"external_data": null,
"moduleimpl_id": 18,
"user_id": null,
"user_name": null,
"user_nom_complet": null
}
]
}
```

View File

@ -47,6 +47,15 @@
"villedomicile": null
}
],
"annotations": [
{
"date": "2024-02-10T18:40:04.114300+01:00",
"id": 5,
"comment": "Ceci est une annotation.",
"author": "admin",
"etudid": 11
}
],
"boursier": null,
"civilite": "F",
"civilite_etat_civil": "X",
@ -120,6 +129,15 @@
"villedomicile": null
}
],
"annotations": [
{
"date": "2024-02-10T18:40:04.114300+01:00",
"id": 5,
"comment": "Ceci est une annotation.",
"author": "admin",
"etudid": 11
}
],
"boursier": null,
"civilite": "F",
"civilite_etat_civil": "X",
@ -193,6 +211,15 @@
"villedomicile": null
}
],
"annotations": [
{
"date": "2024-02-10T18:40:04.114300+01:00",
"id": 5,
"comment": "Ceci est une annotation.",
"author": "admin",
"etudid": 11
}
],
"boursier": null,
"civilite": "F",
"civilite_etat_civil": "X",

View File

@ -48,6 +48,15 @@
"villedomicile": null
}
],
"annotations": [
{
"date": "2024-02-10T18:40:04.114300+01:00",
"id": 5,
"comment": "Ceci est une annotation.",
"author": "admin",
"etudid": 11
}
],
"boursier": null,
"civilite": "F",
"civilite_etat_civil": "X",
@ -124,6 +133,15 @@
"villedomicile": null
}
],
"annotations": [
{
"date": "2024-02-10T18:40:04.114300+01:00",
"id": 5,
"comment": "Ceci est une annotation.",
"author": "admin",
"etudid": 11
}
],
"boursier": null,
"civilite": "F",
"civilite_etat_civil": "X",
@ -200,6 +218,15 @@
"villedomicile": null
}
],
"annotations": [
{
"date": "2024-02-10T18:40:04.114300+01:00",
"id": 5,
"comment": "Ceci est une annotation.",
"author": "admin",
"etudid": 11
}
],
"boursier": null,
"civilite": "F",
"civilite_etat_civil": "X",

View File

@ -87,6 +87,22 @@
"villedomicile": null
}
],
"annotations": [
{
"date": "2024-02-10T12:16:04.336100+01:00",
"id": 2,
"comment": "Une deuxième annotation.",
"author": "admin",
"etudid": 1
},
{
"date": "2024-02-10T12:14:34.243300+01:00",
"id": 1,
"comment": "Une annotation.",
"author": "admin",
"etudid": 1
}
],
"boursier": null,
"civilite": "X",
"civilite_etat_civil": "X",
@ -156,6 +172,7 @@
"villedomicile": null
}
],
"annotation": [],
"boursier": null,
"civilite": "F",
"civilite_etat_civil": "X",

View File

@ -1,6 +1,7 @@
### formsemestre-etat_evals
#### GET /formsemestre/1/etat_evals
```json
[
{
@ -39,104 +40,6 @@
],
"formsemestre_id": 1,
"id": 1,
"module": {
"abbrev": "Init aux r\u00e9seaux informatiques",
"app_critiques": {},
"code": "R101",
"code_apogee": "",
"coefficient": 1.0,
"ects": null,
"formation_id": 1,
"heures_cours": 0.0,
"heures_td": 0.0,
"heures_tp": 0.0,
"id": 1,
"matiere_id": 1,
"module_id": 1,
"module_type": 2,
"numero": 10,
"parcours": [],
"semestre_id": 1,
"titre": "Initiation aux r\u00e9seaux informatiques",
"ue_coefs": [
{
"coef": 12.0,
"module_id": 1,
"ue": {
"acronyme": "RT1.1",
"code_apogee": "",
"coef_rcue": 1.0,
"coefficient": 0.0,
"color": "#B80004",
"ects": 12.0,
"formation_id": 1,
"id": 1,
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
"type": 0,
"ue_code": "UCOD11",
"ue_id": 1
},
"ue_id": 1
},
{
"coef": 4.0,
"module_id": 1,
"ue": {
"acronyme": "RT2.1",
"code_apogee": "",
"coef_rcue": 1.0,
"coefficient": 0.0,
"color": "#F97B3D",
"ects": 8.0,
"formation_id": 1,
"id": 2,
"is_external": false,
"niveau_competence_id": null,
"numero": 2,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Connecter les entreprises et les usagers",
"type": 0,
"ue_code": "UCOD12",
"ue_id": 2
},
"ue_id": 2
},
{
"coef": 4.0,
"module_id": 1,
"ue": {
"acronyme": "RT3.1",
"code_apogee": "",
"coef_rcue": 1.0,
"coefficient": 0.0,
"color": "#FEB40B",
"ects": 10.0,
"formation_id": 1,
"id": 3,
"is_external": false,
"niveau_competence_id": null,
"numero": 3,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Cre\u0301er des outils et applications informatiques pour les R&amp;T",
"type": 0,
"ue_code": "UCOD13",
"ue_id": 3
},
"ue_id": 3
}
],
"ue_id": 1
},
"module_id": 1,
"moduleimpl_id": 1,
"responsable_id": 2
@ -177,54 +80,6 @@
],
"formsemestre_id": 1,
"id": 3,
"module": {
"abbrev": null,
"app_critiques": {},
"code": "R102",
"code_apogee": "",
"coefficient": 1.0,
"ects": null,
"formation_id": 1,
"heures_cours": 0.0,
"heures_td": 0.0,
"heures_tp": 0.0,
"id": 3,
"matiere_id": 1,
"module_id": 3,
"module_type": 2,
"numero": 20,
"parcours": [],
"semestre_id": 1,
"titre": "Principe et architecture des r\u00e9seaux",
"ue_coefs": [
{
"coef": 12.0,
"module_id": 3,
"ue": {
"acronyme": "RT1.1",
"code_apogee": "",
"coef_rcue": 1.0,
"coefficient": 0.0,
"color": "#B80004",
"ects": 12.0,
"formation_id": 1,
"id": 1,
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
"type": 0,
"ue_code": "UCOD11",
"ue_id": 1
},
"ue_id": 1
}
],
"ue_id": 1
},
"module_id": 3,
"moduleimpl_id": 3,
"responsable_id": 2

View File

@ -51,12 +51,12 @@
"nbabs": 5,
"nbabsjust": 1,
"nom_disp": "FLEURY",
"nom_short": "FLEURY Ma.",
"partitions": {
"1": 1
},
"prenom": "MADELEINE",
"rang": "1",
"sort_key":"fleury;madeleine",
"specialite": "",
"type_admission": "",
"ues_validables": "3/3"
@ -109,12 +109,12 @@
"nbabs": 3,
"nbabsjust": 1,
"nom_disp": "SAUNIER",
"nom_short": "SAUNIER Ja.",
"partitions": {
"1": 1
},
"prenom": "JACQUES",
"rang": "2",
"sort_key":"fleury;madeleine",
"specialite": "",
"type_admission": "",
"ues_validables": "3/3"

View File

@ -3,15 +3,19 @@
#### GET /justificatif/1
```json
{
"date_debut": "2022-09-25T08:00:00+0200",
"date_fin": "2022-09-25T16:00:00+0200",
"entry_date": "2023-07-28T11:13:45+0200",
"etat": "VALIDE",
"code_nip": "1",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"etat": "MODIFIE",
"etudid": 1,
"external_data": null,
"fichier": null,
"justif_id": 1,
"raison": "raison",
"user_id": null
"raison": null,
"user_id": null,
"user_name": null,
"user_nom_complet": null
}
```

View File

@ -1,22 +1,22 @@
### justificatif_create
#### POST /justificatif/1/create
> `Content-Type: application/json`
>
> `[{"date_debut": "2022-10-27T08:00","date_fin": "2022-10-27T10:00","etat": "attente"}]`
>
> `[{"date_debut": "2023-10-27T08:00","date_fin": "2023-10-27T10:00","etat": "attente"}]`
```json
{
"errors": [],
"success": [
{
"indice": 0,
"message": {
"couverture": [],
"justif_id": 12
}
}
]
"errors": [],
"success": [
{
"indice": 0,
"message": {
"couverture": [],
"justif_id": 25
}
}
]
}
```

View File

@ -1,28 +1,28 @@
### justificatif_delete
#### POST /justificatif/delete
> `Content-Type: application/json`
>
>
> `[2,2,3]`
```json
{
"errors": [
{
"indice": 1,
"message": "Justificatif non existant"
}
],
"success": [
{
"indice": 0,
"message": "OK"
},
{
"indice": 2,
"message": "OK"
}
]
"errors": [
{
"indice": 1,
"message": "Justificatif non existant"
}
],
"success": [
{
"indice": 0,
"message": "OK"
},
{
"indice": 2,
"message": "OK"
}
]
}
```

View File

@ -1,31 +1,36 @@
### justificatif_edit
#### POST /justificatif/1/edit
> `Content-Type: application/json`
>
>
> `{"etat":"valide"}`
```json
{
"couverture": {
"apr\u00e8s": [26],
"avant": [1, 26, 38]
}
"couverture": {
"apres": [
1
],
"avant": []
}
}
```
#### POST /justificatif/1/edit
> `Content-Type: application/json`
>
>
> `{"raison":"MEDIC"}`
```json
{
"couverture": {
"apr\u00e8s": [26],
"avant": [1, 26, 38]
}
"couverture": {
"apres": [
1
],
"avant": [
1
]
}
}
```

View File

@ -1,26 +1,113 @@
### justificatifs
#### GET /justificatifs/1
```json
[
{
"date_debut": "2022-09-25T08:00:00+0200",
"date_fin": "2022-09-25T16:00:00+0200",
"entry_date": "2023-07-28T11:13:45+0200",
"etat": "VALIDE",
"etudid": 1,
"fichier": null,
"justif_id": 1,
"raison": "raison",
"user_id": null
},
"..."
{
"code_nip": "1",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"etat": "MODIFIE",
"etudid": 1,
"external_data": null,
"fichier": null,
"justif_id": 1,
"raison": null,
"user_id": null,
"user_name": null,
"user_nom_complet": null
},
"..."
]
```
#### GET /justificatifs/1/query?etat=attente
```json
["..."]
[
"..."
]
```
#### GET /justificatifs/dept/1
```json
[
{
"code_nip": "1",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"etat": "MODIFIE",
"etudid": 1,
"external_data": null,
"fichier": null,
"formsemestre": {
"id": 1,
"title": "TAPI-BUT-FI-S1-2021"
},
"justif_id": 1,
"raison": null,
"user_id": null,
"user_name": null,
"user_nom_complet": null
},
{
"code_nip": "NIP2",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"etat": "NON_VALIDE",
"etudid": 2,
"external_data": null,
"fichier": null,
"formsemestre": {
"id": 1,
"title": "TAPI-BUT-FI-S1-2021"
},
"justif_id": 2,
"raison": null,
"user_id": null,
"user_name": null,
"user_nom_complet": null
},
"..."
]
```
#### GET /justificatifs/formsemestre/1
```json
[
{
"code_nip": "1",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"etat": "MODIFIE",
"etudid": 1,
"external_data": null,
"fichier": null,
"justif_id": 1,
"raison": null,
"user_id": null,
"user_name": null,
"user_nom_complet": null
},
{
"code_nip": "NIP2",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"etat": "NON_VALIDE",
"etudid": 2,
"external_data": null,
"fichier": null,
"justif_id": 2,
"raison": null,
"user_id": null,
"user_name": null,
"user_nom_complet": null
},
"..."
]
```

View File

@ -0,0 +1,47 @@
### justificatifs_dept
#### GET /justificatifs/dept/1
```json
[
{
"code_nip": "1",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"etat": "MODIFIE",
"etudid": 1,
"external_data": null,
"fichier": null,
"formsemestre": {
"id": 1,
"title": "TAPI-BUT-FI-S1-2021"
},
"justif_id": 1,
"raison": null,
"user_id": null,
"user_name": null,
"user_nom_complet": null
},
{
"code_nip": "NIP2",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"etat": "NON_VALIDE",
"etudid": 2,
"external_data": null,
"fichier": null,
"formsemestre": {
"id": 1,
"title": "TAPI-BUT-FI-S1-2021"
},
"justif_id": 2,
"raison": null,
"user_id": null,
"user_name": null,
"user_nom_complet": null
},
"..."
]
```

View File

@ -0,0 +1,39 @@
### justificatifs_formsemestre
#### GET /justificatifs/formsemestre/1
```json
[
{
"code_nip": "1",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"etat": "MODIFIE",
"etudid": 1,
"external_data": null,
"fichier": null,
"justif_id": 1,
"raison": null,
"user_id": null,
"user_name": null,
"user_nom_complet": null
},
{
"code_nip": "NIP2",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"etat": "NON_VALIDE",
"etudid": 2,
"external_data": null,
"fichier": null,
"justif_id": 2,
"raison": null,
"user_id": null,
"user_name": null,
"user_nom_complet": null
},
"..."
]
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 294 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 493 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 590 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

View File

@ -42,9 +42,9 @@ nav:
- "Fin de semestre": TransitionSemestre.md
- "Le BUT":
- "Introduction": BUT.md
- "Exemple complet": BUTExempleInfo.md
- "Capitalisation UEs": BUTCapitalisationUE.md
- "Le BUT: introduction": BUT.md
- "BUT: exemple complet": BUTExempleInfo.md
- "BUT: capitalisation UEs": BUTCapitalisationUE.md
- "Relations entreprises": RelationsEntreprises.md
- "Développeurs":
- "Guide": GuideDeveloppeurs.md