ajout methode donnant les groupes d'un étudiant

This commit is contained in:
Emmanuel Viennet 2021-11-19 17:14:58 +01:00
parent 201817fee6
commit 8178c7679f
1 changed files with 126 additions and 100 deletions

View File

@ -82,7 +82,7 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ
* **`departement`**
* **Méthode:** GET
* **Paramètres:** `viewable` (optionnel, si faux liste aussi les départements non accessible à l'utilisateur courant), `format` (json, xml)
* **Format URL:** `/api/departement`
* **Routes:** `/api/departement`
* **Exemple d'utilisation:** `/api/departement`
* **Résultat:** Liste des id de départements.
* **Exemple de résultat:** `[id_1, id_2, id_3, ...]`
@ -92,7 +92,7 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ
* **`etud_dept`**
* **Méthode:** GET
* **Paramètres:** `code_nip`
* **Format URL:** `/api/etud_dept/<int:code_nip>`
* **Routes:** `/api/etud_dept/<int:code_nip>`
* **Exemple d'utilisation:** `/api/etud_dept/123`
* **Résultat:** Liste des étudiants avec le code NIP donné tirée par ordre d'inscription décroissant.
* **Exemple de résultat:**
@ -111,7 +111,7 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ
* **`etud`**
* **Méthode:** GET
* **Paramètres:** etudid
* **Format URL:** `/api/etud/<int:etudid>`
* **Routes:** `/api/etud/<int:etudid>`
* **Exemple d'utilisation:** `/api/etud/987`
* **Résultat:** Un dictionnaire avec les informations de l'étudiant correspondant à l'id passé en paramètres.
* **Exemple de résultat:**
@ -148,7 +148,7 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ
* **`etud//bul`**
* **Méthode:** GET
* **Paramètres:** `etudid`, `sem_id`
* **Format URL:** `/api/etud/<int:etudid>/bul/<int:sem_id>`
* **Routes:** `/api/etud/<int:etudid>/bul/<int:sem_id>`
* **Exemple d'utilisation:** `/api/etud/987/bul/12`
* **Résultat:** Le bulletin d'un étudiant en fonction de son id et d'un semestre donné.
* **Exemple de résultat:** voir plus bas sur cette page.
@ -157,19 +157,48 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ
* **`etud//photo`**
* **`etud/<etudid>/photo`**
* **Méthode:** GET
* **Paramètres:** `etudid`, `small`
* **Format URL:** `/api/etud/<int:etudid>/photo` **OU** `/api/etud/<int:etudid>/photo/small` (_ajout du paramètre **small** pour la version small_)
* **Routes:** `/api/etud/<int:etudid>/photo` **OU** `/api/etud/<int:etudid>/photo/small` (_ajout du paramètre **small** pour la version small_)
* **Exemple d'utilisation:** `/api/etud/123/photo` **OU** `/api/etud/123/photo/small` (_pour la version small_)
* **Résultat:** Image en JPEG ou PNG.
* **`etud/<etudid>/sem/<formsemestre_id>/groups`**
* **Méthode:** GET
* **Paramètres:** `etudid`, `formsemestre_id`
* **Routes:** `/api/etud/<int:etudid>/sem/<formsemestre_id>/groups`
* **Exemple d'utilisation:** `/api/etud/123/groups`
* **Résultat:** liste des groupes auxquels appartient l'étudiant dans le semestre indiqué.
Note: basé sur proposition de Seb., voir si on fusionne avec `/etud` pour tout fournir d'un coup ?
```
{
"etudid" : 1234,
"formsemestre_id" : 5678,
"groupes" : [
{
"numero": 1, // Ordre d'affichage dans Scodoc
"partition_id": 62028,
"partition_name": "TD",
"group_id" : 1899,
"group_name": "TD 1"
},{
"numero": 2,
"partition_id": 62029,
"partition_name": "TP",
"group_id" : 1905,
"group_name": "TP 2"
}
]
}
```
## Programmes de formations
* **`formation`**
* **Méthode:** GET
* **Paramètres:** `formation_id` (_optionnel, si absent liste toutes les formations_)
* **Format URL:** `/api/formation` **ou** `/api/formation/<int:formation_id>`
* **Routes:** `/api/formation` **ou** `/api/formation/<int:formation_id>`
* **Exemple d'utilisation:** `/api/formation` **ou** `/api/formation/1`
* **Résultat:** Liste des formations.
* **Exemple de résultat:** `[formation_1, formation_2, formation_3, ...]`
@ -180,22 +209,22 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ
* **`formation_export`**
* **Méthode:** GET
* **Paramètres:** `formation_id`, `export_ids` (_par défaut "faux"_)
* **Format URL:** `/api/formation_export/<int:formation_id>`
* **Routes:** `/api/formation_export/<int:formation_id>`
* **Exemple d'utilisation:** `/api/formation_export/596` **ou** `/api/formation_export/596?format=xml&export_ids=1`
* **Résultat:** La formation, avec UE, matières, modules (_un arbre_).
* **Exemple de résultat:**
```
{
"nom": "formation",
"UE": "ue",
"matieres": [
"matiere_1": "maths",
"matiere_2": "anglais",
...
],
"modules": ...
}
```
```
{
"nom": "formation",
"UE": "ue",
"matieres": [
"matiere_1": "maths",
"matiere_2": "anglais",
...
],
"modules": ...
}
```
## UE
@ -210,29 +239,29 @@ Les sessions de formation (dénommées "semestres" même si elles durent une ann
* **`formsemestre`**
* **Méthode:** GET
* **Paramètres:** `formsemestre_id` ou `etape_apo`, `format`(json ou xml)
* **Format URL:** `/api/formsemestre/<int:formsemestre_id>`, `/api/formsemestre/apo/<etape_apo>`
* **Routes:** `/api/formsemestre/<int:formsemestre_id>`, `/api/formsemestre/apo/<etape_apo>`
* **Exemple d'utilisation:** `/api/formsemestre/12`
* **Résultat:** Informations sur le(s) formsemestre(s).
* **Exemple de résultat:**
```
[
{
"annee_scolaire": "2022 - 2023",
"date_debut": "2022-09-01",
"date_fin": "2023-02-02",
"modalite": "FI",
"periode": 1,
"semestre_idx_txt": "S3",
"semestre_idx" : 3,
"session_id" : "GEII-BUT-FI-S3-2022",
"titre_annee": "BUT Génie Electrique et Informatique Industrielle semestre 3 FI 2021-2022"
"titre_num": "BUT Génie Electrique et Informatique Industrielle semestre 3",
"titre": "BUT Génie Electrique et Informatique Industrielle",
"parcours_type": XXX type de parcours
'formation_id": 87,
}
]
```
```
[
{
"annee_scolaire": "2022 - 2023",
"date_debut": "2022-09-01",
"date_fin": "2023-02-02",
"modalite": "FI",
"periode": 1,
"semestre_idx_txt": "S3",
"semestre_idx" : 3,
"session_id" : "GEII-BUT-FI-S3-2022",
"titre_annee": "BUT Génie Electrique et Informatique Industrielle semestre 3 FI 2021-2022"
"titre_num": "BUT Génie Electrique et Informatique Industrielle semestre 3",
"titre": "BUT Génie Electrique et Informatique Industrielle",
"parcours_type": XXX type de parcours
'formation_id": 87,
}
]
```
### Note sur les identifiants de sessions
Le `session_id` peut être utilisé pour identifier de façon prévisible et
@ -262,7 +291,7 @@ On peut récupérer soit un module par son id, soit la listes des modules d'un s
* **`moduleimpl`**
* **Méthode:** GET
* **Paramètres**: `formsemestre_id` ou `moduleimpl_id`
* **Format URL:** `/api/moduleimpl/<int:moduleimpl_id>`, `/api/<int:moduleimpl_id>/formsemestre/<int:formsemestre_id>`
* **Routes:** `/api/moduleimpl/<int:moduleimpl_id>`, `/api/<int:moduleimpl_id>/formsemestre/<int:formsemestre_id>`
* **Résultat:** liste de moduleimpl
* **Exemple de résultat:**
TODO
@ -272,6 +301,7 @@ On peut récupérer soit un module par son id, soit la listes des modules d'un s
## Groupes et partitions
L'ensemble des étudiants d'un semestre peut être réparti selon une ou
plusieurs partitions (types de groupes). Chaque partition est constituée
d'un nombre quelconque de groupes d'étudiants.
@ -279,66 +309,62 @@ d'un nombre quelconque de groupes d'étudiants.
* **`partition`**
* **Méthode: GET**
* **Paramètres:** `formsemestre_id`
* **Format URL:** `/api/partition/<int:formsemestre_id>`
* **Routes:** `/api/partition/<int:formsemestre_id>`
* **Exemple d'utilisation:** `/api/partition/48`
* **Résultat:** La liste de toutes les partitions d'un formsemestre.
* **Exemple de résultat:**
```
[
{
"formsemestre_id": "12781",
"partition_id": "23840",
"partition_name": "TD"
"group": [
{
"formsemestre_id": "12781",
"partition_id": "23840",
"group_name": "A",
"group_id": "23841",
"partition_name": "TD"
},
{
"formsemestre_id": "12781",
"partition_id": "23840",
"group_name": "B",
"group_id": "23843",
"partition_name": "TD"
},
],
},
{
"formsemestre_id": "12781",
"partition_id": "23941",
"partition_name": "TP"
"group": [
{
...
},
...
],
},
{
"formsemestre_id": "12781",
"partition_id": "22833",
"partition_name": null
"group": [
{
"formsemestre_id": "12781",
"partition_id": "22833",
"group_name": null,
"group_id": "G22834",
"partition_name": null
}
],
}
```
[
{
"formsemestre_id":"12781",
"partition_id":"23840",
"partition_name":"TD""group":[
{
"formsemestre_id":"12781",
"partition_id":"23840",
"group_name":"A",
"group_id":"23841",
"partition_name":"TD"
},
{
"formsemestre_id":"12781",
"partition_id":"23840",
"group_name":"B",
"group_id":"23843",
"partition_name":"TD"
}
]
```
},
{
"formsemestre_id":"12781",
"partition_id":"23941",
"partition_name":"TP""group":[
{
"..."
},
"..."
]
},
{
"formsemestre_id":"12781",
"partition_id":"22833",
"partition_name":null"group":[
{
"formsemestre_id":"12781",
"partition_id":"22833",
"group_name":null,
"group_id":"G22834",
"partition_name":null
}
]
}
]
```
* **`groups`**
* **Méthode:** GET
* **Paramètres:** `formsemestre_id` ou `group_ids` (_peut être répété_), `with_codes=0|1`, `all_groups=0|1`, `etat=None|I`
* **Format URL:**
* **Routes:**
* **Exemple d'utilisation:**
* **Résultat:** Liste des étudiants dans un groupe.
* **Exemple de résultat au format XML:** (_avec `with_codes=1`_)
@ -399,7 +425,7 @@ d'un nombre quelconque de groupes d'étudiants.
* **`set_groups`**
* **Méthode:** POST
* **Paramètres:** `partition_id`, `groups`, `groups_to_delete`, `groups_to_create`
* **Format URL:** `/api/set_groups?partition_id=<int:partition_id>&groups=<int:groups>&groups_to_delete=<int:groups_to_delete>&groups_to_create=<int:groups_to_create>`
* **Routes:** `/api/set_groups?partition_id=<int:partition_id>&groups=<int:groups>&groups_to_delete=<int:groups_to_delete>&groups_to_create=<int:groups_to_create>`
* **Exemple d'utilisation:** `/api/set_groups?partition_id=65&groups=77&groups_to_delete=8&groups_to_create=4`
* **Résultat:** Set les groups.
@ -410,7 +436,7 @@ d'un nombre quelconque de groupes d'étudiants.
* **`evaluations`**
* **Méthode:** GET
* **Paramètres:** `moduleimpl_id`
* **Format URL:** `/api/evaluations/<int:moduleimpl_id>`
* **Routes:** `/api/evaluations/<int:moduleimpl_id>`
* **Exemple d'utilisation:** `/api/evaluations/54`
* **Résultat:** Liste des évaluations à partir de l'id d'un moduleimpl.
* **Exemple de résultat:** `[eval_1, eval_2, eval_3, ...]`
@ -419,7 +445,7 @@ d'un nombre quelconque de groupes d'étudiants.
* **`evaluation_notes`**
* **Méthode**: GET
* **Paramètres**: `evaluation_id`
* **Format URL:** `/api/eval_notes/<int:evaluation_id>`
* **Routes:** `/api/eval_notes/<int:evaluation_id>`
* **Exemple d'utilisation:** `/api/eval_notes/24`
* **Résultat:** Liste des notes à partir de l'id d'une évaluation donnée.
* **Exemple de résultat:**
@ -438,7 +464,7 @@ d'un nombre quelconque de groupes d'étudiants.
* **`evaluation_set_notes`**
* **Méthode:** POST
* **Paramètres:** `eval_id`, `etudid`, `note`
* **Format URL:** `/api/eval_set_notes?eval_id=<int:eval_id> etudid=<int etudid>&note=<int:note>`
* **Routes:** `/api/eval_set_notes?eval_id=<int:eval_id> etudid=<int etudid>&note=<int:note>`
* **Exemple d'utilisation:** `/api/eval_set_notes?eval_id=6 etudid=456&note=15`
* **Résultat:** Set les notes d'une évaluation pour un étudiant donné.
TODO vérifier et passer les valeurs dans le corps.
@ -447,7 +473,7 @@ d'un nombre quelconque de groupes d'étudiants.
* **`etud//bul`**
* **Méthode:** GET
* **Paramètres:** `formsemestre_id`, `etudid`, `format` (`xml`ou `json`), `version` (`short`, `selectedevals` ou `long`)
* **Format URL:**
* **Routes:**
* **Exemple d'utilisation:**
* **Résultat:** Un bulletin de notes.
* **Exemple de résultat:** ici au format JSON, pour une version courte (`version=short`)
@ -1087,7 +1113,7 @@ formsemestre_id": "SEM12345",
* **`absences`**
* **Méthode:** GET
* **Paramètres:** `etudid`, `abs_just_only, format`, `abs_just_only` (_spécifie si on veut les absences justifiées ou non_).
* **Format URL:** `/api/absences/<int:etudid>`
* **Routes:** `/api/absences/<int:etudid>`
* **Exemple d'utilisation:** `/api/absences/54`
* **Résultat:** Liste des absences d'un étudiant donné.
* **Exemple de résultat:**
@ -1124,7 +1150,7 @@ formsemestre_id": "SEM12345",
* **`abs_groupe_etat`**
* **Méthode:** GET
* **Paramètres:** `group_ids`, `date_debut`, `date_fin`, `with_boursier=True`, `format=html`
* **Format URL:** `/api/abs_group_etat/?group_ids=group_ids&date_debut=date_debut&date_fin=date_fin`
* **Routes:** `/api/abs_group_etat/?group_ids=group_ids&date_debut=date_debut&date_fin=date_fin`
* **Exemple d'utilisation:** `/api/abs_group_etat/?group_ids=45&date_debut=2019-01-30&date_fin=2019-02-30`
* **Résultat:** Liste des absences d'un ou plusieurs groupes entre deux dates.
* **Exemple de résultat:** si `format="json"` cela donne: