diff --git a/docs/ScoDoc9API.md b/docs/ScoDoc9API.md index 432b42bf..037ddc24 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,17 +32,17 @@ 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_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/`) + - `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 +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,40 +51,49 @@ 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** Elle sera accessible à l'adresse: https://scodoc.monsite.tld/ScoDoc/api/fonction -| 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/???| | +# 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. +# Description d'accès aux données + +## Départements + * **`departement`** + * **Méthode:** GET + * **Paramètres:** `viewable` (optionnel, si faux liste aussi les départements non accessible à l'utilisateur courant), `format` (json, xml) + * **Format URL:** `/api/departement` + * **Exemple d'utilisation:** `/api/departement` + * **Résultat:** Liste des id de départements. + * **Exemple de résultat:** `[id_1, id_2, id_3, ...]` + -# XXX à revoir XXX Fonctions d'accès aux données ## 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:** ``` [ { @@ -95,80 +104,77 @@ Elle sera accessible à l'adresse: https://scodoc.monsite.tld/ScoDoc/api/fonctio } ] ``` - * Codes HTTP: - * **`etud_info`** - * Méthode: GET - * Paramètres: `etud_id` - * Format URL: `/api/etud_dept/` - * 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: + * **`etud`** + * **Méthode:** GET + * **Paramètres:** etudid + * **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:** ``` { - "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" - } + "nom": "Mutis", + "sexe": "M.", + "email": "alvaro.mutis@example.com", + "prenom": "ALVARO", + "nomprenom": "M. Alvaro MUTIS", + "insemestre": [ + { + "etat": "I", + "formsemestre_id": "SEM12781", + "date_fin": "2010-07-30", + "date_debut": "2010-01-25" + }, + { + "etat": "I", + "formsemestre_id": "SEM8396", + "date_fin": "2009-01-16", + "date_debut": "2008-09-01" + } ], - "etud_id": "EID8768", + "etudid": "EID8768", "domicile": "2 Rue Madame", "villedomicile": "Paris", "telephonemobile": "" } ``` - * Codes HTTP: * **`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: - * Exemple de résultat: - * Codes HTTP: + * **Méthode:** GET + * **Paramètres:** `etudid`, `sem_id` + * **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) + * **`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: - * Exemple de résultat: - * Codes HTTP: + * **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/123/photo` **OU** `/api/etud/123/photo/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_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:** ``` [ { "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", @@ -178,62 +184,83 @@ Elle sera accessible à l'adresse: https://scodoc.monsite.tld/ScoDoc/api/fonctio } ] ``` - * Codes HTTP: + - -## 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`** - * 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: + * **`formation`** + * **Méthode:** GET + * **Paramètres:** `form_id` (_optionnel, si absent liste toutes les formations_) + * **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:** `[formation_1, formation_2, formation_3, ...]` - * **`form_export`** - * Méthode: - * 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: + + * **`formation_export`** + * **Méthode:** GET + * **Paramètres:** `form_id`, `export_ids` (_par défaut "faux"_) + * **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:** + ``` + { + "nom": "formation", + "UE": "ue", + "matieres": [ + "matiere_1": "maths", + "matiere_2": "anglais", + ... + ], + "modules": "module" + } + ``` + +## UE + +... + + +## Modules de formation + * **`Notes/do_moduleimpl_list`** + * **Paramètres**: `formsemestre_id, moduleimpl_id, module_id]` + * **Résultat:** liste de moduleimpl + + + * **`Notes/do_moduleimpl_withmodule_list`** + * **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`. +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`. - * **`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: + * **`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: - * 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) + + + +## 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). + + +**Exemple:** `INFO-DUT-FI-S1-2014` équivaut à un semestre S1 d'un DUT informatique de 2014 en formation initiale (FI) @@ -241,899 +268,879 @@ Exemple: `INFO-DUT-FI-S1-2014` : semestre S1 d'un DUT informatique de 2014 en fo ## 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`** - * 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": [ + * **`formsemestre_id_partition`** + * **Méthode: GET** + * **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": [ + { + "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", "partition_name": "TD" }, ], - }, - { - form_sem_id": "SEM12781", - "partition_id": "P23941", - "partition_name": "TP" - "group": [ + }, + { + "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", "partition_name": "TP" }, - ], - }, - { - form_sem_id": "SEM12781", - "partition_id": "P22833", - "partition_name": null - "group": [ + ], + }, + { + "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", "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:** `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. + * **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: - - -## 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": "", - -} -``` - + * **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:** `formsemestre_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", + "compenseformsemestre_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": "" + } + ], + formsemestre_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 2015-09-02. 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. -## Modules - * **`Notes/do_moduleimpl_list`** - * Paramètres: `form_sem_id, moduleimpl_id, module_id]` - * Résultat: liste de moduleimpl + * **`abs_signale`** + * **Méthode:** POST + * **Paramètres:** `date_debut`, `date_fin`, `module_impl_id=None`, `demi_journee=2`, `estjust=False`, `description`, `etudid` + * **Body de la requête:** `date_debut=date_debut&date_fin=date_fin&demi_journee=demi_journee&description=description&etudid=` + * **Exemple d'utilisation:** `date_debut=2015-02-01&date_fin=2015-02-03&demi_journee=4&description=""&etudid=874` + * **Résultat:** *html* - * **`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` + + + * **`abs_annule`** + * **Méthode:** POST + * **Paramètres:** `date_debut`, `date_fin`, `demi_journee`, `etudid` + * **Body de la requête:** `date_debut=date_debut&date_fin=date_fin&demi_journee=demi_journee&etudid=` + * **Exemple d'utilisation:** `date_debut=2004-05-03&date_fin=2004-06-07&demi_journee=2&etudid=451` + * **Résultat:** *html* + + + * **`abs_annule_justif`** + * **Méthode:** POST + * **Paramètres:** `context`, `date_debut`, `date_fin`, `demi_journee` + * **Body de la requête:** `context=context&date_debut=date_debut&date_fin=date_fin&demi_journee=demi_journee` + * **Exemple d'utilisation:** `context=malade&date_debut=2020-01-05&date_fin=2020-01-06&demi_journee=1` + * **Résultat:** *html* + + + + * **`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" + }, + ... + ] + ``` + ## En savoir plus