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

View File

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