API évaluations

This commit is contained in:
Emmanuel Viennet 2023-08-26 17:08:28 +02:00
parent 0fb62b79bf
commit bf68f0b1a7
4 changed files with 95 additions and 32 deletions

View File

@ -8,7 +8,7 @@ Lannion financé par l'Association ScoDoc.
**Ce module est disponible à partir de ScoDoc version 9.6**.
[Vidéo de présentation du module d'assiduités ](#) TODO EV à publier sur la chaîne YT
[Vidéo de présentation du module d'assiduités ](https://youtu.be/p7xips26W54)
## Fonctionnalités

View File

@ -19,13 +19,13 @@ L'API fournit des données JSON, sauf exception (bulletins PDF par exemple).
Les objets ScoDoc manipulables sont identifiés par des id numériques.
- `etudid` : étudiant
- `formation_id` : un programme de formation (page "programmes");
- `ue_id` : une UE dans un programme;
- `matiere_id` : une matière dans un programme;
- `module_id` : un module dans un programme;
- `moduleimpl_id` : un module réalisé dans un semestre;
- `formsemestre_id` : un "semestre" de formation.
* `etudid` : étudiant
* `formation_id` : un programme de formation (page "programmes");
* `ue_id` : une UE dans un programme;
* `matiere_id` : une matière dans un programme;
* `module_id` : un module dans un programme;
* `moduleimpl_id` : un module réalisé dans un semestre;
* `formsemestre_id` : un "semestre" de formation.
(pour plus de précisions, voir le [guide développeurs](GuideDeveloppeurs.md))
@ -77,17 +77,17 @@ flask user-password lecteur_api
Si vous êtes intéressé par le développement, voir
- [la section sur les tests unitaires de l'API](TestsScoDoc.md#tests-de-lapi-scodoc9);
- [la documentation développeurs](GuideDeveloppeurs.md) et sur les [vues de l'API](DevInternals.md#vues-de-lapi-et-permissions).
* [la section sur les tests unitaires de l'API](TestsScoDoc.md#tests-de-lapi-scodoc9);
* [la documentation développeurs](GuideDeveloppeurs.md) et sur les [vues de l'API](DevInternals.md#vues-de-lapi-et-permissions).
!!! note
- Si vous utilisez le CAS, pensez à laisser les comptes utilisateurs API se
* Si vous utilisez le CAS, pensez à laisser les comptes utilisateurs API se
connecter via ScoDoc sans CAS. Pour cela, cocher l'option
*Autorise connexion via CAS si CAS est activé*
dans leur formulaire de configuration.
- Si l'utilisateur est associé à un département (cas des comptes créés via l'interface Web),
* Si l'utilisateur est associé à un département (cas des comptes créés via l'interface Web),
il ne pourra accéder à l'API que via une *route départementale*, c'est à dire une route comprenant
l'acronyme de son département, de la forme `https://...//ScoDoc/DEPARTEMENT/api/...`.
@ -249,29 +249,32 @@ Ce tableau est trié selon le type des informations renvoyées:
| Retour | Remarque | Méthode | Navigation | Permission |
|:------------------------|:----------------------------------------|---------|---------------------------------------------------------------------------|---------------------|
| assiduite | une assiduité | GET | [assiduité](#assiduite) | ScoView |
| 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 par un justificatif | 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 |
| 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 |
| assiduite | une assiduité | GET | [assiduité](#assiduite) | ScoView |
| 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 |
| 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 |
| 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 |
| departement | recherche par acronyme | GET | [departement](#departement) | ScoView |
| departement:CREATE | création d'un département | POST | [departement-create](#departement-create) | ScoSuperAdmin |
| departement:EDIT | modification d'un département | POST | [departement-edit](#departement-edit) | ScoSuperAdmin |
| departement:DELETE | suppression d'un département | POST | [departement-delete](#departement-delete) | ScoSuperAdmin |
| formation**`*`** | toutes les formations accessibles | GET | [formations](#formations) | ScoView |
| departement:DELETE | suppression d'un département | POST | [departement-delete](#departement-delete) | ScoSuperAdmin |
| evaluation | une évaluation | GET | [evaluation](#evaluation) | ScoView |
| evaluation:CREATE | création d'une évaluation | POST | [evaluation-create](#evaluation-create) | - |
| evaluation:DELETE | suppression d'une évaluation | POST | [evaluation-delete](#evaluation-delete) | - |
| formation**`*`** | toutes les formations accessibles | GET | [formations](#formations) | ScoView |
| formation**`#`** | ids des formations accessibles | GET | [formations-ids](#formations-ids) | ScoView |
| formation | une formation | GET | [formation](#formation) | ScoView |
| export | | GET | [formation-export](#formation-export) | ScoView |
@ -592,6 +595,66 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
* Pour obtenir tous les étudiants répondant au critère, utiliser [etudiant-clefs](#etudiants-clef)
* **Exemple de résultat:** [etudiant.json](samples/sample_etudiant.json.md)
### **API Evaluation**
#### Structure évaluation
| attribut | type | commentaire |
|:----------------------------|:-----------------------------------------------|:--------------------------------------------------|
| coefficient | float | coefficient pour moyenne (1.) |
| 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" |
| moduleimpl_id | int | moduleimpl |
| note_max | float | barème (20 points) |
| numero | int | ordre présentation |
| poids | { int : float } | poids APC (BUT): { ue_id : poids } |
| publish_incomplete | int | si vrai, prend en compte même si notes incomplètes|
| visibulletin | int | affiche sur bulletins intermédiaires (non BUT) |
Note: les poids ne sont utilisés que dans les formations APC (BUT).
#### **`evaluation`**
* **Méthode:** GET
* **Permission: `ScoView`**
* **Routes:** `/evaluation`
* **Exemple d'utilisation:** `/ScoDoc/api/evaluation/123`
* **Résultat:** Liste une évaluation
* **Exemple de résultat:** [evaluation.json](samples/sample_evaluation.json.md)
#### **`evaluation-create`**
* **Méthode: POST**
* **Permission:** dépend du contexte
* **Data:**
```json
{
"description" : str,
"evaluation_type" : int, // {0,1,2} default 0 (normale)
"date_debut" : date_iso, // optionnel
"date_fin" : date_iso, // optionnel
"note_max" : float, // si non spécifié, 20.0
"numero" : int, // ordre de présentation, default tri sur date
"visibulletin" : boolean , //default true
"publish_incomplete" : boolean , //default false
"coefficient" : float, // si non spécifié, 1.0
"poids" : { ue_id : poids } // optionnel
}
```
* **Routes:** `/moduleimpl/<int:evaluation_id>/evaluation/create`
* **Résultat:** Crée une évaluation dans le moduleimpl indiqué. Tous les paramètres passés dans sont optionnels. Renvoie l'évaluation.
#### **`evaluation-delete`**
* **Méthode: POST**
* **Permission:** dépend du contexte
* **Paramètres:** `evaluation_id`
* **Routes:** `/evaluation/<int:evaluation_id>/delete`
* **Exemple d'utilisation:** `/ScoDoc/api/evaluation/123/delete`
* **Résultat:** Supprime une évaluation (et toutes ses notes s'il y en a)
### **API Formation**
#### Structure Formation

View File

@ -34,7 +34,7 @@
"datetime_fin": null,
"datetime_mediane": null
},
"visi_bulletin": true
"visibulletin": true
}
],
"formsemestre_id": 1,
@ -172,7 +172,7 @@
"datetime_fin": "2022-08-20T12:00:00.000000+02:00",
"datetime_mediane": "2022-08-20T12:00:00.000000+02:00"
},
"visi_bulletin": true
"visibulletin": true
}
],
"formsemestre_id": 1,

View File

@ -15,7 +15,7 @@
"numero": 0,
"poids": {},
"publish_incomplete": true,
"visi_bulletin": true
"visibulletin": true
},
"..."
]