From 5bb2f166cc2a320583226d036d809b7d6312001a Mon Sep 17 00:00:00 2001 From: leonard_montalbano Date: Thu, 28 Apr 2022 11:46:59 +0200 Subject: [PATCH] =?UTF-8?q?mise=20=C3=A0=20jour=20de=20la=20doc=20de=20la?= =?UTF-8?q?=20nouvelle=20api=20au=2028/04/2022?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ScoDoc9API.md | 1444 +++++++++++++++++++++++++++++++++++--------- 1 file changed, 1165 insertions(+), 279 deletions(-) diff --git a/docs/ScoDoc9API.md b/docs/ScoDoc9API.md index 2e7daaab..937ba2fe 100644 --- a/docs/ScoDoc9API.md +++ b/docs/ScoDoc9API.md @@ -110,14 +110,54 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ * [500](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/500) : Erreur inconnue, contactez-nous. * [503](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/503) : L'API est momentanément indisponible, réessayez dans quelques minutes. +#### Note sur les identifiants de sessions +Le `session_id` peut être utilisé pour identifier de façon prévisible et +(presque) unique une session dans un établissement, ce qui est utile +notamment pour interfacer ScoDoc à d'autres logiciels (par exemple gestion d'emplois +du temps ou de services d'enseignement). Cet identifiant est constitué des +informations suivantes: + + * **Département** (RT, GEII, INFO...) (= paramètre `DeptName`, en majuscules) + * **Nom parcours:** BUT, LP, ... (défini au niveau du parcours dans ScoDoc = NAME) + * **Modalité:** FI, FC, FA + * **"Spécialité":** S1 (ou S1D pour les semestres décalés), ou le + `code_specialite` si pas de semestres. Le code spécialité est un champ + (libre) nouveau dans la "formation" (programme pédagogique). + * **Année:** année de début de l'année scolaire correspondante (2014 pour + une session appartenant à l'année scolaire 2014-2015, même si elle + commence en mars 2015). + + +**Exemple:** `INFO-DUT-FI-S1-2014` équivaut à un semestre S1 d'un DUT informatique de 2014 en formation initiale (FI) + + ### Départements * **`departements`** * **Méthode:** GET * **Routes:** `/departements` * **Exemple d'utilisation:** `/api/departements` - * **Résultat:** Liste des id de départements. - * **Exemple de résultat:** `[1, 2, 3, ...]` + * **Résultat:** Liste des départements. + * **Exemple de résultat:** + ``` + [ + { + "id": 1, + "acronym": "TAPI", + "description": null, + "visible": true, + "date_creation": "Fri, 15 Apr 2022 12:19:28 GMT" + }, + { + "id": 2, + "acronym": "MMI", + "description": null, + "visible": false, + "date_creation": "Fri, 18 Apr 2022 11:20:8 GMT" + }, + ... + ] + ``` * **`liste_etudiants`** @@ -126,6 +166,34 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ * **Routes:** `/departements//etudiants/liste` ou `/api/departements//etudiants/liste/` * **Exemple d'utilisation:** `/api/departements/MMI/etudiants/liste` * **Résultat:** liste des étudiants d'un département, par défaut, ou d'un semestre si renseigné. (json) + * **Exemple de résultat:** + ``` + [ + { + "civilite": "X", + "code_ine": null, + "code_nip": null, + "date_naissance": null, + "email": null, + "emailperso": null, + "etudid": 18, + "nom": "MOREL", + "prenom": "JACQUES" + }, + { + "civilite": "X", + "code_ine": null, + "code_nip": null, + "date_naissance": null, + "email": null, + "emailperso": null, + "etudid": 19, + "nom": "FOURNIER", + "prenom": "ANNE" + }, + ... + ] + ``` * **`liste_semestres_courant`** @@ -134,6 +202,42 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ * **Routes:** `/departements//semestres_courants` * **Exemple d'utilisation:** `/api/departements/MMI/semestres_courants` * **Résultat:** Liste des semestres actifs d'un département donné. (_réponse sous format json_) + * **Exemple de résultat:** + ``` + [ + { + "titre": "master machine info", + "gestion_semestrielle": false, + "scodoc7_id": null, + "date_debut": "01/09/2021", + "bul_bgcolor": null, + "date_fin": "15/12/2022", + "resp_can_edit": false, + "dept_id": 1, + "etat": true, + "resp_can_change_ens": false, + "id": 1, + "modalite": "FI", + "ens_can_edit_eval": false, + "formation_id": 1, + "gestion_compensation": false, + "elt_sem_apo": null, + "semestre_id": 1, + "bul_hide_xml": false, + "elt_annee_apo": null, + "block_moyennes": false, + "formsemestre_id": 1, + "titre_num": "master machine info semestre 1", + "date_debut_iso": "2021-09-01", + "date_fin_iso": "2022-12-15", + "responsables": [ + 3, + 2 + ] + }, + ... + ] + ``` * **`referentiel_competences`** @@ -151,13 +255,82 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ * **Routes:** `/departements//formsemestre//programme` * **Exemple d'utilisation:** `api/departements/MMI/formsemestre/1/programme` * **Résultat:** Retourne la liste des Ues, ressources et SAE d'un semestre (json). + * **Exemple de résultat:** + ``` + { + "ues": [ + { + "type": 0, + "formation_id": 1, + "ue_code": "UCOD11", + "id": 1, + "ects": 12.0, + "acronyme": "RT1.1", + "is_external": false, + "numero": 1, + "code_apogee": "", + "titre": "Administrer les r\u00e9seaux et l\u2019Internet", + "coefficient": 0.0, + "semestre_idx": 1, + "color": "#B80004", + "ue_id": 1 + }, + ... + ], + "ressources": [ + { + "titre": "Fondamentaux de la programmation", + "coefficient": 1.0, + "module_type": 2, + "id": 17, + "ects": null, + "abbrev": null, + "ue_id": 3, + "code": "R107", + "formation_id": 1, + "heures_cours": 0.0, + "matiere_id": 3, + "heures_td": 0.0, + "semestre_id": 1, + "heures_tp": 0.0, + "numero": 70, + "code_apogee": "", + "module_id": 17 + }, + ... + ], + "saes": [ + { + "titre": "Se pr\u00e9senter sur Internet", + "coefficient": 1.0, + "module_type": 3, + "id": 14, + "ects": null, + "abbrev": null, + "ue_id": 3, + "code": "SAE14", + "formation_id": 1, + "heures_cours": 0.0, + "matiere_id": 3, + "heures_td": 0.0, + "semestre_id": 1, + "heures_tp": 0.0, + "numero": 40, + "code_apogee": "", + "module_id": 14 + }, + ... + ] + } + ``` + ### Etudiants * **`etudiants_courant`** * **Méthode:** GET - * **Routes:** `/etudiants/courant` + * **Routes:** `/etudiants/courant` ou `/etudiants/courant/long` * **Exemple d'utilisation:** `/api/etudiants/courant` * **Résultat:** Retourne la liste des étudiants courant (json). * **Exemple de résultat:** @@ -217,6 +390,41 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ * **Routes:** : `/etudiant/etudid//formsemestres` ou `/etudiant/nip//formsemestres` ou `/etudiant/ine//formsemestres` * **Exemple d'utilisation:** `/etudiant/ine/1/formsemestres` * **Résultat:** Retourne la liste des semestres qu'un étudiant a suivis, triés par ordre chronologique. (json) + * **Exemple de résultat:** + ``` + [ + { + "titre": "master machine info", + "gestion_semestrielle": false, + "date_debut": "01/09/2021", + "bul_bgcolor": null, + "date_fin": "15/12/2022", + "resp_can_edit": false, + "dept_id": 1, + "etat": true, + "resp_can_change_ens": false, + "id": 1, + "modalite": "FI", + "ens_can_edit_eval": false, + "formation_id": 1, + "gestion_compensation": false, + "elt_sem_apo": null, + "semestre_id": 1, + "bul_hide_xml": false, + "elt_annee_apo": null, + "block_moyennes": false, + "formsemestre_id": 1, + "titre_num": "master machine info semestre 1", + "date_debut_iso": "2021-09-01", + "date_fin_iso": "2022-12-15", + "responsables": [ + 3, + 2 + ] + }, + ... + ] + ``` * **`etudiant_bulletin_semestre`** @@ -225,6 +433,176 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ * **Routes:** `/etudiant/etudid//formsemestre//bulletin` ou `/etudiant/nip//formsemestre//bulletin` ou `/etudiant/ine//formsemestre//bulletin` * **Exemple d'utilisation:** `/etudiant/nip/1/formsemestre/1/bulletin` * **Résultat:** Retourne le bulletin d'un étudiant en fonction de son id et d'un semestre donné. (json) + * **Exemple de résultat:** + ``` + { + "version": "0", + "type": "BUT", + "date": "2022-04-27T07:18:16.450634Z", + "publie": true, + "etudiant": { + "civilite": "X", + "code_ine": "1", + "code_nip": "1", + "date_naissance": "", + "email": "SACHA.COSTA@example.com", + "emailperso": "", + "etudid": 1, + "nom": "COSTA", + "prenom": "SACHA", + "nomprenom": "Sacha COSTA", + "lieu_naissance": "", + "dept_naissance": "", + "nationalite": "", + "boursier": "", + "fiche_url": "/ScoDoc/TAPI/Scolarite/ficheEtud?etudid=1", + "photo_url": "/ScoDoc/TAPI/Scolarite/get_photo_image?etudid=1&size=small", + "id": 1, + "codepostaldomicile": "", + "paysdomicile": "", + "telephonemobile": "", + "typeadresse": "domicile", + "domicile": "", + "villedomicile": "", + "telephone": "", + "fax": "", + "description": "" + }, + "formation": { + "id": 1, + "acronyme": "BUT R&T", + "titre_officiel": "Bachelor technologique r\u00e9seaux et t\u00e9l\u00e9communications", + "titre": "BUT R&T" + }, + "formsemestre_id": 1, + "etat_inscription": "I", + "options": { + "show_abs": true, + "show_abs_modules": false, + "show_ects": true, + "show_codemodules": false, + "show_matieres": false, + "show_rangs": true, + "show_ue_rangs": true, + "show_mod_rangs": true, + "show_moypromo": false, + "show_minmax": false, + "show_minmax_mod": false, + "show_minmax_eval": false, + "show_coef": true, + "show_ue_cap_details": false, + "show_ue_cap_current": true, + "show_temporary": true, + "temporary_txt": "Provisoire", + "show_uevalid": true, + "show_date_inscr": true + }, + "ressources": { + "R101": { + "id": 1, + "titre": "Initiation aux r\u00e9seaux informatiques", + "code_apogee": null, + "url": "/ScoDoc/TAPI/Scolarite/Notes/moduleimpl_status?moduleimpl_id=1", + "moyenne": {}, + "evaluations": [ + { + "id": 1, + "description": "eval1", + "date": "2022-04-20", + "heure_debut": "08:00", + "heure_fin": "09:00", + "coef": "01.00", + "poids": { + "RT1.1": 1.0, + }, + "note": { + "value": "12.00", + "min": "00.00", + "max": "18.00", + "moy": "10.88" + }, + "url": "/ScoDoc/TAPI/Scolarite/Notes/evaluation_listenotes?evaluation_id=1" + } + ] + }, + }, + "saes": { + "SAE11": { + "id": 2, + "titre": "Se sensibiliser \u00e0 l'hygi\u00e8ne informatique et \u00e0 la cybers\u00e9curit\u00e9", + "code_apogee": null, + "url": "/ScoDoc/TAPI/Scolarite/Notes/moduleimpl_status?moduleimpl_id=2", + "moyenne": {}, + "evaluations": [] + }, + }, + "ues": { + "RT1.1": { + "id": 1, + "titre": "Administrer les r\u00e9seaux et l\u2019Internet", + "numero": 1, + "type": 0, + "color": "#B80004", + "competence": null, + "moyenne": { + "value": "08.50", + "min": "06.00", + "max": "16.50", + "moy": "11.31", + "rang": "12", + "total": 16 + }, + "bonus": "00.00", + "malus": "00.00", + "capitalise": null, + "ressources": { + "R101": { + "id": 1, + "coef": 12.0, + "moyenne": "12.00" + }, + }, + "saes": { + "SAE11": { + "id": 2, + "coef": 16.0, + "moyenne": "~" + }, + }, + "ECTS": { + "acquis": 0.0, + "total": 12.0 + } + }, + "semestre": { + "etapes": [], + "date_debut": "2021-09-01", + "date_fin": "2022-08-31", + "annee_universitaire": "2021 - 2022", + "numero": 1, + "inscription": "", + "groupes": [], + "absences": { + "injustifie": 1, + "total": 2 + }, + "ECTS": { + "acquis": 0, + "total": 30.0 + }, + "notes": { + "value": "10.60", + "min": "02.40", + "moy": "11.05", + "max": "17.40" + }, + "rang": { + "value": "10", + "total": 16 + } + } + } + ``` * **`etudiant_groups`** @@ -267,112 +645,589 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ ## Programmes de formations * **`formations`** * **Méthode:** GET - * **Paramètres:** `formation_id` (_optionnel, si absent, liste toutes les formations_) - * **Routes:** `/ScoDoc/api/formations` **ou** `/ScoDoc/api/formations/` - * **Exemple d'utilisation:** `/ScoDoc/api/formations` **ou** `/ScoDoc/api/formations/1` + * **Routes:** `/ScoDoc/api/formations` + * **Exemple d'utilisation:** `/ScoDoc/api/formations` * **Résultat:** Liste des formations. - * **Exemple de résultat:** `[formation_1, formation_2, formation_3, ...]` - * TODO: détailler le contenu publié - - - - * **`formation_export`** - * **Méthode:** GET - * **Paramètres:** `formation_id`, `export_ids` (_par défaut "faux"_) - * **Routes:** `/ScoDoc/api/formations/formation_export/?format=&export_ids=` - * **Exemple d'utilisation:** `/ScoDoc/api/formations/formation_export/596` **ou** `/ScoDoc/api/formations/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": ... - } -``` - -### UE - * **`UEs`** - * **Méthode:** GET - * **Paramètres:** `dept`, `̀semestre` - * **Routes:** `/ScoDoc/api/departements//formations/programme/` - * **Exemple d'utilisation:** `̀/ScoDoc/api/departements/MMI/formations/programme/INFO-DUT-FI-S1-2014` - * **Résultat:** Liste des UEs, ressources et SAE d'un semestre + ``` + [ + { + "id": 1, + "acronyme": "BUT R&T", + "titre_officiel": "Bachelor technologique r\u00e9seaux et t\u00e9l\u00e9communications", + "formation_code": "V1RET", + "code_specialite": null, + "dept_id": 1, + "titre": "BUT R&T", + "version": 1, + "type_parcours": 700, + "referentiel_competence_id": null, + "formation_id": 1 + }, + ... + ] + ``` + + * **`formations_by_id`** + * **Méthode:** GET + * **Paramètres:** `formation_id` + * **Routes:** `/formations/` + * **Exemple d'utilisation:** `/ScoDoc/api/formations/1` + * **Résultat:** Retourne une formation en fonction d'un id donné + * **Exemple de résultat:** + ``` + { + "id": 1, + "acronyme": "BUT R&T", + "titre_officiel": "Bachelor technologique réseaux et télécommunications", + "formation_code": "V1RET", + "code_specialite": null, + "dept_id": 1, + "titre": "BUT R&T", + "version": 1, + "type_parcours": 700, + "referentiel_competence_id": null, + "formation_id": 1 + } + ``` + * **`formation_export_by_formation_id`** + * **Méthode:** GET + * **Paramètres:** `formation_id`, `export_ids` (False par défaut) + * **Routes:** `/formations/formation_export/` + * **Exemple d'utilisation:** `/ScoDoc/api/formations/formation_export/1` + * **Résultat:** Retourne la formation, avec UE, matières, modules + * **Exemple de résultat:** + ``` + { + "id": 1, + "acronyme": "BUT R&T", + "titre_officiel": "Bachelor technologique r\u00e9seaux et t\u00e9l\u00e9communications", + "formation_code": "V1RET", + "code_specialite": null, + "dept_id": 1, + "titre": "BUT R&T", + "version": 1, + "type_parcours": 700, + "referentiel_competence_id": null, + "formation_id": 1, + "ue": [ + { + "acronyme": "RT1.1", + "numero": 1, + "titre": "Administrer les r\u00e9seaux et l\u2019Internet", + "type": 0, + "ue_code": "UCOD11", + "ects": 12.0, + "is_external": false, + "code_apogee": "", + "coefficient": 0.0, + "semestre_idx": 1, + "color": "#B80004", + "reference": 1, + "matiere": [ + { + "titre": "Administrer les r\u00e9seaux et l\u2019Internet", + "numero": 1, + "module": [ + { + "titre": "Initiation aux r\u00e9seaux informatiques", + "abbrev": "Init aux r\u00e9seaux informatiques", + "code": "R101", + "heures_cours": 0.0, + "heures_td": 0.0, + "heures_tp": 0.0, + "coefficient": 1.0, + "ects": "", + "semestre_id": 1, + "numero": 10, + "code_apogee": "", + "module_type": 2, + "coefficients": [ + { + "ue_reference": "1", + "coef": "12.0" + }, + { + "ue_reference": "2", + "coef": "4.0" + }, + { + "ue_reference": "3", + "coef": "4.0" + } + ] + }, + { + "titre": "Se sensibiliser \u00e0 l'hygi\u00e8ne informatique et \u00e0 la cybers\u00e9curit\u00e9", + "abbrev": "Hygi\u00e8ne informatique", + "code": "SAE11", + "heures_cours": 0.0, + "heures_td": 0.0, + "heures_tp": 0.0, + "coefficient": 1.0, + "ects": "", + "semestre_id": 1, + "numero": 10, + "code_apogee": "", + "module_type": 3, + "coefficients": [ + { + "ue_reference": "1", + "coef": "16.0" + } + ] + }, + ... + ] + }, + ... + ] + }, + ] + } + ``` - - - ### Semestres de formation Les sessions de formation (dénommées "semestres" même si elles durent une année ou un mois) sont représentées par les `formsemestre`. * **`formsemestre`** * **Méthode:** GET - * **Paramètres:** `formsemestre_id` ou `etape_apo`, `format`(json ou xml) - * **Routes:** `/ScoDoc/api/formations/formsemestre/`, `/ScoDoc/api/formsemestre/apo/` - * **Exemple d'utilisation:** `/ScoDoc/api/formations/formsemestre/12` - * **Résultat:** Informations sur le(s) formsemestre(s). + * **Paramètres:** `formsemestre_id` + * **Routes:** `/formsemestre/` + * **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/1` + * **Résultat:** Retourne l'information sur le formsemestre correspondant au formsemestre_id * **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, - } -] -``` - -#### Note sur les identifiants de sessions -Le `session_id` peut être utilisé pour identifier de façon prévisible et -(presque) unique une session dans un établissement, ce qui est utile -notamment pour interfacer ScoDoc à d'autres logiciels (par exemple gestion d'emplois -du temps ou de services d'enseignement). Cet identifiant est constitué des -informations suivantes: - - * **Département** (RT, GEII, INFO...) (= paramètre `DeptName`, en majuscules) - * **Nom parcours:** BUT, LP, ... (défini au niveau du parcours dans ScoDoc = NAME) - * **Modalité:** FI, FC, FA - * **"Spécialité":** S1 (ou S1D pour les semestres décalés), ou le - `code_specialite` si pas de semestres. Le code spécialité est un champ - (libre) nouveau dans la "formation" (programme pédagogique). - * **Année:** année de début de l'année scolaire correspondante (2014 pour - une session appartenant à l'année scolaire 2014-2015, même si elle - commence en mars 2015). + ``` + { + "date_fin": "31/08/2022", + "resp_can_edit": false, + "dept_id": 1, + "etat": true, + "resp_can_change_ens": true, + "id": 1, + "modalite": "FI", + "ens_can_edit_eval": false, + "formation_id": 1, + "gestion_compensation": false, + "elt_sem_apo": null, + "semestre_id": 1, + "bul_hide_xml": false, + "elt_annee_apo": null, + "titre": "Semestre test", + "block_moyennes": false, + "scodoc7_id": null, + "date_debut": "01/09/2021", + "gestion_semestrielle": false, + "bul_bgcolor": "white", + "formsemestre_id": 1, + "titre_num": "Semestre test semestre 1", + "date_debut_iso": "2021-09-01", + "date_fin_iso": "2022-08-31", + "responsables": [] + } + ``` + * **`formsemestre_apo`** + * **Méthode:** GET + * **Paramètres:** `etape_apo` + * **Routes:** `/formsemestre/apo/` + * **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/1` + * **Résultat:** Retourne les informations sur les formsemestres + * **Exemple de résultat:** + ``` + { + "date_fin": "31/08/2022", + "resp_can_edit": false, + "dept_id": 1, + "etat": true, + "resp_can_change_ens": true, + "id": 1, + "modalite": "FI", + "ens_can_edit_eval": false, + "formation_id": 1, + "gestion_compensation": false, + "elt_sem_apo": null, + "semestre_id": 1, + "bul_hide_xml": false, + "elt_annee_apo": null, + "titre": "Semestre test", + "block_moyennes": false, + "scodoc7_id": null, + "date_debut": "01/09/2021", + "gestion_semestrielle": false, + "bul_bgcolor": "white", + "formsemestre_id": 1, + "titre_num": "Semestre test semestre 1", + "date_debut_iso": "2021-09-01", + "date_fin_iso": "2022-08-31", + "responsables": [] + } + ``` + -**Exemple:** `INFO-DUT-FI-S1-2014` équivaut à un semestre S1 d'un DUT informatique de 2014 en formation initiale (FI) + * **`etudiant_bulletin`** + * **Méthode:** GET + * **Paramètres:** `formsemestre_id`, `dept`, `etudid`, `nip`, `ine` + * **Routes:** `/formsemestre//departements//etudiant/etudid//bulletin` ou `/formsemestre//departements//etudiant/nip//bulletin` ou `/formsemestre//departements//etudiant/ine//bulletin` + * **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/1/departements/MMI/etudiant/etudid/1/bulletin` + * **Résultat:** Retourne le bulletin de note d'un étudiant + * **Exemple de résultat:** + ``` + { + "etudid":1, + "formsemestre_id":1, + "date":"2022-04-27T10:44:47.448094", + "publie":true, + "etapes":[ + + ], + "etudiant":{ + "etudid":1, + "code_nip":"1", + "code_ine":"1", + "nom":"COSTA", + "prenom":"Sacha", + "civilite":"", + "photo_url":"/ScoDoc/TAPI/Scolarite/get_photo_image?etudid=1&size=small", + "email":"SACHA.COSTA@example.com", + "emailperso":"", + "sexe":"" + }, + "note":{ + "value":"10.60", + "min":"-", + "max":"-", + "moy":"-" + }, + "rang":{ + "value":"10", + "ninscrits":16 + }, + "rang_group":[ + { + "group_type":"TD", + "group_name":"", + "value":"", + "ninscrits":"" + } + ], + "note_max":{ + "value":20 + }, + "bonus_sport_culture":{ + "value":0.0 + }, + "ue":[ + { + "id":1, + "numero":"1", + "acronyme":"RT1.1", + "titre":"Administrer les r\u00e9seaux et l\u2019Internet", + "note":{ + "value":"08.50", + "min":"06.00", + "max":"16.50", + "moy":"11.31" + }, + "rang":"12", + "effectif":16, + "ects":"12", + "code_apogee":"", + "module":[ + { + "id":1, + "code":"R101", + "coefficient":1.0, + "numero":10, + "titre":"Initiation aux r\u00e9seaux informatiques", + "abbrev":"Init aux r\u00e9seaux informatiques", + "note":{ + "value":"12.00", + "moy":"-", + "max":"-", + "min":"-", + "nb_notes":"-", + "nb_missing":"-", + "nb_valid_evals":"-" + }, + "code_apogee":"", + "evaluation":[ + { + "jour":"2022-04-20", + "heure_debut":"08:00:00", + "heure_fin":"09:00:00", + "coefficient":1.0, + "evaluation_type":0, + "evaluation_id":1, + "description":"eval1", + "note":"12.00" + } + ] + }, + ... + ] + } + ], + "ue_capitalisee":[], + "absences":{ + "nbabs":2, + "nbabsjust":1 + }, + "appreciation":[] + } + ``` + + + + * **`bulletins`** + * **Méthode:** GET + * **Paramètres:** `formsemestre_id` + * **Routes:** `/formsemestre//bulletins` + * **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/1/bulletins` + * **Résultat:** Retourne les bulletins d'un formsemestre donné + * **Exemple de résultat:** + ``` + [ + { + "version": "0", + "type": "BUT", + "date": "2022-04-27T07:18:16.450634Z", + "publie": true, + "etudiant": { + "civilite": "X", + "code_ine": "1", + "code_nip": "1", + "date_naissance": "", + "email": "SACHA.COSTA@example.com", + "emailperso": "", + "etudid": 1, + "nom": "COSTA", + "prenom": "SACHA", + "nomprenom": "Sacha COSTA", + "lieu_naissance": "", + "dept_naissance": "", + "nationalite": "", + "boursier": "", + "fiche_url": "/ScoDoc/TAPI/Scolarite/ficheEtud?etudid=1", + "photo_url": "/ScoDoc/TAPI/Scolarite/get_photo_image?etudid=1&size=small", + "id": 1, + "codepostaldomicile": "", + "paysdomicile": "", + "telephonemobile": "", + "typeadresse": "domicile", + "domicile": "", + "villedomicile": "", + "telephone": "", + "fax": "", + "description": "" + }, + "formation": { + "id": 1, + "acronyme": "BUT R&T", + "titre_officiel": "Bachelor technologique r\u00e9seaux et t\u00e9l\u00e9communications", + "titre": "BUT R&T" + }, + "formsemestre_id": 1, + "etat_inscription": "I", + "options": { + "show_abs": true, + "show_abs_modules": false, + "show_ects": true, + "show_codemodules": false, + "show_matieres": false, + "show_rangs": true, + "show_ue_rangs": true, + "show_mod_rangs": true, + "show_moypromo": false, + "show_minmax": false, + "show_minmax_mod": false, + "show_minmax_eval": false, + "show_coef": true, + "show_ue_cap_details": false, + "show_ue_cap_current": true, + "show_temporary": true, + "temporary_txt": "Provisoire", + "show_uevalid": true, + "show_date_inscr": true + }, + "ressources": { + "R101": { + "id": 1, + "titre": "Initiation aux r\u00e9seaux informatiques", + "code_apogee": null, + "url": "/ScoDoc/TAPI/Scolarite/Notes/moduleimpl_status?moduleimpl_id=1", + "moyenne": {}, + "evaluations": [ + { + "id": 1, + "description": "eval1", + "date": "2022-04-20", + "heure_debut": "08:00", + "heure_fin": "09:00", + "coef": "01.00", + "poids": { + "RT1.1": 1.0, + }, + "note": { + "value": "12.00", + "min": "00.00", + "max": "18.00", + "moy": "10.88" + }, + "url": "/ScoDoc/TAPI/Scolarite/Notes/evaluation_listenotes?evaluation_id=1" + } + ] + }, + }, + "saes": { + "SAE11": { + "id": 2, + "titre": "Se sensibiliser \u00e0 l'hygi\u00e8ne informatique et \u00e0 la cybers\u00e9curit\u00e9", + "code_apogee": null, + "url": "/ScoDoc/TAPI/Scolarite/Notes/moduleimpl_status?moduleimpl_id=2", + "moyenne": {}, + "evaluations": [] + }, + }, + "ues": { + "RT1.1": { + "id": 1, + "titre": "Administrer les r\u00e9seaux et l\u2019Internet", + "numero": 1, + "type": 0, + "color": "#B80004", + "competence": null, + "moyenne": { + "value": "08.50", + "min": "06.00", + "max": "16.50", + "moy": "11.31", + "rang": "12", + "total": 16 + }, + "bonus": "00.00", + "malus": "00.00", + "capitalise": null, + "ressources": { + "R101": { + "id": 1, + "coef": 12.0, + "moyenne": "12.00" + }, + }, + "saes": { + "SAE11": { + "id": 2, + "coef": 16.0, + "moyenne": "~" + }, + }, + "ECTS": { + "acquis": 0.0, + "total": 12.0 + } + }, + "semestre": { + "etapes": [], + "date_debut": "2021-09-01", + "date_fin": "2022-08-31", + "annee_universitaire": "2021 - 2022", + "numero": 1, + "inscription": "", + "groupes": [], + "absences": { + "injustifie": 1, + "total": 2 + }, + "ECTS": { + "acquis": 0, + "total": 30.0 + }, + "notes": { + "value": "10.60", + "min": "02.40", + "moy": "11.05", + "max": "17.40" + }, + "rang": { + "value": "10", + "total": 16 + } + } + }, + ... + ] + ``` + + + + * **`jury`** + * **Méthode:** GET + * **Paramètres:** `formsemestre_id` + * **Routes:** `/formsemestre//jury` + * **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/1/jury` + * **Résultat:** Retourne le récapitulatif des décisions jury + * **Exemple de résultat:** + ``` + XXX A COMPLETER + ``` ### Modules de formation Les moduleimpl sont les modules d'un semestre, ou les ressources, ou les SAÉs. On peut récupérer soit un module par son id, soit la listes des modules d'un semestre. - * **`moduleimpl`** + * **`moduleimpls`** * **Méthode:** GET - * **Paramètres**: `formsemestre_id` ou `moduleimpl_id` - * **Routes:** `/ScoDoc/api/formations/moduleimpl/` **ou** `/ScoDoc/api/formations/moduleimpl//formsemestre/` - * **Résultat:** liste de moduleimpl - * **Exemple de résultat:** - TODO - - - - + * **Paramètres:** `moduleimpl_id` + * **Routes:** `/formations/moduleimpl/` + * **Exemple d'utilisation:** `/ScoDoc/api/formations/moduleimpl/1` + * **Résultat:** Retourne la liste des moduleimpl + * **Exemple de résultat:** + ``` + XXX A COMPLETER + ``` + + * **`moduleimpls_sem`** + * **Méthode:** GET + * **Paramètres:** `moduleimpl_id` + * **Routes:** `/formations/moduleimpl/formsemestre//liste` + * **Exemple d'utilisation:** `/ScoDoc/api/formations/moduleimpl/formsemestre/1/liste` + * **Résultat:** Retourne la liste des moduleimpl d'un semestre + * **Exemple de résultat:** + ``` + [ + { + "id": 1, + "formsemestre_id": 1, + "computation_expr": null, + "module_id": 1, + "responsable_id": 2, + "module": { + "heures_tp": 0.0, + "code_apogee": "", + "titre": "Initiation aux r\u00e9seaux informatiques", + "coefficient": 1.0, + "module_type": 2, + "id": 1, + "ects": null, + "abbrev": "Init aux r\u00e9seaux informatiques", + "ue_id": 1, + "code": "R101", + "formation_id": 1, + "heures_cours": 0.0, + "matiere_id": 1, + "heures_td": 0.0, + "semestre_id": 1, + "numero": 10, + "module_id": 1 + }, + "moduleimpl_id": 1, + "ens": [] + }, + ... + ] + ``` ### Groupes et partitions @@ -386,164 +1241,154 @@ d'un nombre quelconque de groupes d'étudiants. * **Routes:** `/ScoDoc/api/partitions/` * **Exemple d'utilisation:** `/ScoDoc/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 - } - ] - } -] -``` + * **Exemple de résultat:** + ``` + [ + { + "partition_id": 2, + "id": 2, + "formsemestre_id": 1, + "partition_name": "TD", + "numero": 1, + "bul_show_rank": false, + "show_in_lists": true + }, + { + "partition_id": 1, + "id": 1, + "formsemestre_id": 1, + "partition_name": null, + "numero": 0, + "bul_show_rank": false, + "show_in_lists": true + } + ] + ``` + + * **`etud_in_group`** + * **Méthode: GET** + * **Paramètres:** `group_id`, `etat` + * **Routes:** `/partitions/groups/` ou `/partitions/groups//etat/` + * **Exemple d'utilisation:** `/ScoDoc/api/partitions/groups/1` + * **Résultat:** La liste de toutes les partitions d'un formsemestre. + * **Exemple de résultat:** + ``` + [ + { + "etudid": 10, + "id": 10, + "dept_id": 1, + "nom": "BOUTET", + "prenom": "Marguerite", + "nom_usuel": "", + "civilite": "F", + "date_naissance": null, + "lieu_naissance": null, + "dept_naissance": null, + "nationalite": null, + "statut": null, + "boursier": null, + "photo_filename": null, + "code_nip": "10", + "code_ine": "10", + "scodoc7_id": null, + "email": "MARGUERITE.BOUTET@example.com", + "emailperso": null, + "domicile": null, + "codepostaldomicile": null, + "villedomicile": null, + "paysdomicile": null, + "telephone": null, + "telephonemobile": null, + "fax": null, + "typeadresse": "domicile", + "description": null, + "group_id": 1, + "etat": "I", + "civilite_str": "Mme", + "nom_disp": "BOUTET", + "nomprenom": "Mme Marguerite BOUTET", + "ne": "e", + "email_default": "MARGUERITE.BOUTET@example.com" + }, + ... + ] + ``` + - - * **`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` - * **Routes:** `/ScoDoc/api/partitions/formsemestre//groups/group_ids?with_codes=&all_groups=&etat=None|I` - * **Exemple d'utilisation:** `/ScoDoc/api/partitions/formsemestre/213/groups/123?with_codes=True` - * **Résultat:** Liste des étudiants dans un groupe. - * **Exemple de résultat au format XML:** (_avec `with_codes=True`_) -``` - - - - - - - - - - - - - - - - - - - - - - -``` - - * **Exemple de résultat au format JSON:** -``` -[ - { - "etat":"I", - "emailperso":null, - "prenom":"Dalil", - "nom_disp":"CLINTO",? - "email":"xxx@example.com", - "62029":"A", - "62032":null, - "62031":"G1", - "62030":"A1" - }, - { - "etat":"I", - "emailperso":null, - "prenom":"Georges", - "nom_disp":"BUSH", - "email":"bush@example.com", - "62029":"A", - "62032":null, - "62031":"G1", - "62030":"A1" - }, - ... -] -``` - - * **`set_groups`** * **Méthode:** POST - * **Paramètres:** `partition_id`, `groups`, `groups_to_delete`, `groups_to_create` - * **Routes:** `/ScoDoc/api/partitions/set_groups?partition_id=&groups=&groups_to_delete=&groups_to_create=` - * **Exemple d'utilisation:** `/ScoDoc/api/partitions/set_groups?partition_id=65&groups=77&groups_to_delete=8&groups_to_create=4` + * **Paramètres:** `partition_id`, `groups_lists`, `groups_to_delete`, `groups_to_create` + * **Routes:** `/partitions/set_groups/partition//groups//delete//create/` + * **Exemple d'utilisation:** `/ScoDoc/api/partitions/set_groups/partition/1/groups/"A COMPLETER"/delete/"A COMPLETER"/create/"A COMPLETER"` * **Résultat:** Set les groups. - - TODO: à changer, passer les paramètres dans le corps de la requête - + ### Bulletins de notes * **`evaluations`** * **Méthode:** GET * **Paramètres:** `moduleimpl_id` - * **Routes:** `/ScoDoc/api/evaluations/` - * **Exemple d'utilisation:** `/ScoDoc/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, ...]` + * **Routes:** `/evaluations/` + * **Exemple d'utilisation:** `/ScoDoc/api/evaluations/1` + * **Résultat:** Retourne la liste des évaluations à partir de l'id d'un moduleimpl + * **Exemple de résultat:** + ``` + [ + { + "moduleimpl_id": 1, + "jour": "20/04/2022", + "heure_debut": "08h00", + "description": "eval1", + "coefficient": 1.0, + "publish_incomplete": false, + "numero": 0, + "id": 1, + "heure_fin": "09h00", + "note_max": 20.0, + "visibulletin": true, + "evaluation_type": 0, + "evaluation_id": 1, + "jouriso": "2022-04-20", + "duree": "1h", + "descrheure": " de 08h00 \u00e0 09h00", + "matin": 1, + "apresmidi": 0 + }, + ... + ] + ``` * **`evaluation_notes`** * **Méthode**: GET * **Paramètres**: `evaluation_id` - * **Routes:** `/ScoDoc/api/evaluations/eval_notes/` - * **Exemple d'utilisation:** `/ScoDoc/api/evaluations/eval_notes/24` - * **Résultat:** Liste des notes à partir de l'id d'une évaluation donnée. - * **Exemple de résultat:** -``` -[ - { - "84": "13", - "85": "15", - "86": "9", - ... - } -] -``` - - - * **`evaluation_set_notes`** - * **Méthode:** POST - * **Paramètres:** `eval_id`, `etudid`, `note` - * **Routes:** `/ScoDoc/api/evaluations/eval_set_notes?eval_id=&etudid=¬e=` - * **Exemple d'utilisation:** `/ScoDoc/api/evaluations/eval_set_notes?eval_id=6&etudid=456¬e=15` - * **Résultat:** Set les notes d'une évaluation pour un étudiant donné. - TODO vérifier et passer les valeurs dans le corps. + * **Routes:** `/evaluations/eval_notes/` + * **Exemple d'utilisation:** `/ScoDoc/api/evaluations/eval_notes/1` + * **Résultat:** Retourne la liste des notes à partir de l'id d'une évaluation donnée + * **Exemple de résultat:** + ``` + { + "1": { + "id": 1, + "etudid": 10, + "evaluation_id": 1, + "value": 15.0, + "comment": "", + "date": "Wed, 20 Apr 2022 06:49:05 GMT", + "uid": 2 + }, + "2": { + "id": 2, + "etudid": 1, + "evaluation_id": 1, + "value": 12.0, + "comment": "", + "date": "Wed, 20 Apr 2022 06:49:06 GMT", + "uid": 2 + }, + ... + } + ``` ### Absences @@ -552,58 +1397,99 @@ d'un nombre quelconque de groupes d'étudiants. * **`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_). - * **Routes:** `/ScoDoc/api/absences/` - * **Exemple d'utilisation:** `/ScoDoc/api/absences/54` - * **Résultat:** Liste des absences d'un étudiant donné. + * **Paramètres:** `etudid`, `nip`, `ine` + * **Routes:** `/absences/etudid/` ou `/absences/nip/` ou `/absences/ine/` + * **Exemple d'utilisation:** `/ScoDoc/api/absences/ine/1` + * **Résultat:** Retourne la liste des absences d'un étudiant donné * **Exemple de résultat:** - ```{jour: "2021-02-10", ampm: "0", description: "M2202", }``` (_**ampm** vaut 1 le matin et 0 l'après-midi_). - - - * **`abs_signale`** - * **Méthode:** POST - * **Paramètres:** `date_debut`, `date_fin`, `module_impl_id=None`, `demi_journee=2`, `estjust=False`, `description`, `etudid` - * **Body de la requête:** `date_debut=date_debut&date_fin=date_fin&demi_journee=demi_journee&description=description&etudid=` - * **Exemple d'utilisation:** `date_debut=2015-02-01&date_fin=2015-02-03&demi_journee=4&description=""&etudid=874` - * **Résultat:** *html* - - - * **`abs_annule`** - * **Méthode:** POST - * **Paramètres:** `date_debut`, `date_fin`, `demi_journee`, `etudid` - * **Body de la requête:** `date_debut=date_debut&date_fin=date_fin&demi_journee=demi_journee&etudid=` - * **Exemple d'utilisation:** `date_debut=2004-05-03&date_fin=2004-06-07&demi_journee=2&etudid=451` - * **Résultat:** *html* - - - * **`abs_annule_justif`** - * **Méthode:** POST - * **Paramètres:** `context`, `date_debut`, `date_fin`, `demi_journee` - * **Body de la requête:** `context=context&date_debut=date_debut&date_fin=date_fin&demi_journee=demi_journee` - * **Exemple d'utilisation:** `context=malade&date_debut=2020-01-05&date_fin=2020-01-06&demi_journee=1` - * **Résultat:** *html* + ``` + [ + { + "jour": "2022-04-15", + "matin": true, + "estabs": true, + "estjust": true, + "description": "", + "begin": "2022-04-15 08:00:00", + "end": "2022-04-15 11:59:59" + }, + { + "jour": "2022-04-15", + "matin": false, + "estabs": true, + "estjust": false, + "description": "", + "begin": "2022-04-15 12:00:00", + "end": "2022-04-15 17:59:59" + } + ] + ``` + + * **`absences_just`** + * **Méthode:** GET + * **Paramètres:** `etudid`, `nip`, `ine` + * **Routes:** `/absences/etudid//just` ou `/absences/nip//just` ou `/absences/ine//just` + * **Exemple d'utilisation:** `/ScoDoc/api/absences/ine/1/just` + * **Résultat:** Retourne la liste des absences justifiées d'un étudiant donné + * **Exemple de résultat:** + ``` + [ + { + "jour": "2022-04-15", + "matin": true, + "estabs": true, + "estjust": true, + "description": "", + "begin": "2022-04-15 08:00:00", + "end": "2022-04-15 11:59:59" + }, + { + "jour": "2022-04-15", + "matin": false, + "estabs": true, + "estjust": true, + "description": "", + "begin": "2022-04-15 12:00:00", + "end": "2022-04-15 17:59:59" + } + ] + ``` * **`abs_groupe_etat`** * **Méthode:** GET * **Paramètres:** `group_ids`, `date_debut`, `date_fin`, `with_boursier=True`, `format=html` - * **Routes:** `/ScoDoc/api/absences/abs_group_etat/?group_ids=group_ids&date_debut=date_debut&date_fin=date_fin` - * **Exemple d'utilisation:** `/ScoDoc/api/absences/abs_group_etat/?group_ids=45&date_debut=2019-01-30&date_fin=2019-02-30` + * **Routes:** `/absences/abs_group_etat/` ou `/absences/abs_group_etat/group_id//date_debut//date_fin/` + * **Exemple d'utilisation:** `/ScoDoc/api/absences/abs_group_etat/1` * **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:** + ``` + XXX A COMPLETER ``` - [ - { - "boursier": "N", - "nbabs": "9", - "nbabsjust": "2", - "nbabsnonjust": "7", - "nbjustifs_noabs": "0", - "nomprenom": "Mme Poisson Dodouce", - "etudid": "12345" - }, - ... - ] + + +### Jury + + * **`jury_preparation`** + * **Méthode:** GET + * **Paramètres:** `formsemestre_id` + * **Routes:** `/jury/formsemestre//preparation_jury` + * **Exemple d'utilisation:** `/ScoDoc/api/jury/formsemestre/1/preparation_jury` + * **Résultat:** Retourne la feuille de préparation du jury + * **Exemple de résultat:** + ``` + XXX A COMPLETER + ``` + + * **`jury_decisions`** + * **Méthode:** GET + * **Paramètres:** `formsemestre_id` + * **Routes:** `/jury/formsemestre//decisions_jury` + * **Exemple d'utilisation:** `/ScoDoc/api/jury/formsemestre/1/decisions_jury` + * **Résultat:** Retourne les décisions du jury suivant un formsemestre donné + * **Exemple de résultat:** + ``` + XXX A COMPLETER ``` ### Logos