Compare commits

...

3 Commits

Author SHA1 Message Date
Emmanuel Viennet 833a35a037 misc 2024-03-29 16:52:20 +01:00
Iziram 58e3ee9500 Assiduité : Docs : erratum + oublie samples 2024-03-29 16:37:43 +01:00
Iziram 7ef0f108b4 Assiduité : ajout doc manquante + mise à jour samples 2024-03-29 16:17:40 +01:00
24 changed files with 955 additions and 384 deletions

View File

@ -1,3 +1,22 @@
# Les jurys de BUT
Page à rédiger.
!!! 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

@ -19,9 +19,25 @@ qui peuvent être négatives).
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. Ce réglage peut-être dangereux car les
notes sont montrées aux étudiants avant qu'elles soient définitives et devrait
rester réservé à des cas particuliers.
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
@ -67,7 +83,12 @@ Les évaluations bonus sont particulières:
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.
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"

View File

@ -1,10 +1,13 @@
# 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 |   |  
@ -134,7 +137,6 @@ Nom |   |  
`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_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)

View File

@ -1715,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
@ -1728,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]**
@ -1745,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?`
@ -1778,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?`
@ -1807,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?`
@ -1829,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?`
@ -1851,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:**
@ -1865,6 +1898,7 @@ 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**
@ -1876,9 +1910,6 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
[
{
"etudid":<int>,
"date_debut": <string>,
"date_fin": <string>,
"etat": <string>,
"moduleimpl_id"?: <int>,
"desc"?:<string>,
@ -1894,6 +1925,7 @@ 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**
@ -1909,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>
@ -1951,9 +1981,7 @@ 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**
@ -2007,7 +2035,7 @@ 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 |
@ -2018,6 +2046,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
| *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**
@ -2041,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`
@ -2057,6 +2091,58 @@ 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
@ -2168,7 +2254,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
#### **justificatif-export**
* **Méthode:** POST
* **Permission: `AbsChange`**
* **Permission: `ScoView`**
* **Paramètres:**
* `justif_id`
* `filename`

View File

@ -1,37 +1,42 @@
# 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).
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,
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.
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
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. (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.
5. Réunir la commission (ou le jury):
6. Réunir la commission (ou le jury):
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*.
@ -39,16 +44,16 @@ département](GuideAdminFormation.md).
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
*publier le bulletin sur la passerelle* ** (menu *Semestre / Options du
semestre*).
6. Édition du procès-verbal: menu *Jury / Voir les décisions du jury*.
7. Édition du procès-verbal: menu *Jury / Voir les décisions du jury*.
1. En bas de la page, un lien *Courriers individuels (classeur pdf)* permet
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).
2. Le lien *PV officiel (pdf)* permet de générer le procès verbal avec la
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**
@ -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)

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",
"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": "2023-07-28T11:13:45+0200",
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"est_just": false,
"etat": "PRESENT",
"etudid": 1,
"moduleimpl_id": 8,
"user_id": null
"external_data": null,
"moduleimpl_id": 12,
"user_id": null,
"user_name": null,
"user_nom_complet": null
}
```

View File

@ -1,10 +1,26 @@
### 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": [
{
"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
{
@ -13,9 +29,10 @@
{
"indice": 0,
"message": {
"assiduite_id": 60
"assiduite_id": 49
}
}
]
}
```

View File

@ -1,7 +1,6 @@
### assiduite_delete
#### POST /assiduite/delete
> `Content-Type: application/json`
>
> `[2,2,3]`
@ -26,3 +25,4 @@
]
}
```

View File

@ -1,19 +1,6 @@
### 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}`
@ -25,7 +12,17 @@
```
#### POST /assiduite/1/edit
> `Content-Type: application/json`
>
> `{"moduleimpl_id":2}`
```json
{
"OK": true
}
```
#### POST /assiduite/1/edit
> `Content-Type: application/json`
>
> `{"etat":"absent"}`
@ -35,3 +32,4 @@
"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",
"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": "2023-07-28T11:13:45+0200",
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"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
"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",
"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": "2023-07-28T11:13:45+0200",
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"est_just": false,
"etat": "PRESENT",
"etudid": 1,
"moduleimpl_id": 8,
"user_id": null
"external_data": null,
"moduleimpl_id": 12,
"user_id": null,
"user_name": null,
"user_nom_complet": null
},
{
"assiduite_id": 2,
"date_debut": "2022-09-26T08:00:00+0200",
"date_fin": "2022-09-26T09:00:00+0200",
"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": "2023-07-28T11:13:45+0200",
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"est_just": false,
"etat": "RETARD",
"etudid": 1,
"moduleimpl_id": 13,
"user_id": null
"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",
"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": "2023-07-28T11:13:45+0200",
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"est_just": false,
"etat": "RETARD",
"etudid": 1,
"moduleimpl_id": 13,
"user_id": null
"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",
"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": "2023-07-28T11:13:45+0200",
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"est_just": false,
"etat": "PRESENT",
"etudid": 1,
"etudid": 10,
"external_data": null,
"moduleimpl_id": 1,
"user_id": null
"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

@ -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,10 +1,9 @@
### 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
{
@ -14,9 +13,10 @@
"indice": 0,
"message": {
"couverture": [],
"justif_id": 12
"justif_id": 25
}
}
]
}
```

View File

@ -1,7 +1,6 @@
### justificatif_delete
#### POST /justificatif/delete
> `Content-Type: application/json`
>
> `[2,2,3]`
@ -26,3 +25,4 @@
]
}
```

View File

@ -1,7 +1,6 @@
### justificatif_edit
#### POST /justificatif/1/edit
> `Content-Type: application/json`
>
> `{"etat":"valide"}`
@ -9,14 +8,15 @@
```json
{
"couverture": {
"apr\u00e8s": [26],
"avant": [1, 26, 38]
"apres": [
1
],
"avant": []
}
}
```
#### POST /justificatif/1/edit
> `Content-Type: application/json`
>
> `{"raison":"MEDIC"}`
@ -24,8 +24,13 @@
```json
{
"couverture": {
"apr\u00e8s": [26],
"avant": [1, 26, 38]
"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",
"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
},
"..."
]
```
#### 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
},
"..."
]
```