From 873c038640f907976c62cd2142b60b1d0fa2c80c Mon Sep 17 00:00:00 2001 From: leonard_montalbano Date: Mon, 15 Nov 2021 16:14:16 +0100 Subject: [PATCH 1/3] petit ajustement a droite a gauche de la doc api scodoc 9 --- docs/ScoDoc9API.md | 141 ++++++++++++++------------------------------- 1 file changed, 42 insertions(+), 99 deletions(-) diff --git a/docs/ScoDoc9API.md b/docs/ScoDoc9API.md index 432b42b..b1ac87b 100644 --- a/docs/ScoDoc9API.md +++ b/docs/ScoDoc9API.md @@ -42,7 +42,7 @@ Certaines ont plusieurs "routes" (URl), car ScoDoc 7 tolérait divers accès. - `etud_info` ou `XMLgetEtudInfos` ou `Absences/XMLgetEtudInfos` ou `Notes/XMLgetEtudInfos` (deviendra `/api/etud/`) - `groups_view` -les routes ci-dessus s'entendent à partir de l'URL de base de votre ScoDoc, c'est +Les routes ci-dessus s'entendent à partir de l'URL de base de votre ScoDoc, c'est à dire `https://votre.site.fr/ScoDoc//Scolarite/`, et répondent en GET et en POST. @@ -51,7 +51,7 @@ Note: # Résumé des fonctions d'API ScoDoc 9 (work in progress) -Basé sur le ticket +Basé sur le ticket [#149](https://scodoc.org/git/viennet/ScoDoc/issues/149) ## Définition des points d'accès à l'API REST (jwt): **Note: à reformatter: le tableau n'est pas lisible et exploitable** @@ -60,23 +60,24 @@ Elle sera accessible à l'adresse: https://scodoc.monsite.tld/ScoDoc/api/fonctio | Fonction | Méthode | Paramètres | Exemple | Exemple resultat | Commentaires | |:--------:|:-------:|:----------:|:-------:|:----------------|:------------:| -|etud_dept |GET|code_nip|/api/etud_dept/123|[ {exist: true, dept: "GEII", id: 987, dept_id: 3} ]|liste des étudiants avec le code NIP donné triée par ordre d'inscription décroissant| -|etud_info |GET|etud_id|/api/etud_info/987|{"nom": "Mutis","sexe": "M.","email": "alvaro.mutis@example.com","prenom": "ALVARO","nomprenom": "M. Alvaro MUTIS","insemestre": [{"etat": "I",form_sem_id": "SEM12781","date_fin": "2010-07-30","date_debut": "2010-01-25"},{"etat": "I",form_sem_id": "SEM8396","date_fin": "2009-01-16","date_debut": "2008-09-01"}],"etud_id": "EID8768","domicile": "2 Rue Madame","villedomicile": "Paris","telephonemobile": ""}| | -|etud_bul|GET|etud_id, sem_id|/api/etud_bul/987/12| |cf formsemestre_bulletinetud de [l'ancienne API](https://scodoc.org/ScoDocAPI/)| -|sem_info|GET|sem_id|/api/sem_info/12|[ {"titre": "DUT Génie Electrique et Informatique Industrielle","date_debut": "01/09/2021","date_fin": "02/02/2022","modalite": "FI","sem_id_txt": "S3","titre_num": "DUT Génie Electrique et Informatique Industrielle semestre 3","anneescolaire": "2021 - 2022","periode": 1,"titreannee": "DUT Génie Electrique et Informatique Industrielle semestre 3 FI 2021-2022"} ]| | -|photo|GET|etud_id|/api/photo/123 **OU** /api/photo/123/smal| | | -|formations|GET|dept (*facultatif*)|/api/formations **OU** /api/formations?dept=GEI| { "id": 1,"dept_id": 1,"acronyme": "BUT GEII", "titre": "BUT G\u00e9nie Electrique et Informatique Industrielle", "titre_officiel": "BUT G\u00e9nie Electrique et Informatique Industrielle","version": 1,"formation_code": "FCOD1","type_parcours": 600,"code_specialite": "","form_id": 1 }| | -|form_sem|GET|form_id|/api/formations/form_id| | | -|form_sem_partition|GET|semestre_id|/api/form_sem_partition/semestre_id| | | -|module_list|GET|semestre_id|/api/module_list/semestre_id| | | -|eval_list|GET|module_id|/api/eval_list/module_id| | | -|evaluation_listenotes|GET|eval_id|/api/evalutation_listenotes/eval_id| | | |setGroups|POST|partition_id, groupsLists, groupsToDelete, groupsToCreate|/api/setGroups/???| | | |setNote|POST|eval_id, etud_id, note|/api/setNote/???| | # XXX à revoir XXX Fonctions d'accès aux données + +## Départements + * **`departements`** + * Méthode: GET + * Paramètres: `viewable` (optionnel, si faux liste aussi les départements non accessible à l'utilisateur courant), `format` (json, xml) + * Format URL: + * Exemple d'utilisation: + * Résultat: Liste des id de départements. + * Exemple de résultat: + * Codes HTTP: [200](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/200), [403](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/403), [500](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/500) + + ## Etudiants * **`etud_dept`** * Méthode: GET @@ -95,13 +96,13 @@ Elle sera accessible à l'adresse: https://scodoc.monsite.tld/ScoDoc/api/fonctio } ] ``` - * Codes HTTP: + * Codes HTTP: [200](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/200), [403](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/403), [500](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/500) * **`etud_info`** * Méthode: GET * Paramètres: `etud_id` - * Format URL: `/api/etud_dept/` + * Format URL: `/api/etud_info/` * Exemple d'utilisation: `/api/etud_info/987` * Résultat: Un dictionnaire avec les informations de l'étudiant correspondant à l'id passé en paramètres. * Exemple de résultat: @@ -116,14 +117,14 @@ Elle sera accessible à l'adresse: https://scodoc.monsite.tld/ScoDoc/api/fonctio { "etat": "I", form_sem_id": "SEM12781", - "date_fin": "2010-07-30", - "date_debut": "2010-01-25" + "date_fin": "30-07-2010", + "date_debut": "25-01-2010" }, { "etat": "I", form_sem_id": "SEM8396", - "date_fin": "2009-01-16", - "date_debut": "2008-09-01" + "date_fin": "16-01-2009", + "date_debut": "01-09-2008" } ], "etud_id": "EID8768", @@ -132,7 +133,7 @@ Elle sera accessible à l'adresse: https://scodoc.monsite.tld/ScoDoc/api/fonctio "telephonemobile": "" } ``` - * Codes HTTP: + * Codes HTTP: [200](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/200), [403](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/403), [500](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/500) * **`etud_bul`** @@ -140,9 +141,9 @@ Elle sera accessible à l'adresse: https://scodoc.monsite.tld/ScoDoc/api/fonctio * Paramètres: `etud_id`, `sem_id` * Format URL: `/api/etud_bul//` * Exemple d'utilisation: `/api/etud_bul/987/12` - * Résultat: - * Exemple de résultat: - * Codes HTTP: + * Résultat: Le bulletin d'un étudiant en fonction de son id et d'un semestre donné. + * Exemple de résultat: [Bulletins par défaut](https://scodoc.org/ParametrageBulletins/#exemple-1-bulletins-par-defaut) + * Codes HTTP: [200](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/200), [403](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/403), [500](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/500) * **`etud_photo`** @@ -150,9 +151,9 @@ Elle sera accessible à l'adresse: https://scodoc.monsite.tld/ScoDoc/api/fonctio * Paramètres: `etud_id`, `small` * Format URL: `/api/etud_photo/` **OU** `/api/etud_photo//small` (_ajout du paramètre **small** pour la version small_) * Exemple d'utilisation: `/api/etud_photo/123` **OU** `/api/etud_photo/123/small` (_pour la version small_) - * Résultat: - * Exemple de résultat: - * Codes HTTP: + * Résultat: Image en JPEG ou PNG. + * Exemple de résultat: + * Codes HTTP: [200](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/200), [403](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/403), [500](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/500) ## Semestres @@ -178,20 +179,10 @@ Elle sera accessible à l'adresse: https://scodoc.monsite.tld/ScoDoc/api/fonctio } ] ``` - * Codes HTTP: + * Codes HTTP: [200](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/200), [403](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/403), [500](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/500) - -## Départements - * **`departements`** - * Méthode: - * Paramètres: `viewable` (optionnel, si faux liste aussi les départements non accessible à l'utilisateur courant), `format` (json, xml) - * Format URL: - * Exemple d'utilisation: - * Résultat: Liste des id de départements. - * Exemple de résultat: - * Codes HTTP: - + ## Programmes de formations * **`formations`** @@ -205,7 +196,7 @@ Elle sera accessible à l'adresse: https://scodoc.monsite.tld/ScoDoc/api/fonctio * **`form_export`** - * Méthode: + * Méthode: GET * Paramètres: `form_id`, `export_ids` (défaut "faux") * Format URL: * Exemple d'utilisation: @@ -225,7 +216,17 @@ Les sessions de formation (dénommées "semestres" même si elles durent une ann * Exemple de résultat: * Codes HTTP: -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 (eg gestion d'emplois du temps ou de services d'enseignement). Cet identifiant est constitué des informations suivantes: +## Modules de formation + * **`Notes/do_moduleimpl_list`** + * Paramètres: `form_sem_id, moduleimpl_id, module_id]` + * Résultat: liste de moduleimpl + + * **`Notes/do_moduleimpl_withmodule_list`** + * Paramètres: `form_sem_id, moduleimpl_id, module_id]` + * Résultat: liste triée de moduleimpl, avec l'attribut `module` + +## 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 (eg 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: DUT, LP, ... (défini au niveau du parcours dans ScoDoc = NAME) @@ -375,56 +376,6 @@ Et un autre exemple en format JSON: * Codes HTTP: -## Etudiants - * **`etud_info`** - * Paramètres: `etud_id` ou `code_nip` ou `code_ine` - * Résultat: informations sur cette étudiant et les semestres dans lesquels il est (ou a été) inscrit. - * Exemple: `etud_info?format=json&etud_id=12345` -``` -{ - "nom": "Mutis", - "sexe": "M.", - "email": "alvaro.mutis@example.com", - "prenom": "ALVARO", - "nomprenom": "M. Alvaro MUTIS", - "insemestre": [ - { - "etat": "I", - form_sem_id": "SEM12781", - "date_fin": "2010-07-30", - "date_debut": "2010-01-25" - }, - { - "etat": "I", - form_sem_id": "SEM8396", - "date_fin": "2009-01-16", - "date_debut": "2008-09-01" - } - ], - "code_ine": "", - "etud_id": "EID8768", - "code_nip": "10991002", - "photo_url": "/ScoDoc/static/photos/F13/RT_EID8768.h90.jpg", - - "domicile": "2 Rue Madame", - "villedomicile": "Paris", - "telephonemobile": "" - "fax": "", - - "annee_bac": "2010", - "bac": "S", - "specialite": "SCIENTIFIQUE", - - "nomlycee": "", - "villelycee": "", - "codelycee": "0950650R", - "codepostallycee": "", - -} -``` - - - ## Bulletins de notes * **`evaluations`** * Méthode: GET @@ -1125,15 +1076,7 @@ Et un autre exemple en format JSON: ... ]``` * Remarque: on peut spécifier plusieurs groupes. - -## Modules - * **`Notes/do_moduleimpl_list`** - * Paramètres: `form_sem_id, moduleimpl_id, module_id]` - * Résultat: liste de moduleimpl - - * **`Notes/do_moduleimpl_withmodule_list`** - * Paramètres: `form_sem_id, moduleimpl_id, module_id]` - * Résultat: liste triée de moduleimpl, avec l'attribut `module` + ## En savoir plus From f280ecf541f7de53f651ffe30c52b8a71d49f6c6 Mon Sep 17 00:00:00 2001 From: leonard_montalbano Date: Tue, 16 Nov 2021 15:17:07 +0100 Subject: [PATCH 2/3] =?UTF-8?q?am=C3=A9lioration=20suite=20au=20retour=20d?= =?UTF-8?q?u=20pdf?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ScoDoc9API.md | 1817 +++++++++++++++++++++++--------------------- 1 file changed, 942 insertions(+), 875 deletions(-) diff --git a/docs/ScoDoc9API.md b/docs/ScoDoc9API.md index b1ac87b..8e183a8 100644 --- a/docs/ScoDoc9API.md +++ b/docs/ScoDoc9API.md @@ -11,7 +11,7 @@ L'API fournit des données JSON, sauf exception (bulletins). Les objets ScoDoc manipulables sont identifiés par des id: - * etud_id: étudiant + * etudid: étudiant * form_id: un programme de formation (page "programmes"); * ue_id: une UE dans un programme; * matiere_id: une matière dans un programme; @@ -32,14 +32,14 @@ disparaitront en juillet 2022. Certaines ont plusieurs "routes" (URl), car ScoDoc 7 tolérait divers accès. - - `Absences/XMLgetBilletsEtud` (deviendra `api/absences/billets/etud/`) + - `Absences/XMLgetBilletsEtud` (deviendra `api/absences/billets/etud/ etudid>`) - `Absences/AddBilletAbsence` (deviendra `api/absences/billet/add`) - - `Absences/XMLgetAbsEtud` (deviendra `api/absences/`, en json) + - `Absences/XMLgetAbsEtud` (deviendra `api/absences/ etudid>`, en json) - `Notes/evaluation_listenotes` (non existante en ScoDoc9, trop complexe) - `Notes/form_sem` (deviendra `api/formsemestre`) - `Notes/formsemestre_bulletinetud` (deviendra `api/formsemestre_bulletinetud`) - `Notes/XMLgetFormsemestres` (non existante en ScoDoc9, redondant avec `api/formsemestre` ?) - - `etud_info` ou `XMLgetEtudInfos` ou `Absences/XMLgetEtudInfos` ou `Notes/XMLgetEtudInfos` (deviendra `/api/etud/`) + - `etud_info` ou `XMLgetEtudInfos` ou `Absences/XMLgetEtudInfos` ou `Notes/XMLgetEtudInfos` (deviendra `/api/etud/ etudid>`) - `groups_view` Les routes ci-dessus s'entendent à partir de l'URL de base de votre ScoDoc, c'est @@ -58,34 +58,42 @@ Basé sur le ticket [#149](https://scodoc.org/git/viennet/ScoDoc/issues/149) Elle sera accessible à l'adresse: https://scodoc.monsite.tld/ScoDoc/api/fonction -| Fonction | Méthode | Paramètres | Exemple | Exemple resultat | Commentaires | -|:--------:|:-------:|:----------:|:-------:|:----------------|:------------:| -|setGroups|POST|partition_id, groupsLists, groupsToDelete, groupsToCreate|/api/setGroups/???| | | -|setNote|POST|eval_id, etud_id, note|/api/setNote/???| | +# Codes HTTP +Chaque appel à l'API donne lieu à une réponse retournant un code spécifique en fonction du résultat obtenu. L'analyse de ce code vous permet de vous assurer que la requête a été traitée avec succès. + +Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succès par nos serveurs. + + * [200](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/200) : OK. + * [400](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/401) : Paramètre manquant, ou valeur incorrecte. + * [401](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/401) : Authentification nécessaire. (jeton non précisé ou invalide) + * [403](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/403) : Action non autorisée. (crédits épuisés, URL non autorisée, etc) + * [404](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/404) : Page inaccessible. (URL inconnue / impossible d'accéder à l'adresse) + * [406](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/406) : Le JSON indiqué en données POST n'est pas valide. + * [408](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/408) : Dépassement du temps maximal autorisé pour l’audit. + * [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. - -# XXX à revoir XXX Fonctions d'accès aux données +# Description d'accès aux données ## Départements * **`departements`** - * Méthode: GET - * Paramètres: `viewable` (optionnel, si faux liste aussi les départements non accessible à l'utilisateur courant), `format` (json, xml) - * Format URL: - * Exemple d'utilisation: - * Résultat: Liste des id de départements. - * Exemple de résultat: - * Codes HTTP: [200](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/200), [403](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/403), [500](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/500) + * **Méthode:** GET + * **Paramètres:** `viewable` (optionnel, si faux liste aussi les départements non accessible à l'utilisateur courant), `format` (json, xml) + * **Format URL:** `/api/departements` + * **Exemple d'utilisation:** `/api/departements` + * **Résultat:** Liste des id de départements. + * **Exemple de résultat:** `[id_1, id_2, id_3, ...]` ## Etudiants * **`etud_dept`** - * Méthode: GET - * Paramètres: `code_nip` - * Format URL: `/api/etud_dept/` - * Exemple d'utilisation: `/api/etud_dept/123` - * Résultat: Liste des étudiants avec le code NIP donné tirée par ordre d'inscription décroissant. - * Exemple de résultat: + * **Méthode:** GET + * **Paramètres:** `code_nip` + * **Format URL:** `/api/etud_dept/` + * **Exemple d'utilisation:** `/api/etud_dept/123` + * **Résultat:** Liste des étudiants avec le code NIP donné tirée par ordre d'inscription décroissant. + * **Exemple de résultat:** ``` [ { @@ -96,74 +104,71 @@ Elle sera accessible à l'adresse: https://scodoc.monsite.tld/ScoDoc/api/fonctio } ] ``` - * Codes HTTP: [200](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/200), [403](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/403), [500](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/500) * **`etud_info`** - * Méthode: GET - * Paramètres: `etud_id` - * Format URL: `/api/etud_info/` - * Exemple d'utilisation: `/api/etud_info/987` - * Résultat: Un dictionnaire avec les informations de l'étudiant correspondant à l'id passé en paramètres. - * Exemple de résultat: + * **Méthode:** GET + * **Paramètres:** etudid + * **Format URL:** `/api/etud_info/` + * **Exemple d'utilisation:** `/api/etud_info/987` + * **Résultat:** Un dictionnaire avec les informations de l'étudiant correspondant à l'id passé en paramètres. + * **Exemple de résultat:** ``` { - "nom": "Mutis", - "sexe": "M.", - "email": "alvaro.mutis@example.com", - "prenom": "ALVARO", - "nomprenom": "M. Alvaro MUTIS", - "insemestre": [ - { - "etat": "I", - form_sem_id": "SEM12781", - "date_fin": "30-07-2010", - "date_debut": "25-01-2010" - }, - { - "etat": "I", - form_sem_id": "SEM8396", - "date_fin": "16-01-2009", - "date_debut": "01-09-2008" - } + "nom": "Mutis", + "sexe": "M.", + "email": "alvaro.mutis@example.com", + "prenom": "ALVARO", + "nomprenom": "M. Alvaro MUTIS", + "insemestre": [ + { + "etat": "I", + "form_sem_id": "SEM12781", + "date_fin": "30-07-2010", + "date_debut": "25-01-2010" + }, + { + "etat": "I", + "form_sem_id": "SEM8396", + "date_fin": "16-01-2009", + "date_debut": "01-09-2008" + } ], - "etud_id": "EID8768", + "etudid": "EID8768", "domicile": "2 Rue Madame", "villedomicile": "Paris", "telephonemobile": "" } ``` - * Codes HTTP: [200](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/200), [403](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/403), [500](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/500) * **`etud_bul`** - * Méthode: GET - * Paramètres: `etud_id`, `sem_id` - * Format URL: `/api/etud_bul//` - * Exemple d'utilisation: `/api/etud_bul/987/12` - * Résultat: Le bulletin d'un étudiant en fonction de son id et d'un semestre donné. - * Exemple de résultat: [Bulletins par défaut](https://scodoc.org/ParametrageBulletins/#exemple-1-bulletins-par-defaut) - * Codes HTTP: [200](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/200), [403](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/403), [500](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/500) + * **Méthode:** GET + * **Paramètres:** `etudid`, `sem_id` + * **Format URL:** `/api/etud_bul//` + * **Exemple d'utilisation:** `/api/etud_bul/987/12` + * **Résultat:** Le bulletin d'un étudiant en fonction de son id et d'un semestre donné. + * **Exemple de résultat:** [Bulletins par défaut](https://scodoc.org/ParametrageBulletins/#exemple-1-bulletins-par-defaut) + * **`etud_photo`** - * Méthode: GET - * Paramètres: `etud_id`, `small` - * Format URL: `/api/etud_photo/` **OU** `/api/etud_photo//small` (_ajout du paramètre **small** pour la version small_) - * Exemple d'utilisation: `/api/etud_photo/123` **OU** `/api/etud_photo/123/small` (_pour la version small_) - * Résultat: Image en JPEG ou PNG. - * Exemple de résultat: - * Codes HTTP: [200](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/200), [403](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/403), [500](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/500) + * **Méthode:** GET + * **Paramètres:** `etudid`, `small` + * **Format URL:** `/api/etud_photo/` **OU** `/api/etud_photo//small` (_ajout du paramètre **small** pour la version small_) + * **Exemple d'utilisation:** `/api/etud_photo/123` **OU** `/api/etud_photo/123/small` (_pour la version small_) + * **Résultat:** Image en JPEG ou PNG. + ## Semestres * **`sem_info`** - * Méthode: GET - * Paramètres: `sem_id` - * Format URL: `/api/sem_id/` - * Exemple d'utilisation: `/api/sem_info/12` - * Résultat: Une liste avec les informations du semestre correspondant à l'id passé en paramètres. - * Exemple de résultat: + * **Méthode:** GET + * **Paramètres:** `sem_id` + * **Format URL:** `/api/sem_id/` + * **Exemple d'utilisation:** `/api/sem_info/12` + * **Résultat:** Une liste avec les informations du semestre correspondant à l'id passé en paramètres. + * **Exemple de résultat:** ``` [ { @@ -179,62 +184,82 @@ Elle sera accessible à l'adresse: https://scodoc.monsite.tld/ScoDoc/api/fonctio } ] ``` - * Codes HTTP: [200](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/200), [403](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/403), [500](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/500) - ## Programmes de formations * **`formations`** - * Méthode: GET - * Paramètres: `form_id` (_optionnel, si absent liste toutes les formations_) - * Format URL: `/api/formations` **ou** `/api/formations/` - * Exemple d'utilisation: `/api/formations` **ou** `̀/api/formations/1` - * Résultat: Liste des formations. - * Exemple de résultat: - * Codes HTTP: + * **Méthode:** GET + * **Paramètres:** `form_id` (_optionnel, si absent liste toutes les formations_) + * **Format URL:** `/api/formations` **ou** `/api/formations/` + * **Exemple d'utilisation:** `/api/formations` **ou** `̀/api/formations/1` + * **Résultat:** Liste des formations. + * **Exemple de résultat:** `[form_1, form_2, form_3, ...]` + * **`form_export`** - * Méthode: GET - * Paramètres: `form_id`, `export_ids` (défaut "faux") - * Format URL: - * Exemple d'utilisation: - * Résultat: la formation, avec UE, matières, modules (un arbre). - * Exemple de résultat: - * Codes HTTP: + * **Méthode:** GET + * **Paramètres:** `form_id`, `export_ids` (_par défaut "faux"_) + * **Format URL:** `/api/form_export/` + * **Exemple d'utilisation:** `/api/form_export/596` + * **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": "module" + } + ``` + ## 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`. +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 `form_sem`. * **`form_sem`** - * Méthode: GET - * Paramètres (_tous optionnels_): `form_sem_id`, `form_id`, `etape_apo`, `etape_apo2` - * Format URL: `/api/form_sem?form_id=1&etape_apo=V1RT` - * Exemple d'utilisation: `/api/form_sem?format=xml&etape_apo=V1RT` - * Résultat: Liste des semestres correspondant. - * Exemple de résultat: - * Codes HTTP: + * **Méthode:** GET + * **Paramètres (_tous optionnels_):** `form_sem_id`, `form_id`, `etape_apo`, `etape_apo2` + * **Format URL:** `/api/form_sem?form_id=1&etape_apo=V1RT` + * **Exemple d'utilisation:** `/api/form_sem?format=xml&etape_apo=V1RT` + * **Résultat:** Liste des semestres correspondant. + * **Exemple de résultat:** `[sem_1, sem_2, sem_3, ...]` + +## UE + +... + + +## '################################################################################' ## Modules de formation * **`Notes/do_moduleimpl_list`** - * Paramètres: `form_sem_id, moduleimpl_id, module_id]` - * Résultat: liste de moduleimpl + * **Paramètres**: `form_sem_id, moduleimpl_id, module_id]` + * **Résultat:** liste de moduleimpl + * **`Notes/do_moduleimpl_withmodule_list`** - * Paramètres: `form_sem_id, moduleimpl_id, module_id]` - * Résultat: liste triée de moduleimpl, avec l'attribut `module` + * **Paramètres**: `form_sem_id, moduleimpl_id, module_id]` + * **Résultat:** liste triée de moduleimpl, avec l'attribut `module` + +## '#################################################################################' ## 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 (eg 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: DUT, LP, ... (défini au niveau du parcours dans ScoDoc = NAME) - * Modalité: FI, FC, FA - * "Spécialité" : S1 (ou S1D pour les sem. 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 (eg 2014 pour une session appartenant à l'année scolaire 2014-2015, même si elle commence en mars 2015). + * **Département** (RT, GEII, INFO...) (= paramètre `DeptName`, en majuscules) + * **Nom parcours:** DUT, LP, ... (défini au niveau du parcours dans ScoDoc = NAME) + * **Modalité:** FI, FC, FA + * **"Spécialité":** S1 (ou S1D pour les sem. 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 (eg 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` : semestre S1 d'un DUT informatique de 2014 en formation initiale (FI) + +**Exemple:** `INFO-DUT-FI-S1-2014` équivaut à un semestre S1 d'un DUT informatique de 2014 en formation initiale (FI) @@ -243,839 +268,881 @@ Exemple: `INFO-DUT-FI-S1-2014` : semestre S1 d'un DUT informatique de 2014 en fo 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. * **`form_sem_partition`** - * Méthode: GET - * Paramètres: `form_sem_id` - * Format URL: `/api/form_sem_partition/form_sem_id` - * Exemple d'utilisation: - * Résultat: - * Exemple de résultat: ici au format JSON - ``` - [ - { - form_sem_id": "SEM12781", - "partition_id": "P23840", - "partition_name": "TD" - "group": [ + * **Méthode: GET** + * **Paramètres:** `form_sem_id` + * **Format URL:** `/api/form_sem_partition/` + * **Exemple d'utilisation:** `/api/form_sem_partition/48` + * **Résultat:** La liste de toutes les partitions celon un `form_sem_id` donné. + * **Exemple de résultat:** ici au format JSON + ``` + [ { - form_sem_id": "SEM12781", + "form_sem_id": "SEM12781", + "partition_id": "P23840", + "partition_name": "TD" + "group": [ + { + "form_sem_id": "SEM12781", "partition_id": "P23840", "group_name": "A", "group_id": "G23841", "partition_name": "TD" }, { - form_sem_id": "SEM12781", + "form_sem_id": "SEM12781", "partition_id": "P23840", "group_name": "B", "group_id": "G23843", "partition_name": "TD" }, ], - }, - { - form_sem_id": "SEM12781", - "partition_id": "P23941", - "partition_name": "TP" - "group": [ + }, + { + "form_sem_id": "SEM12781", + "partition_id": "P23941", + "partition_name": "TP" + "group": [ { - form_sem_id": "SEM12781", + "form_sem_id": "SEM12781", "partition_id": "P23941", "group_name": "A1", "group_id": "G23942", "partition_name": "TP" }, { - form_sem_id": "SEM12781", + "form_sem_id": "SEM12781", "partition_id": "P23941", "group_name": "A2", "group_id": "G23943", "partition_name": "TP" }, - ], - }, - { - form_sem_id": "SEM12781", - "partition_id": "P22833", - "partition_name": null - "group": [ + ], + }, + { + "form_sem_id": "SEM12781", + "partition_id": "P22833", + "partition_name": null + "group": [ { - form_sem_id": "SEM12781", + "form_sem_id": "SEM12781", "partition_id": "P22833", "group_name": null, "group_id": "G22834", "partition_name": null } - ], - } - ] - ``` + ], + } + ] + ``` + + * **`groups_view`** - * Paramètres: form_sem_id `ou `group_ids` (peut être répété), `with_codes=0|1`, `all_groups=0|1`, `etat=None|I` - * Résultat: liste des étudiants dans un groupe. - * Exemple: ici au format XML avec `with_codes=1`: -``` - + * **Méthode:** GET + * **Paramètres:** `form_sem_id` ou `group_ids` (_peut être répété_), `with_codes=0|1`, `all_groups=0|1`, `etat=None|I` + * **Format URL:** + * **Exemple d'utilisation:** + * **Résultat:** Liste des étudiants dans un groupe. + * **Exemple de résultat au format XML:** (_avec `with_codes=1`_) + ``` + - - - - - - - - - - - - - - - - - - - - -``` -Et un autre exemple en format JSON: -``` -[ - { - "etat":"I", - "emailperso":null, - "prenom":"Dalil", - "nom_disp":"CLINTO", - "email":"xxx@example.com", - "P62029":"A", - "P62032":null, - "P62031":"G1", - "P62030":"A1" - }, - { - "etat":"I", - "emailperso":null, - "prenom":"Georges", - "nom_disp":"BUSH", - "email":"bush@example.com", - "P62029":"A", - "P62032":null, - "P62031":"G1", - "P62030":"A1" - }, - ... -] -``` + + + + + + + + + + + + + + + + + + + + ``` + * **Exemple de résultat au format JSON:** + ``` + [ + { + "etat":"I", + "emailperso":null, + "prenom":"Dalil", + "nom_disp":"CLINTO", + "email":"xxx@example.com", + "P62029":"A", + "P62032":null, + "P62031":"G1", + "P62030":"A1" + }, + { + "etat":"I", + "emailperso":null, + "prenom":"Georges", + "nom_disp":"BUSH", + "email":"bush@example.com", + "P62029":"A", + "P62032":null, + "P62031":"G1", + "P62030":"A1" + }, + ... + ] + ``` + * **`set_groups`** - * Méthode: POST - * Paramètres: `partition_id`, `groups`, `groups_to_delete`, `groups_to_create` - * Format URL: `/api/set_groups?partition_id=&groups=&groups_to_delete=&groups_to_create=` - * Exemple d'utilisation: - * Résultat: Set les groups. - * Exemple de résultat: - * Codes HTTP: + * **Méthode:** POST + * **Paramètres:** `partition_id`, `groups`, `groups_to_delete`, `groups_to_create` + * **Format URL:** `/api/set_groups?partition_id=&groups=&groups_to_delete=&groups_to_create=` + * **Exemple d'utilisation:** `/api/set_groups?partition_id=65&groups=77&groups_to_delete=8&groups_to_create=4` + * **Résultat:** Set les groups. ## Bulletins de notes * **`evaluations`** - * Méthode: GET - * Paramètres: `module_id` - * Format URL: `/api/evaluations/` - * Exemple d'utilisation: `/api/evaluations/54` - * Résultat: Liste des evaluations à partir de l'id d'un module. - * Exemple de résultat: - * Codes HTTP: + * **Méthode:** GET + * **Paramètres:** `module_id` + * **Format URL:** `/api/evaluations/` + * **Exemple d'utilisation:** `/api/evaluations/54` + * **Résultat:** Liste des evaluations à partir de l'id d'un module. + * **Exemple de résultat:** `[eval_1, eval_2, eval_3, ...]` * **`eval_notes`** - * Méthode: GET - * Paramètres: `eval_id` - * Format URL: `/api/eval_notes/` - * Exemple d'utilisation: `/api/eval_notes/24` - * Résultat: Liste des notes à partir de l'id d'une évaluation donnée. - * Exemple de résultat: - * Codes HTTP: + * **Méthode**: GET + * **Paramètres**: `eval_id` + * **Format URL:** `/api/eval_notes/` + * **Exemple d'utilisation:** `/api/eval_notes/24` + * **Résultat:** Liste des notes à partir de l'id d'une évaluation donnée. + * **Exemple de résultat:** + ``` + [ + { + "84": "13", + "85": "15", + "86": "9", + ... + } + ] + ``` * **`eval_set_notes`** - * Méthode: POST - * Paramètres: `eval_id`, `etud_id`, `note` - * Format URL: `/api/eval_set_notes?eval_id=&etud_id=¬e=` - * Exemple d'utilisation: `/api/eval_set_notes?eval_id=6&etud_id=456¬e=15` - * Résultat: Set les notes d'une évaluation pour un étudiant donné. - * Exemple de résultat: - * Codes HTTP: + * **Méthode:** POST + * **Paramètres:** `eval_id`, `etudid`, `note` + * **Format URL:** `/api/eval_set_notes?eval_id= etudid=¬e=` + * **Exemple d'utilisation:** `/api/eval_set_notes?eval_id=6 etudid=456¬e=15` + * **Résultat:** Set les notes d'une évaluation pour un étudiant donné. * **`Notes/formsemestre_bulletinetud`** - * Paramètres: `form_sem_id`, `etud_id`, `format` (`xml`ou `json`), `version` (`short`, `selectedevals`ou `long`) - * Résultat: bulletin de notes - * Exemple: ici au format JSON, pour une version courte (`version=short`) -``` -{ - "rang": { - "ninscrits": 52, - "value": "1" - }, - "etape_apo2": "", - "etape_apo3": "", - "etape_apo4": "", - "etudiant": { - "nom": "BOLANO", - "prenom": "Roberto", - "sexe": "M.", - "code_ine": "", - "etud_id": "EID9860", - "code_nip": "123456789", - "email": "roberto@santateresa.mx", - "photo_url": "\/ScoDoc\/static\/photos\/F68\/RT_EID29960.h90.jpg" - }, - "bonus_sport_culture": { - "value": 0 - }, - "absences": { - "nbabsjust": 0, - "nbabs": 1 - }, - "decision": { - "etat": "I", - "code": "ADM", - "compenseform_sem_id" : "SEM12345" /* si ce semestre en compense un autre */ - }, - "note": { - "max": "15.51", - "moy": "10.80", - "value": "15.51", - "min": "07.29" - }, - "etud_id": "EID9860", - "decision_ue": [ - { - "acronyme": "UE11", - "code": "ADM", - "ects": "16.0", - "titre": "D\u00e9couverte m\u00e9tiers", - "numero": "11", - "ue_id": "UE21456" - }, - { - "acronyme": "UE12", - "code": "ADM", - "ects": "14.0", - "titre": "Mise \u00e0 niveau des comp\u00e9tences transversales et scientifiques", - "numero": "12", - "ue_id": "UE21478" - } - ], - "ue_capitalisee": [ - - ], - "publie": 1, - "autorisation_inscription": [ - { - "semestre_id": 2 - } - ], - "appreciation": [ - - ], - "note_max": { - "value": 20 - }, - "date": "2014-07-12T17:38:47.693262", - "rang_group": [ - { - "ninscrits": 26, - "value": "1", - "group_type": "TD", - "group_name": "B" - }, - { - "ninscrits": 13, - "value": "1", - "group_type": "TP", - "group_name": "B1" - }, - { - "ninscrits": 4, - "value": "1", - "group_type": "G", - "group_name": "G4" - }, - { - "ninscrits": "", - "value": "", - "group_type": "tutorat", - "group_name": "" - }, - { - "ninscrits": "", - "value": "", - "group_type": "App", - "group_name": "" - }, - { - "ninscrits": "", - "value": "", - "group_type": "sport", - "group_name": "" - } - ], - form_sem_id": "SEM12345", - "etape_apo": "V1RT", - "ue": [ - { - "acronyme": "UE11", - "rang": "1", - "code_apogee": "VRTU11", - "ects": "16", - "numero": "11", - "note": { - "max": "16.17", - "value": "16.17", - "min": "06.56" + * **Méthode:** GET + * **Paramètres:** `form_sem_id`, `etudid`, `format` (`xml`ou `json`), `version` (`short`, `selectedevals` ou `long`) + * **Format URL:** + * **Exemple d'utilisation:** + * **Résultat:** Un bulletin de notes. + * **Exemple de résultat:** ici au format JSON, pour une version courte (`version=short`) + ``` + { + "rang": { + "ninscrits": 52, + "value": "1" }, - "module": [ + "etape_apo2": "", + "etape_apo3": "", + "etape_apo4": "", + "etudiant": { + "nom": "BOLANO", + "prenom": "Roberto", + "sexe": "M.", + "code_ine": "", + etudid": "EID9860", + "code_nip": "123456789", + "email": "roberto@santateresa.mx", + "photo_url": "\/ScoDoc\/static\/photos\/F68\/RT_EID29960.h90.jpg" + }, + "bonus_sport_culture": { + "value": 0 + }, + "absences": { + "nbabsjust": 0, + "nbabs": 1 + }, + "decision": { + "etat": "I", + "code": "ADM", + "compenseform_sem_id" : "SEM12345" /* si ce semestre en compense un autre */ + }, + "note": { + "max": "15.51", + "moy": "10.80", + "value": "15.51", + "min": "07.29" + }, + etudid": "EID9860", + "decision_ue": [ { - "coefficient": 3, - "rang": { - "value": "1" - }, - "code": "M1101", - "code_apogee": "VRT1101", - "numero": 1101, - "note": { - "moy": "08.94", - "nb_notes": 51, - "nb_missing": 0, - "max": "19.18", - "min": "03.70", - "nb_valid_evals": 3, - "value": "19.18" - }, - "abbrev": "R\u00e9seaux d'entreprises", - "effectif": { - "value": 51 - }, - "titre": "Initiation aux r\u00e9seaux d'entreprises", - "evaluation": [ - - ], - "id": "MIP27427" + "acronyme": "UE11", + "code": "ADM", + "ects": "16.0", + "titre": "D\u00e9couverte m\u00e9tiers", + "numero": "11", + "ue_id": "UE21456" }, { - "coefficient": 2, - "rang": { - "value": "2" - }, - "code": "M1102", - "code_apogee": "VRT1102", - "numero": 1102, - "note": { - "moy": "12.58", - "nb_notes": 50, - "nb_missing": 1, - "max": "16.79", - "min": "02.50", - "nb_valid_evals": 2, - "value": "16.50" - }, - "abbrev": "Initiation \u00e0 la t\u00e9l\u00e9phonie", - "effectif": { - "value": 51 - }, - "titre": "Initiation \u00e0 la t\u00e9l\u00e9phonie d'entreprise", - "evaluation": [ - - ], - "id": "MIP27437" - }, - { - "coefficient": 1.5, - "rang": { - "value": "1" - }, - "code": "M1103", - "code_apogee": "VRT1103", - "numero": 1103, - "note": { - "moy": "08.26", - "nb_notes": 51, - "nb_missing": 0, - "max": "13.41", - "min": "00.94", - "nb_valid_evals": 2, - "value": "13.41" - }, - "abbrev": "Architecture des \u00e9quipements informatiques", - "effectif": { - "value": 51 - }, - "titre": "Architecture des \u00e9quipements informatiques", - "evaluation": [ - - ], - "id": "MIP27451" - }, - { - "coefficient": 2, - "rang": { - "value": "1" - }, - "code": "M1104", - "code_apogee": "VRT1104", - "numero": 1104, - "note": { - "moy": "10.77", - "nb_notes": 51, - "nb_missing": 0, - "max": "17.90", - "min": "04.63", - "nb_valid_evals": 3, - "value": "17.90" - }, - "abbrev": "Principe et architecture des r\u00e9seaux", - "effectif": { - "value": 51 - }, - "titre": "Principe et architecture des r\u00e9seaux", - "evaluation": [ - - ], - "id": "MIP27431" - }, - { - "coefficient": 2, - "rang": { - "value": "1" - }, - "code": "M1105", - "code_apogee": "VRT1105", - "numero": 1105, - "note": { - "moy": "11.00", - "nb_notes": 51, - "nb_missing": 0, - "max": "17.83", - "min": "04.98", - "nb_valid_evals": 2, - "value": "17.83" - }, - "abbrev": "Bases des syst\u00e8mes d'exploitation", - "effectif": { - "value": 51 - }, - "titre": "Bases des syst\u00e8mes d'exploitation", - "evaluation": [ - - ], - "id": "MIP27433" - }, - { - "coefficient": 1.5, - "rang": { - "value": "6" - }, - "code": "M1106", - "code_apogee": "VRT1106", - "numero": 1106, - "note": { - "moy": "13.05", - "nb_notes": 51, - "nb_missing": 0, - "max": "17.79", - "min": "07.08", - "nb_valid_evals": 1, - "value": "16.25" - }, - "abbrev": "Initiation au d\u00e9veloppement Web", - "effectif": { - "value": 51 - }, - "titre": "Initiation au d\u00e9veloppement Web", - "evaluation": [ - - ], - "id": "MIP27449" - }, - { - "coefficient": 1.5, - "rang": { - "value": "9" - }, - "code": "M1107", - "code_apogee": "VRT1107", - "numero": 1107, - "note": { - "moy": "09.36", - "nb_notes": 51, - "nb_missing": 0, - "max": "14.21", - "min": "04.17", - "nb_valid_evals": 3, - "value": "11.66" - }, - "abbrev": "Initiation \u00e0 la mesure du signal", - "effectif": { - "value": 51 - }, - "titre": "Initiation \u00e0 la mesure du signal", - "evaluation": [ - - ], - "id": "MIP27440" - }, - { - "coefficient": 1.5, - "rang": { - "value": "7" - }, - "code": "M1108", - "code_apogee": "VRT1108", - "numero": 1108, - "note": { - "moy": "10.49", - "nb_notes": 51, - "nb_missing": 0, - "max": "16.31", - "min": "05.39", - "nb_valid_evals": 4, - "value": "13.22" - }, - "abbrev": "Acquisition et codage de l'information", - "effectif": { - "value": 51 - }, - "titre": "Acquisition et codage de l'information", - "evaluation": [ - - ], - "id": "MIP27453" - }, - { - "coefficient": 1, - "rang": { - "value": "4 ex" - }, - "code": "M1109", - "code_apogee": "VRT1109", - "numero": 1109, - "note": { - "moy": "12.46", - "nb_notes": 51, - "nb_missing": 0, - "max": "16.00", - "min": "09.00", - "nb_valid_evals": 1, - "value": "15.00" - }, - "abbrev": "PT : Recherche documentaire", - "effectif": { - "value": 51 - }, - "titre": "PT : Recherche documentaire", - "evaluation": [ - - ], - "id": "MIP27444" + "acronyme": "UE12", + "code": "ADM", + "ects": "14.0", + "titre": "Mise \u00e0 niveau des comp\u00e9tences transversales et scientifiques", + "numero": "12", + "ue_id": "UE21478" } ], - "effectif": "51", - "titre": "D\u00e9couverte m\u00e9tiers", - "id": "UE21456" - }, - { - "acronyme": "UE12", - "rang": "5", - "code_apogee": "VRTU12", - "ects": "14", - "numero": "12", - "note": { - "max": "15.20", - "value": "14.63", - "min": "07.94" - }, - "module": [ - { - "coefficient": 2, - "rang": { - "value": "3 ex" - }, - "code": "M1201", - "code_apogee": "VRT1201", - "numero": 10, - "note": { - "moy": "13.02", - "nb_notes": 51, - "nb_missing": 0, - "max": "16.00", - "min": "10.00", - "nb_valid_evals": 1, - "value": "14.00" - }, - "abbrev": "Anglais", - "effectif": { - "value": 51 - }, - "titre": "Anglais g\u00e9n\u00e9ral de communication et initiation au vocabulaire technique", - "evaluation": [ - - ], - "id": "MIP27430" - }, - { - "coefficient": 2, - "rang": { - "value": "16 ex" - }, - "code": "M1202", - "code_apogee": "VRT1202", - "numero": 20, - "note": { - "moy": "12.74", - "nb_notes": 51, - "nb_missing": 0, - "max": "17.75", - "min": "04.00", - "nb_valid_evals": 2, - "value": "14.00" - }, - "abbrev": "Expression", - "effectif": { - "value": 51 - }, - "titre": "EC: \u00c9l\u00e9ments fondamentaux de la communication", - "evaluation": [ - - ], - "id": "MIP27439" - }, - { - "coefficient": 1, - "rang": { - "value": "1 ex" - }, - "code": "M1203", - "code_apogee": "VRT1203", - "numero": 30, - "note": { - "moy": "NA", - "nb_notes": 0, - "nb_missing": 51, - "max": "-", - "min": "-", - "nb_valid_evals": 0, - "value": "-" - }, - "abbrev": "PPP: Connaitre son champ d'activit\u00e9", - "effectif": { - "value": 51 - }, - "titre": "PPP: Connaitre son champ d'activit\u00e9", - "evaluation": [ - - ], - "id": "MIP27436" - }, - { - "coefficient": 2, - "rang": { - "value": "6" - }, - "code": "M1204", - "code_apogee": "VRT1204", - "numero": 40, - "note": { - "moy": "10.66", - "nb_notes": 51, - "nb_missing": 0, - "max": "16.35", - "min": "05.73", - "nb_valid_evals": 8, - "value": "14.09" - }, - "abbrev": "Mise \u00e0 niveau en num\u00e9ration et calculs", - "effectif": { - "value": 51 - }, - "titre": "Mise \u00e0 niveau en num\u00e9ration et calculs", - "evaluation": [ - - ], - "id": "MIP27454" - }, - { - "coefficient": 2, - "rang": { - "value": "23" - }, - "code": "M1205", - "code_apogee": "VRT1205", - "numero": 50, - "note": { - "moy": "10.37", - "nb_notes": 51, - "nb_missing": 0, - "max": "18.69", - "min": "05.01", - "nb_valid_evals": 5, - "value": "10.58" - }, - "abbrev": "Connaissances et Outils pour le signal", - "effectif": { - "value": 51 - }, - "titre": "Harmonisation des connaissances et des outils pour le signal", - "evaluation": [ - - ], - "id": "MIP27432" - }, - { - "coefficient": 2, - "rang": { - "value": "3 ex" - }, - "code": "M1206", - "code_apogee": "VRT1206", - "numero": 60, - "note": { - "moy": "11.22", - "nb_notes": 51, - "nb_missing": 0, - "max": "16.76", - "min": "03.91", - "nb_valid_evals": 6, - "value": "15.12" - }, - "abbrev": "Circuits \u00e9lectroniques : mise \u00e0 niveau", - "effectif": { - "value": 51 - }, - "titre": "Circuits \u00e9lectroniques : mise \u00e0 niveau", - "evaluation": [ - - ], - "id": "MIP27435" - }, - { - "coefficient": 2, - "rang": { - "value": "1 ex" - }, - "code": "M1207", - "code_apogee": "VRT1207", - "numero": 70, - "note": { - "moy": "08.39", - "nb_notes": 51, - "nb_missing": 0, - "max": "20.00", - "min": "00.00", - "nb_valid_evals": 1, - "value": "20.00" - }, - "abbrev": "Programmation 1", - "effectif": { - "value": 51 - }, - "titre": "Bases de la programmation", - "evaluation": [ - - ], - "id": "MIP27445" - }, - { - "coefficient": 1, - "rang": { - "value": "1 ex" - }, - "code": "M1208", - "code_apogee": "VRT1208", - "numero": 80, - "note": { - "moy": "NA", - "nb_notes": 0, - "nb_missing": 51, - "max": "-", - "min": "-", - "nb_valid_evals": 0, - "value": "-" - }, - "abbrev": "M\u00e9thodologie Universitaire 1", - "effectif": { - "value": 51 - }, - "titre": "Adaptation et m\u00e9thodologie pour la r\u00e9ussite Universitaire", - "evaluation": [ - - ], - "id": "MIP27434" - } - ], - "effectif": "51", - "titre": "Mise \u00e0 niveau des comp\u00e9tences transversales et scientifiques", - "id": "UE21478" - }, - { - "acronyme": "UE 1S", - "rang": "1 ex", - "code_apogee": "", - "ects": "0", - "numero": "13", - "note": { - "max": "00.00", - "value": "00.00", - "min": "00.00" - }, - "module": [ + "ue_capitalisee": [ ], - "effectif": "51", - "titre": "Sport & Culture", - "id": "UE23716" - } - ], - "situation": "Inscrit le 02\/09\/2015. D\u00e9cision jury: Valid\u00e9. UE acquises: UE11, UE12. Autoris\u00e9 \u00e0 s'inscrire en S2." -} -``` + "publie": 1, + "autorisation_inscription": [ + { + "semestre_id": 2 + } + ], + "appreciation": [ + + ], + "note_max": { + "value": 20 + }, + "date": "2014-07-12T17:38:47.693262", + "rang_group": [ + { + "ninscrits": 26, + "value": "1", + "group_type": "TD", + "group_name": "B" + }, + { + "ninscrits": 13, + "value": "1", + "group_type": "TP", + "group_name": "B1" + }, + { + "ninscrits": 4, + "value": "1", + "group_type": "G", + "group_name": "G4" + }, + { + "ninscrits": "", + "value": "", + "group_type": "tutorat", + "group_name": "" + }, + { + "ninscrits": "", + "value": "", + "group_type": "App", + "group_name": "" + }, + { + "ninscrits": "", + "value": "", + "group_type": "sport", + "group_name": "" + } + ], + form_sem_id": "SEM12345", + "etape_apo": "V1RT", + "ue": [ + { + "acronyme": "UE11", + "rang": "1", + "code_apogee": "VRTU11", + "ects": "16", + "numero": "11", + "note": { + "max": "16.17", + "value": "16.17", + "min": "06.56" + }, + "module": [ + { + "coefficient": 3, + "rang": { + "value": "1" + }, + "code": "M1101", + "code_apogee": "VRT1101", + "numero": 1101, + "note": { + "moy": "08.94", + "nb_notes": 51, + "nb_missing": 0, + "max": "19.18", + "min": "03.70", + "nb_valid_evals": 3, + "value": "19.18" + }, + "abbrev": "R\u00e9seaux d'entreprises", + "effectif": { + "value": 51 + }, + "titre": "Initiation aux r\u00e9seaux d'entreprises", + "evaluation": [ + + ], + "id": "MIP27427" + }, + { + "coefficient": 2, + "rang": { + "value": "2" + }, + "code": "M1102", + "code_apogee": "VRT1102", + "numero": 1102, + "note": { + "moy": "12.58", + "nb_notes": 50, + "nb_missing": 1, + "max": "16.79", + "min": "02.50", + "nb_valid_evals": 2, + "value": "16.50" + }, + "abbrev": "Initiation \u00e0 la t\u00e9l\u00e9phonie", + "effectif": { + "value": 51 + }, + "titre": "Initiation \u00e0 la t\u00e9l\u00e9phonie d'entreprise", + "evaluation": [ + + ], + "id": "MIP27437" + }, + { + "coefficient": 1.5, + "rang": { + "value": "1" + }, + "code": "M1103", + "code_apogee": "VRT1103", + "numero": 1103, + "note": { + "moy": "08.26", + "nb_notes": 51, + "nb_missing": 0, + "max": "13.41", + "min": "00.94", + "nb_valid_evals": 2, + "value": "13.41" + }, + "abbrev": "Architecture des \u00e9quipements informatiques", + "effectif": { + "value": 51 + }, + "titre": "Architecture des \u00e9quipements informatiques", + "evaluation": [ + + ], + "id": "MIP27451" + }, + { + "coefficient": 2, + "rang": { + "value": "1" + }, + "code": "M1104", + "code_apogee": "VRT1104", + "numero": 1104, + "note": { + "moy": "10.77", + "nb_notes": 51, + "nb_missing": 0, + "max": "17.90", + "min": "04.63", + "nb_valid_evals": 3, + "value": "17.90" + }, + "abbrev": "Principe et architecture des r\u00e9seaux", + "effectif": { + "value": 51 + }, + "titre": "Principe et architecture des r\u00e9seaux", + "evaluation": [ + + ], + "id": "MIP27431" + }, + { + "coefficient": 2, + "rang": { + "value": "1" + }, + "code": "M1105", + "code_apogee": "VRT1105", + "numero": 1105, + "note": { + "moy": "11.00", + "nb_notes": 51, + "nb_missing": 0, + "max": "17.83", + "min": "04.98", + "nb_valid_evals": 2, + "value": "17.83" + }, + "abbrev": "Bases des syst\u00e8mes d'exploitation", + "effectif": { + "value": 51 + }, + "titre": "Bases des syst\u00e8mes d'exploitation", + "evaluation": [ + + ], + "id": "MIP27433" + }, + { + "coefficient": 1.5, + "rang": { + "value": "6" + }, + "code": "M1106", + "code_apogee": "VRT1106", + "numero": 1106, + "note": { + "moy": "13.05", + "nb_notes": 51, + "nb_missing": 0, + "max": "17.79", + "min": "07.08", + "nb_valid_evals": 1, + "value": "16.25" + }, + "abbrev": "Initiation au d\u00e9veloppement Web", + "effectif": { + "value": 51 + }, + "titre": "Initiation au d\u00e9veloppement Web", + "evaluation": [ + + ], + "id": "MIP27449" + }, + { + "coefficient": 1.5, + "rang": { + "value": "9" + }, + "code": "M1107", + "code_apogee": "VRT1107", + "numero": 1107, + "note": { + "moy": "09.36", + "nb_notes": 51, + "nb_missing": 0, + "max": "14.21", + "min": "04.17", + "nb_valid_evals": 3, + "value": "11.66" + }, + "abbrev": "Initiation \u00e0 la mesure du signal", + "effectif": { + "value": 51 + }, + "titre": "Initiation \u00e0 la mesure du signal", + "evaluation": [ + + ], + "id": "MIP27440" + }, + { + "coefficient": 1.5, + "rang": { + "value": "7" + }, + "code": "M1108", + "code_apogee": "VRT1108", + "numero": 1108, + "note": { + "moy": "10.49", + "nb_notes": 51, + "nb_missing": 0, + "max": "16.31", + "min": "05.39", + "nb_valid_evals": 4, + "value": "13.22" + }, + "abbrev": "Acquisition et codage de l'information", + "effectif": { + "value": 51 + }, + "titre": "Acquisition et codage de l'information", + "evaluation": [ + + ], + "id": "MIP27453" + }, + { + "coefficient": 1, + "rang": { + "value": "4 ex" + }, + "code": "M1109", + "code_apogee": "VRT1109", + "numero": 1109, + "note": { + "moy": "12.46", + "nb_notes": 51, + "nb_missing": 0, + "max": "16.00", + "min": "09.00", + "nb_valid_evals": 1, + "value": "15.00" + }, + "abbrev": "PT : Recherche documentaire", + "effectif": { + "value": 51 + }, + "titre": "PT : Recherche documentaire", + "evaluation": [ + + ], + "id": "MIP27444" + } + ], + "effectif": "51", + "titre": "D\u00e9couverte m\u00e9tiers", + "id": "UE21456" + }, + { + "acronyme": "UE12", + "rang": "5", + "code_apogee": "VRTU12", + "ects": "14", + "numero": "12", + "note": { + "max": "15.20", + "value": "14.63", + "min": "07.94" + }, + "module": [ + { + "coefficient": 2, + "rang": { + "value": "3 ex" + }, + "code": "M1201", + "code_apogee": "VRT1201", + "numero": 10, + "note": { + "moy": "13.02", + "nb_notes": 51, + "nb_missing": 0, + "max": "16.00", + "min": "10.00", + "nb_valid_evals": 1, + "value": "14.00" + }, + "abbrev": "Anglais", + "effectif": { + "value": 51 + }, + "titre": "Anglais g\u00e9n\u00e9ral de communication et initiation au vocabulaire technique", + "evaluation": [ + + ], + "id": "MIP27430" + }, + { + "coefficient": 2, + "rang": { + "value": "16 ex" + }, + "code": "M1202", + "code_apogee": "VRT1202", + "numero": 20, + "note": { + "moy": "12.74", + "nb_notes": 51, + "nb_missing": 0, + "max": "17.75", + "min": "04.00", + "nb_valid_evals": 2, + "value": "14.00" + }, + "abbrev": "Expression", + "effectif": { + "value": 51 + }, + "titre": "EC: \u00c9l\u00e9ments fondamentaux de la communication", + "evaluation": [ + + ], + "id": "MIP27439" + }, + { + "coefficient": 1, + "rang": { + "value": "1 ex" + }, + "code": "M1203", + "code_apogee": "VRT1203", + "numero": 30, + "note": { + "moy": "NA", + "nb_notes": 0, + "nb_missing": 51, + "max": "-", + "min": "-", + "nb_valid_evals": 0, + "value": "-" + }, + "abbrev": "PPP: Connaitre son champ d'activit\u00e9", + "effectif": { + "value": 51 + }, + "titre": "PPP: Connaitre son champ d'activit\u00e9", + "evaluation": [ + + ], + "id": "MIP27436" + }, + { + "coefficient": 2, + "rang": { + "value": "6" + }, + "code": "M1204", + "code_apogee": "VRT1204", + "numero": 40, + "note": { + "moy": "10.66", + "nb_notes": 51, + "nb_missing": 0, + "max": "16.35", + "min": "05.73", + "nb_valid_evals": 8, + "value": "14.09" + }, + "abbrev": "Mise \u00e0 niveau en num\u00e9ration et calculs", + "effectif": { + "value": 51 + }, + "titre": "Mise \u00e0 niveau en num\u00e9ration et calculs", + "evaluation": [ + + ], + "id": "MIP27454" + }, + { + "coefficient": 2, + "rang": { + "value": "23" + }, + "code": "M1205", + "code_apogee": "VRT1205", + "numero": 50, + "note": { + "moy": "10.37", + "nb_notes": 51, + "nb_missing": 0, + "max": "18.69", + "min": "05.01", + "nb_valid_evals": 5, + "value": "10.58" + }, + "abbrev": "Connaissances et Outils pour le signal", + "effectif": { + "value": 51 + }, + "titre": "Harmonisation des connaissances et des outils pour le signal", + "evaluation": [ + + ], + "id": "MIP27432" + }, + { + "coefficient": 2, + "rang": { + "value": "3 ex" + }, + "code": "M1206", + "code_apogee": "VRT1206", + "numero": 60, + "note": { + "moy": "11.22", + "nb_notes": 51, + "nb_missing": 0, + "max": "16.76", + "min": "03.91", + "nb_valid_evals": 6, + "value": "15.12" + }, + "abbrev": "Circuits \u00e9lectroniques : mise \u00e0 niveau", + "effectif": { + "value": 51 + }, + "titre": "Circuits \u00e9lectroniques : mise \u00e0 niveau", + "evaluation": [ + + ], + "id": "MIP27435" + }, + { + "coefficient": 2, + "rang": { + "value": "1 ex" + }, + "code": "M1207", + "code_apogee": "VRT1207", + "numero": 70, + "note": { + "moy": "08.39", + "nb_notes": 51, + "nb_missing": 0, + "max": "20.00", + "min": "00.00", + "nb_valid_evals": 1, + "value": "20.00" + }, + "abbrev": "Programmation 1", + "effectif": { + "value": 51 + }, + "titre": "Bases de la programmation", + "evaluation": [ + + ], + "id": "MIP27445" + }, + { + "coefficient": 1, + "rang": { + "value": "1 ex" + }, + "code": "M1208", + "code_apogee": "VRT1208", + "numero": 80, + "note": { + "moy": "NA", + "nb_notes": 0, + "nb_missing": 51, + "max": "-", + "min": "-", + "nb_valid_evals": 0, + "value": "-" + }, + "abbrev": "M\u00e9thodologie Universitaire 1", + "effectif": { + "value": 51 + }, + "titre": "Adaptation et m\u00e9thodologie pour la r\u00e9ussite Universitaire", + "evaluation": [ + + ], + "id": "MIP27434" + } + ], + "effectif": "51", + "titre": "Mise \u00e0 niveau des comp\u00e9tences transversales et scientifiques", + "id": "UE21478" + }, + { + "acronyme": "UE 1S", + "rang": "1 ex", + "code_apogee": "", + "ects": "0", + "numero": "13", + "note": { + "max": "00.00", + "value": "00.00", + "min": "00.00" + }, + "module": [ + + ], + "effectif": "51", + "titre": "Sport & Culture", + "id": "UE23716" + } + ], + "situation": "Inscrit le 02\/09\/2015. D\u00e9cision jury: Valid\u00e9. UE acquises: UE11, UE12. Autoris\u00e9 \u00e0 s'inscrire en S2." + } + ``` ## Absences - * **`Absences/ListeAbsEtud`** - * Paramètres: `etud_id, absjust_only, format`. `absjust_only` spécifie si on veut les absences justifiées ou non. - * Résultat: liste d'absences. Exemple: - ```{jour: "2021-02-10", ampm: "0", description: "M2202", }``` - (`ampm` vaut 1 le matin et 0 l'après-midi). +**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/doSignaleAbsence`** - * Paramètres: ```datedebut, datefin, moduleimpl_id=None, demijournee=2, estjust=False,description, etud_id``` - * Résultat: *html* - * Remarques: dates au format `dd/mm/yyyy`. Date de fin non incluse. `demijournee`: 2 si journée complète, 1 matin, 0 après-midi. - * **`Absences/doAnnuleAbsence`** - * Paramètres: ```datedebut, datefin, demijournee, etud_id``` - * Résultat: *html* + * **`absences`** + * **Méthode:** GET + * **Paramètres:** `etudid`, `abs_just_only, format`, `abs_just_only` (_spécifie si on veut les absences justifiées ou non_). + * **Format URL:** `/api/absences/` + * **Exemple d'utilisation:** `/api/absences/54` + * **Résultat:** 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_). - * **`Absences/doAnnuleJustif`** - * Paramètres: ```context, datedebut0, datefin0, demijournee``` - * Résultat: *html* - * **`Absences/EtatAbsencesGr`** - * Liste les absences d'un ou plusieurs groupes entre deux dates. - * Paramètres: ```group_ids, debut, fin, with_boursier=True, format=html``` - * Résultat: liste des absences. Si `format="json"`, cela donne par exemple: - ```[ { - boursier: "N", - nbabs: "9", - nbabsjust: "2", - nbabsnonjust: "7", - nbjustifs_noabs: "0", - nomprenom: "Mme Poisson Dodouce", - etud_id: "EID12345" - }, - ... - ]``` - * Remarque: on peut spécifier plusieurs groupes. + + * **`abs_signale`** + * **Méthode:** POST + * **Paramètres:** `date_debut`, `date_fin`, `module_impl_id=None`, `demi_journee=2`, `estjust=False`, `description`, `etudid` + * **Format URL:** `/api/abs_signale/?date_debut=date_debut&date_fin=date_fin&demi_journee=demi_journee&description=description&etudid=` + * **Exemple d'utilisation:** `/api/abs_signale/?date_debut=2015/02/01&date_fin=2015/02/03&demi_journee=4&description=""&etudid=874` + * **Résultat:** *html* + * **Remarques:** Dates au format iso `yyyy/mm/dd`. Date de fin non incluse. `demi_journee`: 2 si journée complète, 1 matin, 0 après-midi. + + + + * **`abs_annule`** + * **Méthode:** POST + * **Paramètres:** `date_debut`, `date_fin`, `demi_journee`, `etudid` + * **Format URL:** `/api/abs_annule/?date_debut=date_debut&date_fin=date_fin&demi_journee=demi_journee&etudid=` + * **Exemple d'utilisation:** `/api/abs_annule/?date_debut=2004/05/03&date_fin=2004/06/07&demi_journee=2&etudid=451` + * **Résultat:** *html* + * **Remarques:** Dates au format iso `yyyy/mm/dd`. Date de fin non incluse. `demi_journee`: 2 si journée complète, 1 matin, 0 après-midi. + + + * **`abs_annule_justif`** + * **Méthode:** POST + * **Paramètres:** `context`, `date_debut`, `date_fin`, `demi_journee` + * **Format URL:** `/api/abs_annule_justif/?context=context&date_debut=date_debut&date_fin=date_fin&demi_journee=demi_journee` + * **Exemple d'utilisation:** `/api/abs_annule_justif/?context=malade&date_debut=2020/01/05&date_fin=2020/01/06&demi_journee=1` + * **Résultat:** *html* + * **Remarques:** Dates au format iso `yyyy/mm/dd`. Date de fin non incluse. `demi_journee`: 2 si journée complète, 1 matin, 0 après-midi. + + + * **`abs_groupe_etat`** + * **Méthode:** GET + * **Paramètres:** `group_ids`, `date_debut`, `date_fin`, `with_boursier=True`, `format=html` + * **Format URL:** `/api/abs_group_etat/?group_ids=group_ids&date_debut=date_debut&date_fin=date_fin` + * **Exemple d'utilisation:** `/api/abs_group_etat/?group_ids=45&date_debut=2019/01/30&date_fin=2019/02/30` + * **Résultat:** Liste des absences d'un ou plusieurs groupes entre deux dates. + * **Exemple de résultat:** si `format="json"` cela donne: + ``` + [ + { + "boursier": "N", + "nbabs": "9", + "nbabsjust": "2", + "nbabsnonjust": "7", + "nbjustifs_noabs": "0", + "nomprenom": "Mme Poisson Dodouce", + "etudid": "EID12345" + }, + ... + ] + ``` + + * **Remarques:** Dates au format iso `yyyy/mm/dd`. Date de fin non incluse. `demi_journee`: 2 si journée complète, 1 matin, 0 après-midi. From ca7a2fe5460f479dadc511ae7766592e4a101481 Mon Sep 17 00:00:00 2001 From: leonard_montalbano Date: Thu, 18 Nov 2021 17:16:04 +0100 Subject: [PATCH 3/3] revision doc api scodoc9 --- docs/ScoDoc9API.md | 149 ++++++++++++++++++++++----------------------- 1 file changed, 73 insertions(+), 76 deletions(-) diff --git a/docs/ScoDoc9API.md b/docs/ScoDoc9API.md index 8e183a8..037ddc2 100644 --- a/docs/ScoDoc9API.md +++ b/docs/ScoDoc9API.md @@ -36,7 +36,7 @@ Certaines ont plusieurs "routes" (URl), car ScoDoc 7 tolérait divers accès. - `Absences/AddBilletAbsence` (deviendra `api/absences/billet/add`) - `Absences/XMLgetAbsEtud` (deviendra `api/absences/ etudid>`, en json) - `Notes/evaluation_listenotes` (non existante en ScoDoc9, trop complexe) - - `Notes/form_sem` (deviendra `api/formsemestre`) + - `Notes/formsemestre_id` (deviendra `api/formsemestre`) - `Notes/formsemestre_bulletinetud` (deviendra `api/formsemestre_bulletinetud`) - `Notes/XMLgetFormsemestres` (non existante en ScoDoc9, redondant avec `api/formsemestre` ?) - `etud_info` ou `XMLgetEtudInfos` ou `Absences/XMLgetEtudInfos` ou `Notes/XMLgetEtudInfos` (deviendra `/api/etud/ etudid>`) @@ -77,11 +77,11 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ # Description d'accès aux données ## Départements - * **`departements`** + * **`departement`** * **Méthode:** GET * **Paramètres:** `viewable` (optionnel, si faux liste aussi les départements non accessible à l'utilisateur courant), `format` (json, xml) - * **Format URL:** `/api/departements` - * **Exemple d'utilisation:** `/api/departements` + * **Format URL:** `/api/departement` + * **Exemple d'utilisation:** `/api/departement` * **Résultat:** Liste des id de départements. * **Exemple de résultat:** `[id_1, id_2, id_3, ...]` @@ -106,11 +106,11 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ ``` - * **`etud_info`** + * **`etud`** * **Méthode:** GET * **Paramètres:** etudid - * **Format URL:** `/api/etud_info/` - * **Exemple d'utilisation:** `/api/etud_info/987` + * **Format URL:** `/api/etud/` + * **Exemple d'utilisation:** `/api/etud/987` * **Résultat:** Un dictionnaire avec les informations de l'étudiant correspondant à l'id passé en paramètres. * **Exemple de résultat:** ``` @@ -123,15 +123,15 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ "insemestre": [ { "etat": "I", - "form_sem_id": "SEM12781", - "date_fin": "30-07-2010", - "date_debut": "25-01-2010" + "formsemestre_id": "SEM12781", + "date_fin": "2010-07-30", + "date_debut": "2010-01-25" }, { "etat": "I", - "form_sem_id": "SEM8396", - "date_fin": "16-01-2009", - "date_debut": "01-09-2008" + "formsemestre_id": "SEM8396", + "date_fin": "2009-01-16", + "date_debut": "2008-09-01" } ], "etudid": "EID8768", @@ -145,8 +145,8 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ * **`etud_bul`** * **Méthode:** GET * **Paramètres:** `etudid`, `sem_id` - * **Format URL:** `/api/etud_bul//` - * **Exemple d'utilisation:** `/api/etud_bul/987/12` + * **Format URL:** `/api/etud//bul/` + * **Exemple d'utilisation:** `/api/etud/987/bul/12` * **Résultat:** Le bulletin d'un étudiant en fonction de son id et d'un semestre donné. * **Exemple de résultat:** [Bulletins par défaut](https://scodoc.org/ParametrageBulletins/#exemple-1-bulletins-par-defaut) @@ -155,8 +155,8 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ * **`etud_photo`** * **Méthode:** GET * **Paramètres:** `etudid`, `small` - * **Format URL:** `/api/etud_photo/` **OU** `/api/etud_photo//small` (_ajout du paramètre **small** pour la version small_) - * **Exemple d'utilisation:** `/api/etud_photo/123` **OU** `/api/etud_photo/123/small` (_pour la version small_) + * **Format URL:** `/api/etud//photo` **OU** `/api/etud//photo/small` (_ajout du paramètre **small** pour la version small_) + * **Exemple d'utilisation:** `/api/etud/123/photo` **OU** `/api/etud/123/photo/small` (_pour la version small_) * **Résultat:** Image en JPEG ou PNG. @@ -165,7 +165,7 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ * **`sem_info`** * **Méthode:** GET * **Paramètres:** `sem_id` - * **Format URL:** `/api/sem_id/` + * **Format URL:** `/api/sem_info/` * **Exemple d'utilisation:** `/api/sem_info/12` * **Résultat:** Une liste avec les informations du semestre correspondant à l'id passé en paramètres. * **Exemple de résultat:** @@ -173,8 +173,8 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ [ { "titre": "DUT Génie Electrique et Informatique Industrielle", - "date_debut": "01/09/2021", - "date_fin": "02/02/2022", + "date_debut": "2021-09-01", + "date_fin": "2022-02-02", "modalite": "FI", "sem_id_txt": "S3", "titre_num": "DUT Génie Electrique et Informatique Industrielle semestre 3", @@ -188,21 +188,21 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ ## Programmes de formations - * **`formations`** + * **`formation`** * **Méthode:** GET * **Paramètres:** `form_id` (_optionnel, si absent liste toutes les formations_) - * **Format URL:** `/api/formations` **ou** `/api/formations/` - * **Exemple d'utilisation:** `/api/formations` **ou** `̀/api/formations/1` + * **Format URL:** `/api/formation` **ou** `/api/formation/` + * **Exemple d'utilisation:** `/api/formation` **ou** `̀/api/formation/1` * **Résultat:** Liste des formations. - * **Exemple de résultat:** `[form_1, form_2, form_3, ...]` + * **Exemple de résultat:** `[formation_1, formation_2, formation_3, ...]` - * **`form_export`** + * **`formation_export`** * **Méthode:** GET * **Paramètres:** `form_id`, `export_ids` (_par défaut "faux"_) - * **Format URL:** `/api/form_export/` - * **Exemple d'utilisation:** `/api/form_export/596` + * **Format URL:** `/api/formation_export/` + * **Exemple d'utilisation:** `/api/formation_export/596` * **Résultat:** La formation, avec UE, matières, modules (_un arbre_). * **Exemple de résultat:** ``` @@ -217,37 +217,38 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ "modules": "module" } ``` - - -## 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 `form_sem`. - - * **`form_sem`** - * **Méthode:** GET - * **Paramètres (_tous optionnels_):** `form_sem_id`, `form_id`, `etape_apo`, `etape_apo2` - * **Format URL:** `/api/form_sem?form_id=1&etape_apo=V1RT` - * **Exemple d'utilisation:** `/api/form_sem?format=xml&etape_apo=V1RT` - * **Résultat:** Liste des semestres correspondant. - * **Exemple de résultat:** `[sem_1, sem_2, sem_3, ...]` - - + ## UE ... -## '################################################################################' ## Modules de formation * **`Notes/do_moduleimpl_list`** - * **Paramètres**: `form_sem_id, moduleimpl_id, module_id]` + * **Paramètres**: `formsemestre_id, moduleimpl_id, module_id]` * **Résultat:** liste de moduleimpl * **`Notes/do_moduleimpl_withmodule_list`** - * **Paramètres**: `form_sem_id, moduleimpl_id, module_id]` + * **Paramètres**: `formsemestre_id, moduleimpl_id, module_id]` * **Résultat:** liste triée de moduleimpl, avec l'attribut `module` -## '#################################################################################' + +## 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_id`. + + * **`formsemestre_id`** + * **Méthode:** GET + * **Paramètres (_tous optionnels_):** `formsemestre_id`, `form_id`, `etape_apo`, `etape_apo2` + * **Format URL:** `/api/formsemestre_id?form_id=1&etape_apo=V1RT` + * **Exemple d'utilisation:** `/api/formsemestre_id?format=xml&etape_apo=V1RT` + * **Résultat:** Liste des semestres correspondant. + * **Exemple de résultat:** `[sem_1, sem_2, sem_3, ...]` + + + + + ## 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 (eg gestion d'emplois du temps ou de services d'enseignement). Cet identifiant est constitué des informations suivantes: @@ -267,29 +268,29 @@ Le `session_id` peut être utilisé pour identifier de façon prévisible et (pr ## Groupes et partitions L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieurs partitions (types de groupes). Chaque partition est constituée d'un nombre quelconque de groupes d'étudiants. - * **`form_sem_partition`** + * **`formsemestre_id_partition`** * **Méthode: GET** - * **Paramètres:** `form_sem_id` - * **Format URL:** `/api/form_sem_partition/` - * **Exemple d'utilisation:** `/api/form_sem_partition/48` - * **Résultat:** La liste de toutes les partitions celon un `form_sem_id` donné. + * **Paramètres:** `formsemestre_id` + * **Format URL:** `/api/formsemestre_id_partition/` + * **Exemple d'utilisation:** `/api/formsemestre_id_partition/48` + * **Résultat:** La liste de toutes les partitions selon un `formsemestre_id` donné. * **Exemple de résultat:** ici au format JSON ``` [ { - "form_sem_id": "SEM12781", + "formsemestre_id": "SEM12781", "partition_id": "P23840", "partition_name": "TD" "group": [ { - "form_sem_id": "SEM12781", + "formsemestre_id": "SEM12781", "partition_id": "P23840", "group_name": "A", "group_id": "G23841", "partition_name": "TD" }, { - "form_sem_id": "SEM12781", + "formsemestre_id": "SEM12781", "partition_id": "P23840", "group_name": "B", "group_id": "G23843", @@ -298,19 +299,19 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu ], }, { - "form_sem_id": "SEM12781", + "formsemestre_id": "SEM12781", "partition_id": "P23941", "partition_name": "TP" "group": [ { - "form_sem_id": "SEM12781", + "formsemestre_id": "SEM12781", "partition_id": "P23941", "group_name": "A1", "group_id": "G23942", "partition_name": "TP" }, { - "form_sem_id": "SEM12781", + "formsemestre_id": "SEM12781", "partition_id": "P23941", "group_name": "A2", "group_id": "G23943", @@ -319,12 +320,12 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu ], }, { - "form_sem_id": "SEM12781", + "formsemestre_id": "SEM12781", "partition_id": "P22833", "partition_name": null "group": [ { - "form_sem_id": "SEM12781", + "formsemestre_id": "SEM12781", "partition_id": "P22833", "group_name": null, "group_id": "G22834", @@ -338,7 +339,7 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu * **`groups_view`** * **Méthode:** GET - * **Paramètres:** `form_sem_id` ou `group_ids` (_peut être répété_), `with_codes=0|1`, `all_groups=0|1`, `etat=None|I` + * **Paramètres:** `formsemestre_id` ou `group_ids` (_peut être répété_), `with_codes=0|1`, `all_groups=0|1`, `etat=None|I` * **Format URL:** * **Exemple d'utilisation:** * **Résultat:** Liste des étudiants dans un groupe. @@ -443,7 +444,7 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu * **`Notes/formsemestre_bulletinetud`** * **Méthode:** GET - * **Paramètres:** `form_sem_id`, `etudid`, `format` (`xml`ou `json`), `version` (`short`, `selectedevals` ou `long`) + * **Paramètres:** `formsemestre_id`, `etudid`, `format` (`xml`ou `json`), `version` (`short`, `selectedevals` ou `long`) * **Format URL:** * **Exemple d'utilisation:** * **Résultat:** Un bulletin de notes. @@ -477,7 +478,7 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu "decision": { "etat": "I", "code": "ADM", - "compenseform_sem_id" : "SEM12345" /* si ce semestre en compense un autre */ + "compenseformsemestre_id" : "SEM12345" /* si ce semestre en compense un autre */ }, "note": { "max": "15.51", @@ -558,7 +559,7 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu "group_name": "" } ], - form_sem_id": "SEM12345", + formsemestre_id": "SEM12345", "etape_apo": "V1RT", "ue": [ { @@ -1073,12 +1074,12 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu "id": "UE23716" } ], - "situation": "Inscrit le 02\/09\/2015. D\u00e9cision jury: Valid\u00e9. UE acquises: UE11, UE12. Autoris\u00e9 \u00e0 s'inscrire en S2." + "situation": "Inscrit le 2015-09-02. D\u00e9cision jury: Valid\u00e9. UE acquises: UE11, UE12. Autoris\u00e9 \u00e0 s'inscrire en S2." } ``` ## 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. +**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`** @@ -1095,36 +1096,34 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu * **`abs_signale`** * **Méthode:** POST * **Paramètres:** `date_debut`, `date_fin`, `module_impl_id=None`, `demi_journee=2`, `estjust=False`, `description`, `etudid` - * **Format URL:** `/api/abs_signale/?date_debut=date_debut&date_fin=date_fin&demi_journee=demi_journee&description=description&etudid=` - * **Exemple d'utilisation:** `/api/abs_signale/?date_debut=2015/02/01&date_fin=2015/02/03&demi_journee=4&description=""&etudid=874` + * **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* - * **Remarques:** Dates au format iso `yyyy/mm/dd`. Date de fin non incluse. `demi_journee`: 2 si journée complète, 1 matin, 0 après-midi. * **`abs_annule`** * **Méthode:** POST * **Paramètres:** `date_debut`, `date_fin`, `demi_journee`, `etudid` - * **Format URL:** `/api/abs_annule/?date_debut=date_debut&date_fin=date_fin&demi_journee=demi_journee&etudid=` - * **Exemple d'utilisation:** `/api/abs_annule/?date_debut=2004/05/03&date_fin=2004/06/07&demi_journee=2&etudid=451` + * **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* - * **Remarques:** Dates au format iso `yyyy/mm/dd`. Date de fin non incluse. `demi_journee`: 2 si journée complète, 1 matin, 0 après-midi. * **`abs_annule_justif`** * **Méthode:** POST * **Paramètres:** `context`, `date_debut`, `date_fin`, `demi_journee` - * **Format URL:** `/api/abs_annule_justif/?context=context&date_debut=date_debut&date_fin=date_fin&demi_journee=demi_journee` - * **Exemple d'utilisation:** `/api/abs_annule_justif/?context=malade&date_debut=2020/01/05&date_fin=2020/01/06&demi_journee=1` + * **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* - * **Remarques:** Dates au format iso `yyyy/mm/dd`. Date de fin non incluse. `demi_journee`: 2 si journée complète, 1 matin, 0 après-midi. + * **`abs_groupe_etat`** * **Méthode:** GET * **Paramètres:** `group_ids`, `date_debut`, `date_fin`, `with_boursier=True`, `format=html` * **Format URL:** `/api/abs_group_etat/?group_ids=group_ids&date_debut=date_debut&date_fin=date_fin` - * **Exemple d'utilisation:** `/api/abs_group_etat/?group_ids=45&date_debut=2019/01/30&date_fin=2019/02/30` + * **Exemple d'utilisation:** `/api/abs_group_etat/?group_ids=45&date_debut=2019-01-30&date_fin=2019-02-30` * **Résultat:** Liste des absences d'un ou plusieurs groupes entre deux dates. * **Exemple de résultat:** si `format="json"` cela donne: ``` @@ -1141,8 +1140,6 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu ... ] ``` - - * **Remarques:** Dates au format iso `yyyy/mm/dd`. Date de fin non incluse. `demi_journee`: 2 si journée complète, 1 matin, 0 après-midi.