From 5f97c42dae0d62f155eecfbf6bd4e44a18c2ba36 Mon Sep 17 00:00:00 2001 From: viennet Date: Mon, 25 Jul 2022 10:13:57 +0300 Subject: [PATCH] API: modif structure --- docs/GuideConfig.md | 9 +- docs/ScoDoc9API.md | 2192 ++++++++++++++++++++++--------------------- 2 files changed, 1124 insertions(+), 1077 deletions(-) diff --git a/docs/GuideConfig.md b/docs/GuideConfig.md index 3df50237e..f858b64dc 100644 --- a/docs/GuideConfig.md +++ b/docs/GuideConfig.md @@ -95,7 +95,11 @@ Ajoute ou retire une permission. flask user-role username [-d departement] [-a RoleAAjouter] [-r RoleARetirer] -Exemple: +Exemples: + + flask user-role dupont + +affiche les rôles de l'utilisateur `dupont`. flask user-role dupont -d MMI -a Observateur @@ -146,6 +150,7 @@ Commands: delete-dept Delete existing departement delete-role Delete a role dumphelp + list-roles List roles edit-role Add [-a] and/or remove [-r] a permission... import-scodoc7-dept Import département ScoDoc 7: dept:... import-scodoc7-users Import users defined in ScoDoc7... @@ -161,7 +166,7 @@ Commands: user-db-clear Erase all users and roles from the... user-delete Try to delete this user. user-password Set (or change) user’s password - user-role Add or remove a role to the given user... + user-role Display roles, or add or remove a role to the given user... Usage: app sco-db-init [OPTIONS] diff --git a/docs/ScoDoc9API.md b/docs/ScoDoc9API.md index 2477a9571..ee2fffbbc 100644 --- a/docs/ScoDoc9API.md +++ b/docs/ScoDoc9API.md @@ -163,209 +163,218 @@ par le serveur ScoDoc. ## Départements - * **`departements_ids`** - * **Méthode:** GET - * **Routes:** `/departements_ids` - * **Résultat:** Liste des id départements (visibles ou non). - * **Exemple de résultat:** - ``` - [ 1888, 999, 165 ] - ``` - * **`departement`** - * **Méthode:** GET - * **Routes:** `/departement/` - * **Résultat:** Un département - * **Exemple de résultat:** - ``` +#### **`departements_ids`** + + * **Méthode:** GET + * **Routes:** `/departements_ids` + * **Résultat:** Liste des id départements (visibles ou non). + * **Exemple de résultat:** + ``` + [ 1888, 999, 165 ] + ``` +#### **`departement`** + + * **Méthode:** GET + * **Routes:** `/departement/` + * **Résultat:** Un département + * **Exemple de résultat:** + ``` + { + "id": 1, + "acronym": "TAPI", + "description": null, + "visible": true, + "date_creation": "Fri, 15 Apr 2022 12:19:28 GMT" + }, + ``` + +#### **`departements`** + + * **Méthode:** GET + * **Routes:** `/departements` + * **Exemple d'utilisation:** `/api/departements` + * **Résultat:** Liste des tous les départements (visibles ou non). + * **Exemple de résultat:** + ``` + [ + { un département } + ... + ] + ``` + +#### **Étudiants d'un département** + + * **Méthode:** GET + * **Paramètres:** `dept`, `formsemestre_id` + * **Routes:** `/departement//etudiants` + * **Exemple d'utilisation:** `/api/departement/MMI/etudiants` + * **Résultat:** liste tous les étudiants d'un département, par défaut, ou d'un + formsemestre si renseigné. On peut spécifier l'acronyme du département + ("MMI") ou son id (un entier). + Attention, la liste peut être longue: requête coûteuse à éviter. + * **Exemple de résultat:** + ``` + [ { - "id": 1, - "acronym": "TAPI", - "description": null, - "visible": true, - "date_creation": "Fri, 15 Apr 2022 12:19:28 GMT" + "civilite": "M", // M, F ou X + "ine": "7899X61616", + "nip": "F6777H88", + "date_naissance": null, + "email": "toto@toto.fr", + "emailperso": null, + "etudid": 18, + "nom": "MOREL", // en majuscules + "prenom": "JACQUES" }, - ``` + ... + ] + ``` - * **`departements`** - * **Méthode:** GET - * **Routes:** `/departements` - * **Exemple d'utilisation:** `/api/departements` - * **Résultat:** Liste des tous les départements (visibles ou non). - * **Exemple de résultat:** - ``` - [ - { un département } - ... - ] - ``` +### Semestres - - * **Étudiants d'un département** - * **Méthode:** GET - * **Paramètres:** `dept`, `formsemestre_id` - * **Routes:** `/departement//etudiants` - * **Exemple d'utilisation:** `/api/departement/MMI/etudiants` - * **Résultat:** liste tous les étudiants d'un département, par défaut, ou d'un - formsemestre si renseigné. On peut spécifier l'acronyme du département - ("MMI") ou son id (un entier). - Attention, la liste peut être longue: requête coûteuse à éviter. - * **Exemple de résultat:** - ``` - [ - { - "civilite": "M", // M, F ou X - "ine": "7899X61616", - "nip": "F6777H88", - "date_naissance": null, - "email": "toto@toto.fr", - "emailperso": null, - "etudid": 18, - "nom": "MOREL", // en majuscules - "prenom": "JACQUES" - }, - ... - ] - ``` +#### **Formsemestres** -#### Semestres - * **Formsemestres** - * **Méthode:** GET - * **Paramètres:** `dept` - * **Routes:** `/departement//formsemestres_ids` - * **Exemple d'utilisation:** `/api/departement/MMI/formsemestres_ids` - * **Résultat:** Liste des id des formsemestres d'un département donné. - * **Exemple de résultat:** - ```[ 28, 99, 3 ]``` + * **Méthode:** GET + * **Paramètres:** `dept` + * **Routes:** `/departement//formsemestres_ids` + * **Exemple d'utilisation:** `/api/departement/MMI/formsemestres_ids` + * **Résultat:** Liste des id des formsemestres d'un département donné. + * **Exemple de résultat:** + ```[ 28, 99, 3 ]``` - * **Formsemestres en cours** - * **Méthode:** GET - * **Paramètres:** `dept` - * **Routes:** `/departement//formsemestres_courants` - * **Exemple d'utilisation:** `/api/departement/MMI/formsemestres_courants` - * **Résultat:** Liste des formsemestres en cours d'un département donné. - * **Exemple de résultat:** - ``` - [ - { - "block_moyennes": false, - "bul_bgcolor": "white", - "bul_hide_xml": false, - "date_debut_iso": "2021-09-01", - "date_debut": "01/09/2021", - "date_fin_iso": "2022-08-31", - "date_fin": "31/08/2022", - "dept_id": 1, - "elt_annee_apo": "V7HU", - "elt_sem_apo": null, - "ens_can_edit_eval": false, - "etat": true, - "formation_id": 1, - "formsemestre_id": 1, - "gestion_compensation": false, - "gestion_semestrielle": false, - "id": 1, - "modalite": "FI", - "resp_can_change_ens": true, - "resp_can_edit": false, - "responsables": [ - 12, - 42 - ], - "scodoc7_id": null, - "semestre_id": 1, - "titre_num": "BUT MMI semestre 1", - "titre": "BUT MMI", - "titre_formation": "BUT MMI" - }, - ... - ] - ``` +#### **Formsemestres en cours** + + * **Méthode:** GET + * **Paramètres:** `dept` + * **Routes:** `/departement//formsemestres_courants` + * **Exemple d'utilisation:** `/api/departement/MMI/formsemestres_courants` + * **Résultat:** Liste des formsemestres en cours d'un département donné. + * **Exemple de résultat:** + ``` + [ + { + "block_moyennes": false, + "bul_bgcolor": "white", + "bul_hide_xml": false, + "date_debut_iso": "2021-09-01", + "date_debut": "01/09/2021", + "date_fin_iso": "2022-08-31", + "date_fin": "31/08/2022", + "dept_id": 1, + "elt_annee_apo": "V7HU", + "elt_sem_apo": null, + "ens_can_edit_eval": false, + "etat": true, + "formation_id": 1, + "formsemestre_id": 1, + "gestion_compensation": false, + "gestion_semestrielle": false, + "id": 1, + "modalite": "FI", + "resp_can_change_ens": true, + "resp_can_edit": false, + "responsables": [ + 12, + 42 + ], + "scodoc7_id": null, + "semestre_id": 1, + "titre_num": "BUT MMI semestre 1", + "titre": "BUT MMI", + "titre_formation": "BUT MMI" + }, + ... + ] + ``` Le `titre`est celui donné par l'utilisateur dans le formsemestre, tandis que le `titre_formation` est l'acronyme de la formation (défini dans son programme pédagogique). ## Étudiants - * **`etudiants_courant`** - * **Méthode:** GET - * **Routes:** `/etudiants/courant` ou `/etudiants/courant/long` - * **Exemple d'utilisation:** `/api/etudiants/courant` - * **Résultat:** Liste des étudiants inscrits dans un formsemestre - actuellement en cours. Avec `/long`, donne tous les attributs de - l'étudiants (plus lent). - * **Exemple de résultat:** +#### **`etudiants_courant`** + + * **Méthode:** GET + * **Routes:** `/etudiants/courant` ou `/etudiants/courant/long` + * **Exemple d'utilisation:** `/api/etudiants/courant` + * **Résultat:** Liste des étudiants inscrits dans un formsemestre + actuellement en cours. Avec `/long`, donne tous les attributs de + l'étudiants (plus lent). + * **Exemple de résultat:** + ``` + [ + { + "id": 1, + "nip": 1, + "nom": "MOREL", + "prenom": "JACQUES", + "civilite": "X" + }, + { + "id": 2, + "nip": 2, + "nom": "GILLES", + "prenom": "MAXIME", + "civilite": "X" + } + ] + ``` + +#### **`etudiant`** + + * **Méthode:** GET + * **Paramètres:** `etudid`, `nip`, `ine` + * **Routes:** `/etudiant/etudid/` ou `/etudiant/nip/` ou `/etudiant/ine/` + * **Exemple d'utilisation:** `/api/etudiant/nip/1` + * **Résultat:** Retourne les informations sur l'étudiant correspondant à + l'id passé en paramètres. + Les codes INE et NIP sont uniques au sein d'un département. + Si plusieurs objets étudiant ont le même code, on ramène le plus récemment inscrit. + * **Exemple de résultat:** ``` - [ - { - "id": 1, - "nip": 1, - "nom": "MOREL", - "prenom": "JACQUES", - "civilite": "X" - }, - { - "id": 2, - "nip": 2, - "nom": "GILLES", - "prenom": "MAXIME", - "civilite": "X" - } - ] + { + "civilite": "X", + "code_ine": "1", + "code_nip": "1", + "date_naissance": "", + "dept_id": 1, + "dept_acronym": "TAPI", + "email": "SACHA.COSTA@example.com", + "emailperso": "", + "etudid": 1, + "nom": "COSTA", + "prenom": "SACHA", + "nomprenom": "Sacha COSTA", + "lieu_naissance": "", + "dept_naissance": "", + "nationalite": "", + "boursier": "", + "id": 1, + "codepostaldomicile": "", + "paysdomicile": "", + "telephonemobile": "", + "typeadresse": "domicile", + "domicile": "", + "villedomicile": "", + "telephone": "", + "fax": "", + "description": "" + } ``` - * **`etudiant`** - * **Méthode:** GET - * **Paramètres:** `etudid`, `nip`, `ine` - * **Routes:** `/etudiant/etudid/` ou `/etudiant/nip/` ou `/etudiant/ine/` - * **Exemple d'utilisation:** `/api/etudiant/nip/1` - * **Résultat:** Retourne les informations sur l'étudiant correspondant à - l'id passé en paramètres. - Les codes INE et NIP sont uniques au sein d'un département. - Si plusieurs objets étudiant ont le même code, on ramène le plus récemment inscrit. - * **Exemple de résultat:** - ``` - { - "civilite": "X", - "code_ine": "1", - "code_nip": "1", - "date_naissance": "", - "dept_id": 1, - "dept_acronym": "TAPI", - "email": "SACHA.COSTA@example.com", - "emailperso": "", - "etudid": 1, - "nom": "COSTA", - "prenom": "SACHA", - "nomprenom": "Sacha COSTA", - "lieu_naissance": "", - "dept_naissance": "", - "nationalite": "", - "boursier": "", - "id": 1, - "codepostaldomicile": "", - "paysdomicile": "", - "telephonemobile": "", - "typeadresse": "domicile", - "domicile": "", - "villedomicile": "", - "telephone": "", - "fax": "", - "description": "" - } - ``` -* **`etudiants`** - * **Méthode:** GET - * **Paramètres:** `etudid`, `nip`, `ine` - * **Routes:** `/etudiants/etudid/` ou `/etudiants/nip/` ou `/etudiants/ine/` - * **Exemple d'utilisation:** `/api/etudiants/nip/1` - * **Résultat:** Info sur le ou les étudiants correspondants. - Comme `/etudiant` mais renvoie toujours une liste. - Si non trouvé, liste vide, pas d'erreur. - Dans 99% des cas, la liste contient un seul étudiant, mais si l'étudiant a - été inscrit dans plusieurs départements, on a plusieurs objets (1 par - dept.). - -* **Exemple de résultat:** +#### **`etudiants`** + + * **Méthode:** GET + * **Paramètres:** `etudid`, `nip`, `ine` + * **Routes:** `/etudiants/etudid/` ou `/etudiants/nip/` ou `/etudiants/ine/` + * **Exemple d'utilisation:** `/api/etudiants/nip/1` + * **Résultat:** Info sur le ou les étudiants correspondants. + Comme `/etudiant` mais renvoie toujours une liste. + Si non trouvé, liste vide, pas d'erreur. + Dans 99% des cas, la liste contient un seul étudiant, mais si l'étudiant a + été inscrit dans plusieurs départements, on a plusieurs objets (1 par + dept.). + * **Exemple de résultat:** ``` [ { @@ -399,69 +408,534 @@ Le `titre`est celui donné par l'utilisateur dans le formsemestre, tandis que le ] ``` -#### Cursus - * **`etudiant_formsemestres`** - * **Méthode:** GET - * **Paramètres:** `etudid`, `nip`, `ine` - * **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:** - ``` - [ - { - "date_fin": "31/08/2022", - "resp_can_edit": false, - "dept_id": 1, - "etat": true, - "resp_can_change_ens": true, +### Cursus + +#### **`etudiant_formsemestres`** + * **Méthode:** GET + * **Paramètres:** `etudid`, `nip`, `ine` + * **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:** + ``` + [ + { + "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": [ + 12, + 42 + ], + "titre_court": "BUT MMI" + }, + ... + ] + ``` + +### Bulletin + +#### **`etudiant_bulletin_semestre`** + + * **Méthode:** GET + * **Paramètres:** `formsemestre_id`, `etudid`, `nip`, `ine` + * **Routes:** + `/etudiant/etudid//formsemestre//bulletin[/format][/pdf]` + ou `/etudiant/nip//formsemestre//bulletin[/format][/pdf]` + ou `/etudiant/ine//formsemestre//bulletin[/format][/pdf]` + + On peut spécifier le format: `long`ou `short`, et indiquer si l'on veut le + bulletin PDF. + * **Exemple d'utilisation:** `/etudiant/nip/1/formsemestre/1/bulletin` + * **Résultat:** Bulletin de l'étudiant dans le formsemestre. + Deux versions disponibles `long` et `short` (par défaut `long` ajoutez + `/short` pour la version plus courte). + + * **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éseaux et télécommunications", + "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, - "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": [ - 12, - 42 - ], - "titre_court": "BUT MMI" + "titre": "Initiation aux réseaux 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 + }, + "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 à l'hygiène informatique et à la cybersécurité", + "code_apogee": null, + "url": "/ScoDoc/TAPI/Scolarite/Notes/moduleimpl_status?moduleimpl_id=2", + "moyenne": {}, + "evaluations": [] + } + }, + "ues": { + "RT1.1": { + "id": 1, + "titre": "Administrer les réseaux et l’Internet", + "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, + "moyenne": "12.00" + } + }, + "saes": { + "SAE11": { + "id": 2, + "coef": 16, + "moyenne": "~" + } + }, + "ECTS": { + "acquis": 0, + "total": 12 + } }, - ... - ] - ``` + "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 + }, + "notes": { + "value": "10.60", + "min": "02.40", + "moy": "11.05", + "max": "17.40" + }, + "rang": { + "value": "10", + "total": 16 + } + } + } + } + ``` -#### Bulletin - * **`etudiant_bulletin_semestre`** - * **Méthode:** GET - * **Paramètres:** `formsemestre_id`, `etudid`, `nip`, `ine` - * **Routes:** - `/etudiant/etudid//formsemestre//bulletin[/format][/pdf]` - ou `/etudiant/nip//formsemestre//bulletin[/format][/pdf]` - ou `/etudiant/ine//formsemestre//bulletin[/format][/pdf]` - On peut spécifier le format: `long`ou `short`, et indiquer si l'on veut le - bulletin PDF. - * **Exemple d'utilisation:** `/etudiant/nip/1/formsemestre/1/bulletin` - * **Résultat:** Bulletin de l'étudiant dans le formsemestre. - Deux versions disponibles `long` et `short` (par défaut `long` ajoutez - `/short` pour la version plus courte). +#### **`etudiant_groups`** + + * **Méthode:** GET + * **Paramètres:** `formsemestre_id`, `etudid`, `nip`, `ine` + * **Routes:** `/etudiant/etudid//semestre//groups` ou `/etudiant/nip//semestre//groups` ou `/etudiant/ine//semestre//groups` + * **Exemple d'utilisation:** `/etudiant/nip/1/semestre/1/groups` + * **Résultat:** Retourne la liste des groupes auxquels appartient l'étudiant dans le semestre indiqué. (json) + * **Exemple de résultat:** + ``` + [ + { + "partition_id": 1, + "id": 1, + "formsemestre_id": 1, + "partition_name": "TD", + "numero": 0, + "bul_show_rank": false, + "show_in_lists": true, + "group_id": 1, + "group_name": "B" + }, + { + "partition_id": 2, + "id": 2, + "formsemestre_id": 1, + "partition_name": "TP", + "numero": 1, + "bul_show_rank": false, + "show_in_lists": true, + "group_id": 2, + "group_name": "A" + }, + ... + ] + ``` + + + +## Programmes de formations + +#### **`formation`** + + * **Méthode:** GET + * **Paramètres:** `formation_id` + * **Routes:** `/formation/` + * **Exemple d'utilisation:** `/ScoDoc/api/formation/1` + * **Résultat:** Retourne la formation d'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 + } + ``` + +#### **`formations_ids`** + + * **Méthode:** GET + * **Routes:** `/formations_ids` + * **Exemple d'utilisation:** `/ScoDoc/api/formations_ids` + * **Résultat:** Retourne la liste des ids de toutes les formations (tous départements) + * **Exemple de résultat:** `[17, 99, 32]` + +#### **`formations`** + + * **Méthode:** GET + * **Routes:** `/formations` + * **Exemple d'utilisation:** `/ScoDoc/api/formations` + * **Résultat:** Retourne la liste de toutes les formations (tous + départements) - * **Exemple de résultat:** - ``` +### Export programme + +#### **`formation_export`** + + * **Méthode:** GET + * **Paramètres:** `formation_id`, `export_ids` (False par défaut. Ajouter `/with_ids` pour le passer à True) + * **Routes:** `/formation/formation_export/` + * **Exemple d'utilisation:** `/ScoDoc/api/formation/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é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, + "ue": [ + { + "acronyme": "RT1.1", + "numero": 1, + "titre": "Administrer les réseaux et l’Internet", + "type": 0, + "ue_code": "UCOD11", + "ects": 12, + "is_external": false, + "code_apogee": "", + "coefficient": 0, + "semestre_idx": 1, + "color": "#B80004", + "reference": 1, + "matiere": [ + { + "titre": "Administrer les réseaux et l’Internet", + "numero": 1, + "module": [ + { + "titre": "Initiation aux réseaux informatiques", + "abbrev": "Init aux réseaux informatiques", + "code": "R101", + "heures_cours": 0, + "heures_td": 0, + "heures_tp": 0, + "coefficient": 1, + "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 à l'hygiène informatique et à la cybersécurité", + "abbrev": "Hygiène informatique", + "code": "SAE11", + "heures_cours": 0, + "heures_td": 0, + "heures_tp": 0, + "coefficient": 1, + "ects": "", + "semestre_id": 1, + "numero": 10, + "code_apogee": "", + "module_type": 3, + "coefficients": [ + { + "ue_reference": "1", + "coef": "16.0" + } + ] + } + ] + } + ] + } + ] + } + ``` + +#### Référentiel de compétences + +#### **`referentiel_competences`** + + * **Méthode:** GET + * **Paramètres:** `formation_id` + * **Routes:** `/formation//referentiel_competences` + * **Exemple d'utilisation:** `api/formation/1/referentiel_competences` + * **Résultat:** Le référentiel de compétences d'une formation donnée (json). (_pas toujours présent_) + +XXX obtenir la liste des référentiels ? + + +## Formsemestres + +Les sessions de formation (qu'elles durent une année ou un mois) sont représentées par les `formsemestre`. + +#### **`formsemestre`** + + * **Méthode:** GET + * **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" : "2021 - 2022", + "block_moyennes": false, + "bul_bgcolor": "white", + "bul_hide_xml": false, + "date_debut_iso": "2021-09-01", + "date_debut": "01/09/2021", + "date_fin_iso": "2022-08-31", + "date_fin": "31/08/2022", + "dept_id": 1, + "elt_annee_apo": null, + "elt_sem_apo": null, + "ens_can_edit_eval": false, + "etat": true, + "formation_id": 1, + "formsemestre_id": 1, + "gestion_compensation": false, + "gestion_semestrielle": false, + "id": 1, + "modalite": "FI", + "resp_can_change_ens": true, + "resp_can_edit": false, + "responsables": [ + 12, + 42 + ], + "scodoc7_id": null, + "semestre_id": 1, + "titre_court": "BUT MMI", + "titre_num": "Semestre test semestre 1", + "titre": "Semestre test", + "session_id": "MMI-BUT-FI-S1-2021", + } + ``` + +#### **`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:** + ``` + [ { formsemestre comme ci-dessus }, ... ] + ``` + + +### Note sur les identifiants de formsemestre +Le `session_id` peut être utilisé pour identifier de façon prévisible et +(presque) unique un formsemestre) 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...) (acronyme 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) dans la "formation" (le 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) + +### Étudiants inscrits et bulletins +#### **etudiants** + * **Méthode:** GET + * **Paramètres:** `formsemestre_id`, `etat` (par défaut égal à "I" pour les étudiants inscrits) + * **Routes:** `/formsemestre//etudiants` XXX voir si + filtrage par état (dem, def, ...) + * **Résultat:** les étudiants inscrits à ce semestres XXX préciser état + (DEM, DEF)) + +#### * **`bulletins`** + + * **Méthode:** GET + * **Paramètres:** `formsemestre_id` + * **Routes:** `/formsemestre//bulletins` + * **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/1/bulletins` + * **Résultat:** tous les bulletins d'un formsemestre. + * **Exemple de résultat:** + ``` + [ { "version": "0", "type": "BUT", @@ -630,593 +1104,147 @@ Le `titre`est celui donné par l'utilisateur dans le formsemestre, tandis que le } } } - ``` + ] + ``` +#### **etat_evals** - * **`etudiant_groups`** - * **Méthode:** GET - * **Paramètres:** `formsemestre_id`, `etudid`, `nip`, `ine` - * **Routes:** `/etudiant/etudid//semestre//groups` ou `/etudiant/nip//semestre//groups` ou `/etudiant/ine//semestre//groups` - * **Exemple d'utilisation:** `/etudiant/nip/1/semestre/1/groups` - * **Résultat:** Retourne la liste des groupes auxquels appartient l'étudiant dans le semestre indiqué. (json) - * **Exemple de résultat:** - ``` - [ + * **Méthode:** GET + * **Paramètres:** `formsemestre_id` + * **Routes:** `/formsemestre//etat_evals` + * **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/1/etat_evals` + * **Résultat:** Retourne les informations sur l'état des évaluations d'un semestre donnée + * **Exemple de résultat:** + ``` + { + "RT1.1": [ { - "partition_id": 1, "id": 1, - "formsemestre_id": 1, - "partition_name": "TD", - "numero": 0, - "bul_show_rank": false, - "show_in_lists": true, - "group_id": 1, - "group_name": "B" - }, - { - "partition_id": 2, - "id": 2, - "formsemestre_id": 1, - "partition_name": "TP", - "numero": 1, - "bul_show_rank": false, - "show_in_lists": true, - "group_id": 2, - "group_name": "A" - }, - ... - ] - ``` - - - -## Programmes de formations - - * **`formation`** - * **Méthode:** GET - * **Paramètres:** `formation_id` - * **Routes:** `/formation/` - * **Exemple d'utilisation:** `/ScoDoc/api/formation/1` - * **Résultat:** Retourne la formation d'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 - } - ``` - - * **`formations_ids`** - * **Méthode:** GET - * **Routes:** `/formations_ids` - * **Exemple d'utilisation:** `/ScoDoc/api/formations_ids` - * **Résultat:** Retourne la liste des ids de toutes les formations (tous départements) - * **Exemple de résultat:** `[17, 99, 32]` - - * **`formations`** - * **Méthode:** GET - * **Routes:** `/formations` - * **Exemple d'utilisation:** `/ScoDoc/api/formations` - * **Résultat:** Retourne la liste de toutes les formations (tous - départements) - -#### Export programme - * **`formation_export`** - * **Méthode:** GET - * **Paramètres:** `formation_id`, `export_ids` (False par défaut. Ajouter `/with_ids` pour le passer à True) - * **Routes:** `/formation/formation_export/` - * **Exemple d'utilisation:** `/ScoDoc/api/formation/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é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, - "ue": [ - { - "acronyme": "RT1.1", - "numero": 1, - "titre": "Administrer les réseaux et l’Internet", - "type": 0, - "ue_code": "UCOD11", - "ects": 12, - "is_external": false, - "code_apogee": "", - "coefficient": 0, - "semestre_idx": 1, - "color": "#B80004", - "reference": 1, - "matiere": [ - { - "titre": "Administrer les réseaux et l’Internet", - "numero": 1, - "module": [ - { - "titre": "Initiation aux réseaux informatiques", - "abbrev": "Init aux réseaux informatiques", - "code": "R101", - "heures_cours": 0, - "heures_td": 0, - "heures_tp": 0, - "coefficient": 1, - "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 à l'hygiène informatique et à la cybersécurité", - "abbrev": "Hygiène informatique", - "code": "SAE11", - "heures_cours": 0, - "heures_td": 0, - "heures_tp": 0, - "coefficient": 1, - "ects": "", - "semestre_id": 1, - "numero": 10, - "code_apogee": "", - "module_type": 3, - "coefficients": [ - { - "ue_reference": "1", - "coef": "16.0" - } - ] - } - ] - } - ] - } - ] - } - ``` - -#### Référentiel de compétences - - * **`referentiel_competences`** - * **Méthode:** GET - * **Paramètres:** `formation_id` - * **Routes:** `/formation//referentiel_competences` - * **Exemple d'utilisation:** `api/formation/1/referentiel_competences` - * **Résultat:** Le référentiel de compétences d'une formation donnée (json). (_pas toujours présent_) - * XXX obtenir la liste des référentiels - - -## Formsemestres - -Les sessions de formation (qu'elles durent une année ou un mois) sont représentées par les `formsemestre`. - - * **`formsemestre`** - * **Méthode:** GET - * **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" : "2021 - 2022", - "block_moyennes": false, - "bul_bgcolor": "white", - "bul_hide_xml": false, - "date_debut_iso": "2021-09-01", - "date_debut": "01/09/2021", - "date_fin_iso": "2022-08-31", - "date_fin": "31/08/2022", - "dept_id": 1, - "elt_annee_apo": null, - "elt_sem_apo": null, - "ens_can_edit_eval": false, - "etat": true, - "formation_id": 1, - "formsemestre_id": 1, - "gestion_compensation": false, - "gestion_semestrielle": false, - "id": 1, - "modalite": "FI", - "resp_can_change_ens": true, - "resp_can_edit": false, - "responsables": [ - 12, - 42 - ], - "scodoc7_id": null, - "semestre_id": 1, - "titre_court": "BUT MMI", - "titre_num": "Semestre test semestre 1", - "titre": "Semestre test", - "session_id": "MMI-BUT-FI-S1-2021", - } - ``` - * **`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:** - ``` - [ { formsemestre comme ci-dessus }, ... ] - ``` - - -#### Note sur les identifiants de formsemestre -Le `session_id` peut être utilisé pour identifier de façon prévisible et -(presque) unique un formsemestre) 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...) (acronyme 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) dans la "formation" (le 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) - -#### Étudiants inscrits - * **etudiants** - * **Méthode:** GET - * **Paramètres:** `formsemestre_id`, `etat` (par défaut égal à "I" pour les étudiants inscrits) - * **Routes:** `/formsemestre//etudiants` XXX voir si - filtrage par état (dem, def, ...) - * **Résultat:** les étudiants inscrits à ce semestres XXX préciser état - (DEM, DEF)) - -#### Bulletins - * **`bulletins`** - * **Méthode:** GET - * **Paramètres:** `formsemestre_id` - * **Routes:** `/formsemestre//bulletins` - * **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/1/bulletins` - * **Résultat:** tous les bulletins d'un formsemestre. - * **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éseaux et télécommunications", - "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": { + "titre": "Initiation aux réseaux informatiques", + "evaluations": [ + { "id": 1, - "titre": "Initiation aux réseaux 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 - }, - "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 à l'hygiène informatique et à la cybersécurité", - "code_apogee": null, - "url": "/ScoDoc/TAPI/Scolarite/Notes/moduleimpl_status?moduleimpl_id=2", - "moyenne": {}, - "evaluations": [] - } - }, - "ues": { - "RT1.1": { - "id": 1, - "titre": "Administrer les réseaux et l’Internet", - "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, - "moyenne": "12.00" - } - }, - "saes": { - "SAE11": { - "id": 2, - "coef": 16, - "moyenne": "~" - } - }, - "ECTS": { - "acquis": 0, - "total": 12 + "description": null, + "datetime_epreuve": null, + "heure_fin": "09:00:00", + "comptee": "oui", + "inscrits": 16, + "manquantes": 0, + "ABS": 0, + "ATT": 0, + "EXC": 0, + "saisie_notes": { + "datetime_debut": "2021-09-11T00:00:00+02:00", + "datetime_fin": "2022-08-25T00:00:00+02:00", + "datetime_mediane": "2022-03-19T00:00:00+01:00" } }, - "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 - }, - "notes": { - "value": "10.60", - "min": "02.40", - "moy": "11.05", - "max": "17.40" - }, - "rang": { - "value": "10", - "total": 16 + { + "id": 22, + "description": null, + "datetime_epreuve": "2021-08-11T00:00:00+02:00", + "heure_fin": "08:00:00", + "comptee": "oui", + "inscrits": 16, + "manquantes": 0, + "ABS": 0, + "ATT": 0, + "EXC": 0, + "saisie_notes": { + "datetime_debut": "2021-09-11T00:00:00+02:00", + "datetime_fin": "2022-08-25T00:00:00+02:00", + "datetime_mediane": "2022-03-19T00:00:00+01:00" } - } - } - } + }, + ] + }, ] - ``` - * **etat_evals** - * **Méthode:** GET - * **Paramètres:** `formsemestre_id` - * **Routes:** `/formsemestre//etat_evals` - * **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/1/etat_evals` - * **Résultat:** Retourne les informations sur l'état des évaluations d'un semestre donnée - * **Exemple de résultat:** - ``` - { - "RT1.1": [ - { - "id": 1, - "titre": "Initiation aux réseaux informatiques", - "evaluations": [ - { - "id": 1, - "description": null, - "datetime_epreuve": null, - "heure_fin": "09:00:00", - "comptee": "oui", - "inscrits": 16, - "manquantes": 0, - "ABS": 0, - "ATT": 0, - "EXC": 0, - "saisie_notes": { - "datetime_debut": "2021-09-11T00:00:00+02:00", - "datetime_fin": "2022-08-25T00:00:00+02:00", - "datetime_mediane": "2022-03-19T00:00:00+01:00" - } - }, - { - "id": 22, - "description": null, - "datetime_epreuve": "2021-08-11T00:00:00+02:00", - "heure_fin": "08:00:00", - "comptee": "oui", - "inscrits": 16, - "manquantes": 0, - "ABS": 0, - "ATT": 0, - "EXC": 0, - "saisie_notes": { - "datetime_debut": "2021-09-11T00:00:00+02:00", - "datetime_fin": "2022-08-25T00:00:00+02:00", - "datetime_mediane": "2022-03-19T00:00:00+01:00" - } - }, - ] - }, - ] - } - ``` + } + ``` - * **`jury`** (**non implémentée**) - * **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 - ``` +#### **`jury`** (**non implémentée**) -#### Programme d'un formsemestre - * **UE et modules** - * **Méthode:** GET - * **Paramètres:** `dept`, `formsemestre_id` - * **Routes:** `/formsemestre//programme` - * **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/1/programme` - * **Résultat:** Retourne la liste des UEs, modules, ressources et SAE d'un semestre. - * **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": [ - { - "ens": [ 10, 18 ], - "formsemestre_id": 1, - "id": 15, - "module": { - "abbrev": "Programmer", - "code": "SAE15", - "code_apogee": "V7GOP", - "coefficient": 1.0, - "formation_id": 1, - "heures_cours": 0.0, - "heures_td": 0.0, - "heures_tp": 0.0, - "id": 15, - "matiere_id": 3, - "module_id": 15, - "module_type": 3, - "numero": 50, - "semestre_id": 1, - "titre": "Programmer en Python", - "ue_id": 3 - }, - "module_id": 15, - "moduleimpl_id": 15, - "responsable_id": 2 + * **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 + ``` + +### Programme d'un formsemestre + +#### **UE et modules** + + * **Méthode:** GET + * **Paramètres:** `dept`, `formsemestre_id` + * **Routes:** `/formsemestre//programme` + * **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/1/programme` + * **Résultat:** Retourne la liste des UEs, modules, ressources et SAE d'un semestre. + * **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": [ + { + "ens": [ 10, 18 ], + "formsemestre_id": 1, + "id": 15, + "module": { + "abbrev": "Programmer", + "code": "SAE15", + "code_apogee": "V7GOP", + "coefficient": 1.0, + "formation_id": 1, + "heures_cours": 0.0, + "heures_td": 0.0, + "heures_tp": 0.0, + "id": 15, + "matiere_id": 3, + "module_id": 15, + "module_type": 3, + "numero": 50, + "semestre_id": 1, + "titre": "Programmer en Python", + "ue_id": 3 + }, + "module_id": 15, + "moduleimpl_id": 15, + "responsable_id": 2 + }, + ... + ], + "saes": [ + { ... - ], - "saes": [ - { - ... - }, - ... - ], - "modules" : [ ... les modules qui ne sont ni des SAEs ni des ressources ... ] - } - ``` + }, + ... + ], + "modules" : [ ... les modules qui ne sont ni des SAEs ni des ressources ... ] + } + ``` #### Module d'un formsemestre @@ -1224,43 +1252,44 @@ des informations suivantes: Le moduleimpl est la mise en place d'un module dans un formsemestre (avec son responsable et ses enseignants). - * **`moduleimpl`** - * **Méthode:** GET - * **Paramètres:** `moduleimpl_id` - * **Routes:** `/formation/moduleimpl/` - * **Exemple d'utilisation:** `/ScoDoc/api/formation/moduleimpl/1` - * **Résultat:** Retourne la liste des moduleimpl - * **Exemple de résultat:** - ``` - { +#### **`moduleimpl`** + + * **Méthode:** GET + * **Paramètres:** `moduleimpl_id` + * **Routes:** `/formation/moduleimpl/` + * **Exemple d'utilisation:** `/ScoDoc/api/formation/moduleimpl/1` + * **Résultat:** Retourne la liste des moduleimpl + * **Exemple de résultat:** + ``` + { + "id": 1, + "formsemestre_id": 1, + "computation_expr": null, + "module_id": 1, + "responsable_id": 2, + "moduleimpl_id": 1, + "ens": [], + "module": { + "heures_tp": 0, + "code_apogee": "", + "titre": "Initiation aux réseaux informatiques", + "coefficient": 1, + "module_type": 2, "id": 1, - "formsemestre_id": 1, - "computation_expr": null, - "module_id": 1, - "responsable_id": 2, - "moduleimpl_id": 1, - "ens": [], - "module": { - "heures_tp": 0, - "code_apogee": "", - "titre": "Initiation aux réseaux informatiques", - "coefficient": 1, - "module_type": 2, - "id": 1, - "ects": null, - "abbrev": "Init aux réseaux informatiques", - "ue_id": 1, - "code": "R101", - "formation_id": 1, - "heures_cours": 0, - "matiere_id": 1, - "heures_td": 0, - "semestre_id": 1, - "numero": 10, - "module_id": 1 - } + "ects": null, + "abbrev": "Init aux réseaux informatiques", + "ue_id": 1, + "code": "R101", + "formation_id": 1, + "heures_cours": 0, + "matiere_id": 1, + "heures_td": 0, + "semestre_id": 1, + "numero": 10, + "module_id": 1 } - ``` + } + ``` ### Groupes et partitions @@ -1268,191 +1297,199 @@ 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. - * **`partition`** - * **Méthode: GET** - * **Paramètres:** `formsemestre_id` - * **Routes:** `/partitions/` - * **Exemple d'utilisation:** `/ScoDoc/api/partition/48` - * **Résultat:** La liste de toutes les partitions d'un formsemestre. - * **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 - } - ] - ``` +#### **`partition`** + + * **Méthode: GET** + * **Paramètres:** `formsemestre_id` + * **Routes:** `/partitions/` + * **Exemple d'utilisation:** `/ScoDoc/api/partition/48` + * **Résultat:** La liste de toutes les partitions d'un formsemestre. + * **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 + } + ] + ``` - * **`groups`** - * **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:** Retourne la liste des étudiants dans un groupe. - * **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:** `group_id`, `etat` + * **Routes:** `/partitions/groups/` ou `/partitions/groups//etat/` + * **Exemple d'utilisation:** `/ScoDoc/api/partitions/groups/1` + * **Résultat:** Retourne la liste des étudiants dans un groupe. + * **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" + } + ] + ``` ### Évaluations - * **`evaluations`** - * **Méthode:** GET - * **Paramètres:** `moduleimpl_id` - * **Routes:** `/evaluations/` - * **Exemple d'utilisation:** `/ScoDoc/api/evaluations/1` - * **Résultat:** Retourne la liste des évaluations à partir de l'id d'un - moduleimpl (quel que soit leur statut). - * **Exemple de résultat:** - ``` - [ - { - "apresmidi": 0 - "coefficient": 1, - "description": "Compte-rendu de TP 2", - 'date_debut': '2022-05-13T11:30:00', - 'date_fin': '2022-05-13T12:30:00', - "evaluation_id": 1, - "evaluation_type": 0, - "id": 1, - "jour": "13/05/2022", - "matin": 1, - "moduleimpl_id": 1, - "note_max": 20, - "numero": 0, - "publish_incomplete": false, - "poids" : {1896: 0.0, 1897: 2.3, 1898: 4.2}, - "visibulletin": true, - } - ] - ``` + +#### **`evaluations`** + + * **Méthode:** GET + * **Paramètres:** `moduleimpl_id` + * **Routes:** `/evaluations/` + * **Exemple d'utilisation:** `/ScoDoc/api/evaluations/1` + * **Résultat:** Retourne la liste des évaluations à partir de l'id d'un + moduleimpl (quel que soit leur statut). + * **Exemple de résultat:** + ``` + [ + { + "apresmidi": 0 + "coefficient": 1, + "description": "Compte-rendu de TP 2", + 'date_debut': '2022-05-13T11:30:00', + 'date_fin': '2022-05-13T12:30:00', + "evaluation_id": 1, + "evaluation_type": 0, + "id": 1, + "jour": "13/05/2022", + "matin": 1, + "moduleimpl_id": 1, + "note_max": 20, + "numero": 0, + "publish_incomplete": false, + "poids" : {1896: 0.0, 1897: 2.3, 1898: 4.2}, + "visibulletin": true, + } + ] + ``` - * **`evaluations/notes`** - * **Méthode**: GET - * **Paramètres**: `evaluation_id` - * **Routes:** `/evaluations/eval_notes/` - * **Exemple d'utilisation:** `/ScoDoc/api/evaluations/notes/1` - * **Résultat:** Retourne la liste des notes d'une évaluation - * **Exemple de résultat:** - XXX à revoir (à spécifier/reprendre implémentation XXX was eval_notes) - +#### **`evaluations/notes`** + + * **Méthode**: GET + * **Paramètres**: `evaluation_id` + * **Routes:** `/evaluations/eval_notes/` + * **Exemple d'utilisation:** `/ScoDoc/api/evaluations/notes/1` + * **Résultat:** Retourne la liste des notes d'une évaluation + * **Exemple de résultat:** + XXX à revoir (à spécifier/reprendre implémentation XXX was eval_notes) + ### Absences **Remarques**, les dates sont au format iso `yyyy-mm-dd`. Les dates de fin ne sont pas incluses. Et `demi_journee`= 2 si journée complète, =1 si uniquement le matin, =0 si uniquement l'après-midi. - * **`absences`** - * **Méthode:** GET - * **Paramètres:** `etudid`, `nip`, `ine` - * **Routes:** `/absences/etudid/` - * **Exemple d'utilisation:** `/ScoDoc/api/absences/etudid/123456` - * **Résultat:** Retourne la liste des absences d'un étudiant donné - * **Exemple de résultat:** - ``` - [ - { - "jour": "2022-04-15", - "matin": true, - "estabs": true, - "estjust": true, - "description": "Retard bus", - "begin": "2022-04-15 08:00:00", - "end": "2022-04-15 11:59:59" - }, - { - ... - } - ] - ``` +#### **`absences`** + + * **Méthode:** GET + * **Paramètres:** `etudid`, `nip`, `ine` + * **Routes:** `/absences/etudid/` + * **Exemple d'utilisation:** `/ScoDoc/api/absences/etudid/123456` + * **Résultat:** Retourne la liste des absences d'un étudiant donné + * **Exemple de résultat:** + ``` + [ + { + "jour": "2022-04-15", + "matin": true, + "estabs": true, + "estjust": true, + "description": "Retard bus", + "begin": "2022-04-15 08:00:00", + "end": "2022-04-15 11:59:59" + }, + { + ... + } + ] + ``` - * **`absences/just`** - * **Méthode:** GET - * **Paramètres:** `etudid` - * **Routes:** `/absences/etudid//just` - * **Exemple d'utilisation:** `/ScoDoc/api/absences/etudid/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": "Retard bus", - "begin": "2022-04-15 08:00:00", - "end": "2022-04-15 11:59:59" - }, - { - ... - } - ] - ``` +#### **`absences/just`** + + * **Méthode:** GET + * **Paramètres:** `etudid` + * **Routes:** `/absences/etudid//just` + * **Exemple d'utilisation:** `/ScoDoc/api/absences/etudid/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": "Retard bus", + "begin": "2022-04-15 08:00:00", + "end": "2022-04-15 11:59:59" + }, + { + ... + } + ] + ``` - * **`abs_groupe_etat`** - * **Méthode:** GET - * **Paramètres:** `group_ids`, `date_debut`, `date_fin`, - * **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 groupe entre deux dates. - * **Exemple de résultat:** - ``` - XXX A COMPLETER XXX with_boursier ?? +#### **`abs_groupe_etat`** + + * **Méthode:** GET + * **Paramètres:** `group_ids`, `date_debut`, `date_fin`, + * **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 groupe entre deux dates. + * **Exemple de résultat:** + ``` + XXX A COMPLETER XXX with_boursier ?? * XXX ajouter méthode(s) de set abs ``` @@ -1460,63 +1497,68 @@ d'un nombre quelconque de groupes d'étudiants. ### 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_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 - ``` - +#### **`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 - * **`liste des logos globaux`** - * **Méthode:** GET - * **Paramètres:** `format` (json, xml), json par défaut - * **Route :** `/ScoDoc/api/logos` - * **Exemple d'utilisation :** `/ScoDoc/api/logos?format=xml` - * **Résultat :** Liste des noms des logos définis pour le site scodoc. - * **Exemple de résultat:** `['header', 'footer', 'custom']` +#### **`liste des logos globaux`** - XXX vérifier si on supporte XML et pour qui ? - - * **`récupération d'un logo global`** - * **Méthode:** GET - * **Paramètres :** Aucun - * **Route:** `/logos/` - * **Exemple d'utilisation :** `/ScoDoc/api/logos/header` - * **Résultat :** l'image (format png ou jpg) - - - * **`logo d'un département`** - * **Méthode:** GET - * **Paramètres:** `format` (json, xml) - * **Route :** `/departements//logos` - * **Exemple d'utilisation :** `/ScoDoc/api/departements/MMI/logos` - * **Résultat :** Liste des noms des logos définis pour le département visé. - * **Exemple de résultat:** `['footer', 'signature', 'universite']` + * **Méthode:** GET + * **Paramètres:** `format` (json, xml), json par défaut + * **Route :** `/ScoDoc/api/logos` + * **Exemple d'utilisation :** `/ScoDoc/api/logos?format=xml` + * **Résultat :** Liste des noms des logos définis pour le site scodoc. + * **Exemple de résultat:** `['header', 'footer', 'custom']` + XXX vérifier si on supporte XML et pour qui ? - * **`récupération d'un logo global`** - * **Méthode:** GET - * **Paramètres :** Aucun - * **Route:** `/departements//logos/` - * **Exemple d'utilisation:** `/ScoDoc/api/departements/MMI/logos/header` - * **Résultat :** l'image (format png ou jpg) +#### **`récupération d'un logo global`** + * **Méthode:** GET + * **Paramètres :** Aucun + * **Route:** `/logos/` + * **Exemple d'utilisation :** `/ScoDoc/api/logos/header` + * **Résultat :** l'image (format png ou jpg) + + +#### **`logo d'un département`** + + * **Méthode:** GET + * **Paramètres:** `format` (json, xml) + * **Route :** `/departements//logos` + * **Exemple d'utilisation :** `/ScoDoc/api/departements/MMI/logos` + * **Résultat :** Liste des noms des logos définis pour le département visé. + * **Exemple de résultat:** `['footer', 'signature', 'universite']` + + +#### **`récupération d'un logo global`** + + * **Méthode:** GET + * **Paramètres :** Aucun + * **Route:** `/departements//logos/` + * **Exemple d'utilisation:** `/ScoDoc/api/departements/MMI/logos/header` + * **Résultat :** l'image (format png ou jpg) ### En savoir plus