diff --git a/docs/ScoDoc9API.md b/docs/ScoDoc9API.md index 7155631..a772627 100644 --- a/docs/ScoDoc9API.md +++ b/docs/ScoDoc9API.md @@ -133,7 +133,7 @@ systèmes, voir plus haut pour la ême chose avec la commande `http`): où `SERVEUR` est l'adresse (IP ou nom) de votre serveur. La réponse doit ressembler à ceci: -``` +```json { "token": "LuXXxk+i74TXYZZl8MulgbiCGmVHXXX" } @@ -163,47 +163,47 @@ par le serveur ScoDoc. ## Départements -#### **`departements`** - -* **Méthode:** GET -* **Routes:** `/departements` -* **Exemple d'utilisation:** `/api/departements` -* **Résultat:** Liste des tous les départements (visibles ou non). -* **Exemple de résultat:** - ``` - [ - { un département } - ... - ] - ``` - #### **`departements_ids`** * **Méthode:** GET * **Routes:** `/departements_ids` * **Résultat:** Liste des id départements (visibles ou non). * **Exemple de résultat:** - ``` + ```json [ 1888, 999, 165 ] ``` - #### **`departement`** - * **Méthode:** GET - * **Routes:** - * `/departement/id/` - * `/departement/` - * **Résultat:** Un département - * **Exemple de résultat:** - ``` - { - "id": 1, - "acronym": "TAPI", - "description": null, - "visible": true, - "date_creation": "Fri, 15 Apr 2022 12:19:28 GMT" - }, - ``` +* **Méthode:** GET +* **Routes:** + * `/departement/id/` + * `/departement/` +* **Résultat:** Un département +* **Exemple de résultat:** + ```json + { + "id": 1, + "acronym": "TAPI", + "description": null, + "visible": true, + "date_creation": "Fri, 15 Apr 2022 12:19:28 GMT" + }, + ``` + +#### **`departements`** + +* **Méthode:** GET +* **Routes:** `/departements` +* **Exemple d'utilisation:** `/api/departements` +* **Résultat:** Liste des tous les départements (visibles ou non). +* **Exemple de résultat:** + ```json + [ + { un département } + ... + ] + ``` + chaque département est décrit selon [departement](ScoDoc9API.md#departement) #### **Étudiants d'un département** @@ -217,7 +217,7 @@ par le serveur ScoDoc. On peut spécifier l'acronyme du département ("MMI") ou son id (un entier). Attention, la liste peut être longue: requête coûteuse à éviter. * **Exemple de résultat:** - ``` + ```json [ { "civilite": "M", // M, F ou X @@ -233,7 +233,7 @@ par le serveur ScoDoc. ... ] ``` -#### **Formsemestre d'un département** +#### **Formsemestres d'un département** * **Méthode:** GET * **Paramètres:** `dept` @@ -245,7 +245,7 @@ par le serveur ScoDoc. * **Exemple de résultat:** ```[ 28, 99, 3 ]``` -#### **Formsemestre en cours d'un département** +#### **Formsemestres en cours d'un département** * **Méthode:** GET * **Paramètres:** `dept` @@ -254,41 +254,41 @@ par le serveur ScoDoc. * `/departement//formsemestres_courants` * **Exemple d'utilisation:** `/api/departement/MMI/formsemestres_courants` * **Résultat:** Liste des id des formsemestres en cours d'un département donné. -* **Exemple de résultat:** - ``` + * **Exemple de résultat:** + ```json [ - { - "block_moyennes": false, - "bul_bgcolor": "white", - "bul_hide_xml": false, - "date_debut_iso": "2021-09-01", - "date_debut": "01/09/2021", - "date_fin_iso": "2022-08-31", - "date_fin": "31/08/2022", - "dept_id": 1, - "elt_annee_apo": "V7HU", - "elt_sem_apo": null, - "ens_can_edit_eval": false, - "etat": true, - "formation_id": 1, - "formsemestre_id": 1, - "gestion_compensation": false, - "gestion_semestrielle": false, - "id": 1, - "modalite": "FI", - "resp_can_change_ens": true, - "resp_can_edit": false, - "responsables": [ - 12, - 42 - ], - "scodoc7_id": null, - "semestre_id": 1, - "titre_num": "BUT MMI semestre 1", - "titre": "BUT MMI", - "titre_formation": "BUT MMI" - }, - ... + { + "block_moyennes": false, + "bul_bgcolor": "white", + "bul_hide_xml": false, + "date_debut_iso": "2021-09-01", + "date_debut": "01/09/2021", + "date_fin_iso": "2022-08-31", + "date_fin": "31/08/2022", + "dept_id": 1, + "elt_annee_apo": "V7HU", + "elt_sem_apo": null, + "ens_can_edit_eval": false, + "etat": true, + "formation_id": 1, + "formsemestre_id": 1, + "gestion_compensation": false, + "gestion_semestrielle": false, + "id": 1, + "modalite": "FI", + "resp_can_change_ens": true, + "resp_can_edit": false, + "responsables": [ + 12, + 42 + ], + "scodoc7_id": null, + "semestre_id": 1, + "titre_num": "BUT MMI semestre 1", + "titre": "BUT MMI", + "titre_formation": "BUT MMI" + }, + ... ] ``` @@ -303,7 +303,8 @@ par le serveur ScoDoc. * **Exemple d'utilisation:** `/api/formsemestre/1` * **Résultat:** Données d'un formsemestre spécifié par son id. * **Exemple de résultat:** -```{ +```json +{ "block_moyennes": false, "bul_bgcolor": "white", "bul_hide_xml": false, @@ -345,7 +346,8 @@ par le serveur ScoDoc. * **Exemple d'utilisation:** `/api/formsemestres/query?etapeapo=V7HU1&annee_scolaire=2021` * **Résultat:** Données d'un formsemestre spécifié par son id. * **Exemple de résultat:** -```{ +```json +{ "block_moyennes": false, "bul_bgcolor": "white", "bul_hide_xml": false, @@ -384,10 +386,135 @@ Le `titre`est celui donné par l'utilisateur dans le formsemestre, tandis que le * **Méthode:** GET * **Paramètres:** `formsemestre_id` -* **Route:** `/formsemestres/bulletins +* **Route:** `/formsemestres//bulletins * **Exemple d'utilisation:** `/api/formsemestre/1/bulletins` * **Résultat:** Bulletins d'un formsemestre spécifié par son id. * **Exemple de résultat:** +``` + [ + { + "type": "classic", + "version": "0", + "etudid": 9586, + "formsemestre_id": 829, + "date": "2022-07-25T14:44:03.305430", + "publie": true, + "etapes": [ + "3RETAL" + ], + "etape_apo": "3RETAL", + "etudiant": { + "etudid": 9586, + "code_nip": "42021436", + "code_ine": "081377224FD", + "nom": "WUILMART", + "prenom": "Jade", + "civilite": "Mme", + "photo_url": "/ScoDoc/INFO/Scolarite/get_photo_image?etudid=9586&size=small", + "email": "jade.wuilmart.etu@univ-lille.fr", + "emailperso": "jeufir@gmail.com", + "sexe": "Mme" + }, + "note": { + "value": "12.54", + "min": "01.55", + "max": "15.30", + "moy": "12.80" + }, + "rang": { + "value": "9", + "ninscrits": 10 + }, + "rang_group": [ + { + "group_type": "cgir", + "group_name": "alt", + "value": "", + "ninscrits": 0 + } + ], + "note_max": { + "value": 20 + }, + "bonus_sport_culture": { + "value": 0.0 + }, + "ue": [ + { + "id": 1188, + "numero": "1", + "acronyme": "BCC1", + "titre": "Concevoir et maintenir une infrastructure réseau", + "note": { + "value": "11.65", + "min": "00.00", + "max": "16.10", + "moy": "12.52" + }, + "rang": "8", + "effectif": 10, + "ects": " 6", + "code_apogee": "", + "module": [ + { + "id": 13240, + "code": "rsxip", + "coefficient": 6.0, + "numero": 1, + "titre": "Technologies IP", + "abbrev": "None", + "note": { + "value": "11.65", + "moy": "12.52", + "max": "16.10", + "min": "00.00", + "nb_notes": 10, + "nb_missing": 0, + "nb_valid_evals": 4 + }, + "code_apogee": "", + "evaluation": [ + { + "jour": "2021-11-09", + "heure_debut": "08:00:00", + "heure_fin": "08:00:00", + "coefficient": 1.5, + "evaluation_type": 0, + "evaluation_id": 24782, + "description": "DS Réseaux IP", + "note": "16.00" + }, + ... + ] + } + ] + }, + ... + ], + "ue_capitalisee": [], + "situation": "Inscrit le 06/09/2021. UE acquises: BCC1, BCC2, BCC3, BCC 4, BCC 5, BCC 6, BCC8. Décision jury: Validé Diplôme obtenu.", + "decision": { + "code": "ADM", + "etat": "I", + "date": "2022-07-11", + "compense_formsemestre_id": null + }, + "decision_ue": [ + { + "ue_id": 1188, + "numero": 1, + "acronyme": "BCC1", + "titre": "Concevoir et maintenir une infrastructure réseau", + "code": "ADM", + "ects": 6.0 + }, + ... + ], + "autorisation_inscription": [], + "appreciation": [] + }, + ] +``` #### **Programme d'un formsemestre** @@ -397,6 +524,67 @@ Le `titre`est celui donné par l'utilisateur dans le formsemestre, tandis que le * **Exemple d'utilisation:** `/api/formsemestre/1/programme` * **Résultat:** Liste des UEs, ressources et SAE d'un formsemestre spécifié par son id. * **Exemple de résultat:** +```json +{ + "ues": [ + { + "formation_id": 328, + "ue_code": "UCOD74", + "id": 1188, + "ects": 6.0, + "acronyme": "BCC1", + "is_external": false, + "numero": 1, + "code_apogee": "", + "titre": "Concevoir et maintenir une infrastructure réseau", + "coefficient": 0.0, + "semestre_idx": null, + "coef_rcue": 1.0, + "type": 0, + "color": null, + "niveau_competence_id": null, + "ue_id": 1188, + "module_ue_coefs": [] + }, + ... + ], + "ressources": [], + "saes": [], + "modules": [ + { + "id": 13240, + "formsemestre_id": 829, + "computation_expr": null, + "module_id": 7591, + "responsable_id": 397, + "module": { + "id": 7591, + "ects": null, + "module_type": 0, + "titre": "Technologies IP", + "ue_id": 1188, + "abbrev": null, + "formation_id": 328, + "code": "rsxip", + "matiere_id": 3499, + "heures_cours": 0.0, + "semestre_id": 1, + "heures_td": 0.0, + "numero": 1, + "heures_tp": 0.0, + "code_apogee": "", + "coefficient": 6.0, + "parcours": [], + "app_critiques": [], + "module_id": 7591 + }, + "moduleimpl_id": 13240, + "ens": [] + }, + ... + ] +} +``` #### **Etudiants d'un formsemestre** @@ -409,7 +597,46 @@ Le `titre`est celui donné par l'utilisateur dans le formsemestre, tandis que le * **Exemple d'utilisation:** `/api/formsemestre/1/etudiants` * **Résultat:** Etudiants d'un formsemestre spécifié par son id. Liste est restreinte aux étudiants démissionnaires/défaillants si l'option correspondante est ajoutée au chemin * **Exemple de résultat:** - +```json +[ + { + "id": 9586, + "nip": "42021436", + "ine": "081377224FD", + "nom": "WUILMART", + "nom_usuel": null, + "prenom": "JADE", + "civilite": "F", + "groups": [ + { + "partition_id": 1731, + "id": 3770, + "formsemestre_id": 829, + "partition_name": null, + "numero": 401, + "bul_show_rank": false, + "show_in_lists": true, + "groups_editable": true, + "group_id": 3770, + "group_name": null + }, + { + "partition_id": 1735, + "id": 3784, + "formsemestre_id": 829, + "partition_name": "cgir", + "numero": 405, + "bul_show_rank": false, + "show_in_lists": true, + "groups_editable": true, + "group_id": 3784, + "group_name": "alt" + } + ] + }, +... +] +``` #### **Etat des évaluations d'un formsemestre** * **Méthode:** GET @@ -431,7 +658,47 @@ pour un formsemestre spécifié par son id. Par défaut les valeurs numériques sont formattées en chaînes. Si format=raw, valeurs numériques mais pas JSON compliant à cause des _NaN_. * **Exemple de résultat:** +```json +[ + { + "etudid": 11607, + "code_nip": "41804612", + "rang": "1", + "civilite_str": "M.", + "nom_disp": "ANONYMOUS", + "prenom": "SIMON", + "nom_short": "DESMARETS Si.", + "moy_gen": 15.301055555555555, + "moy_ue_1188": 15.160000000000002, + "moy_mod_13240_1188": 15.16, + "moy_ue_1189": 18.25, + "moy_mod_13243_1189": 18.25, + "moy_ue_1190": 15.425925925925927, + "moy_mod_13163_1190": 16.5, + "moy_mod_13165_1190": 14.083333333333334, + "moy_ue_1191": 15.003333333333332, + "moy_mod_13166_1191": 15.003333333333332, + "moy_ue_1192": 13.0, + "moy_mod_13167_1192": 13.0, + "moy_ue_1193": 16.0, + "moy_mod_13168_1193": 16.0, + "moy_ue_1196": 14.666666666666666, + "moy_mod_13169_1196": 14.666666666666666, + "ues_validables": "7/7", + "part_1735": "alt", + "bac": "STI2D MENTION BIEN", + "specialite": "SYSTEME INFORMATIQUE ET NUMERIQUE", + "type_admission": "Inconnue", + "classement": "", + "partitions": { + "1731": 3770, + "1735": 3784 + } + }, +... +] +``` ## Étudiants #### **`etudiants_courant`** @@ -468,12 +735,15 @@ mais pas JSON compliant à cause des _NaN_. * **Méthode:** GET * **Paramètres:** `etudid`, `nip`, `ine` - * **Routes:** `/etudiant/etudid/` ou `/etudiant/nip/` ou `/etudiant/ine/` + * **Routes:** + * `/etudiant/etudid/` ou + * `/etudiant/nip/` ou + * `/etudiant/ine/` * **Exemple d'utilisation:** `/api/etudiant/nip/1` * **Résultat:** Retourne les informations sur l'étudiant correspondant à l'id passé en paramètres. Les codes INE et NIP sont uniques au sein d'un département. - Si plusieurs objets étudiant ont le même code, on ramène le plus récemment inscrit. + Si plusieurs objets étudiant ont le même code, on ramène le plus récemment inscrit. * **Exemple de résultat:** ``` { @@ -825,6 +1095,8 @@ mais pas JSON compliant à cause des _NaN_. ] ``` + + ## Programmes de formations #### **`formation`** @@ -1255,7 +1527,7 @@ des informations suivantes: * **Paramètres:** `formsemestre_id` * **Routes:** `/formsemestre//etat_evals` * **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/1/etat_evals` - * **Résultat:** Retourne les informations sur l'état des évaluations d'un semestre donnée + * **Résultat:** Retourne les informations sur l'état des évaluations d'un semestre donné * **Exemple de résultat:** ``` { diff --git a/docs/img/API_Chart.odg b/docs/img/API_Chart.odg index 1210f79..dd08d58 100644 Binary files a/docs/img/API_Chart.odg and b/docs/img/API_Chart.odg differ diff --git a/docs/img/API_Chart.png b/docs/img/API_Chart.png index 7235080..4df7f95 100644 Binary files a/docs/img/API_Chart.png and b/docs/img/API_Chart.png differ diff --git a/docs/img/API_Chart.svg b/docs/img/API_Chart.svg index 4e59a87..8e21d44 100644 --- a/docs/img/API_Chart.svg +++ b/docs/img/API_Chart.svg @@ -92,7 +92,7 @@ - + @@ -728,38 +728,14 @@ - - - - <string:dept_acronym> + + + + referentiel_competence - - - - formations - - - - - - - - referentiel_competence - - - - - - - - <int:formation_id> - - - - @@ -767,7 +743,7 @@ - + @@ -775,7 +751,7 @@ - + @@ -783,14 +759,14 @@ - + - + @@ -798,7 +774,7 @@ - + @@ -806,7 +782,7 @@ - + @@ -814,39 +790,7 @@ - - - - - / - - - - - - - - / - - - - - - - - / - - - - - - - - / - - - - + @@ -854,1762 +798,1770 @@ - + - ? - id323 + ? + id317 + + + + + + + + ? + id318 + + + + + + + + ? + id319 + + + + + + + + ? + id320 + + + + + + + + ? + id321 + + + + + + + + formsemestres + + + + + + + + / + + + + + + + + query - - - - ? - id324 + + + + ? - - - - ? - id325 + + + + & - - - - ? - id326 + + + + etape_apo - - - - ? - id327 + + + + = - - - - formsemestres + + + + <string:etape_apo> - - - - / + + + + annee_scolaire - - - - query + + + + = - - - - ? + + + + <int:annee> - - - - & + + + + dept_acronym - - - - etape_apo + + + + = - - - - = + + + + <string:acronym> - - - - <string:etape_apo> + + + + dept_id - - - - annee_scolaire + + + + = - - - - = + + + + <int:dept_id> - + - - - - <int:annee> + + + - + - - - - dept_acronym + + + - + - - - - = + + + - + - - - - <string:acronym> + + + - + - - - - dept_id + + + - + - - - - = + + + - + - - - - <int:dept_id> + + + - - - + + + - - - + + + - + - - - + + + + formsemestre - + - - - + + + + / - + - - - + + + + <int:formsemestre_id> - + - - - + + + + / - - - + + + - - - + + + - - - + + + - + - - - - formsemestre + + + - + - - - - / + + + - - - - <int:formsemestre_id> + + + + ? + + + + + + + - - - - - / - - - - - - + + + + bulletins - + - - - + + + + jury - + - - - + + + + programme - + - - - + + + + etudiants - + - - - + + + + / - - - - ? + + + + demissionnaires + + + + + + + + defaillants - - - - - - - - - - - bulletins + + + - + - - - - jury + + + - - - - programme + + + + etat_evals - - - - etudiants + + + + partitions - - - - / + + + + resultats - - - - demissionnaires + + + + ? - - - - defaillants - - - - - - - - - - - - - - + + + + format + + + + + = + + + + + + + + raw + + + - - - - etat_evals + + + - - - - partitions + + + + / - - - - resultats + + + + create - - - - ? + + + + logos - - - - format + + + + / - - - - = + + + + <string:logo_name> - - - - raw + + + + user - + - - - + + + + / - - - - / + + + + <int:id> - - - - create + + + + order - + - - - - logos + + + - + - - - - / + + + - - - - <string:logo_name> + + + + group - - - - user + + + + / - - - - / + + + + <int:group_id> - - - - <int:id> + + + + / - - - - order + + + + etudiants - + - - - + + + + query - + - - - + + + + edit - - - - group + + + + delete - - - - / + + + + ? - - - - <int:group_id> + + + + etat - - - - / + + + + = - - - - etudiants + + + + <string:etat> - - - - query + + + + set_etudiant - - - - edit + + + + / - - - - delete + + + + <int:etudiant_id> - + - - - - ? + + + - + - - - - etat + + + - + - - - - = + + + - + - - - - <string:etat> + + + - + - - - - set_etudiant + + + - + - - - - / + + + + + + + + + + - - - - - <int:etudiant_id> - - - - - - + + + + partition - + - - - + + + + / - + - - - + + + + <int:partition_id> - + - - - + + + + / - - - + + + - - - + + + - - - + + + - - - - partition + + + + edit - - - - / + + + + delete - - - - <int:partition_id> + + + + remove_etudiant - - - - / + + + + / - + - - - + + + + <int:etudiant_id> - + - - - + + + + group - + - - - + + + + / - - - - edit + + + + create - + - - - - delete + + + - - - - remove_etudiant + + + + evaluations - - - - / + + + + / - - - - <int:etudiant_id> + + + + <int:moduleimpl_id> - - - - group + + + + eval_notes - - - - / + + + + <int:evaluaton_id> - + - - - - create + + + - - - + + + - - - - evaluations + + + + jury - - - - / + + + + / - - - - <int:moduleimpl_id> + + + + <int:formsemestre_id> - - - - eval_notes + + + + formsemestre - - - - <int:evaluaton_id> + + + + preparation_jury - + - - - + + + + decisions_jury - - - + + + - + - - - - jury + + + - - - - / + + + + / - - - - <int:formsemestre_id> + + + + / - - - - formsemestre + + + + groups - - - - preparation_jury + + + + / - - - - decisions_jury + + + + order - - - + + + - + - - - + + + + absences - - - - / + + + + etudid - - - - / + + + + <int:etudid> - - - - groups + + + + / - - - - / + + + + nip - - - - order + + + + <string:nip> - + - - - + + + + / - - - - absences + + + + ine - - - - etudid + + + + <int:ine> - - - - <int:etudid> + + + + / - - - - / + + + + / - + - - - - nip + + + - + - - - - <string:nip> + + + - + - - - - / + + + - + - - - - ine + + + - - - - <int:ine> + + + + / - + - - - - / + + + + + + + + + + - - - - - / - - - - - - + + + + just - + - - - + + + + / - - - + + + - - - + + + - - - - / + + + + abs_annule - - - + + + - + - - - + + + + / - - - - just + + + + ? + + + + + + + - - - - - / - - - - - - + + + + etudid - + - - - + + + + <int:etudid> - - - - abs_annule + + + + / - + - - - + + + + jour - - - - / + + + + <string:jour> - - - - ? + + + + / - + - - - + + + + matin - - - - etudid + + + + <string:matin> - - - - <int:etudid> + + + + / - - - - / + + + + / - - - - jour - - - - - - - - <string:jour> - - - - - - - - / - - - - - - - - matin - - - - - - - - <string:matin> - - - - - - - - / - - - - - - - - / - - - - - - - - & + + + + & + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + <int:etudid> - - - + + + - + - - - + + + + abs_annule_justif - + - - - + + + + etudid - + - - - + + + + <int:etudid> - + - - - + + + + / - + - - - + + + + jour - - - - <int:etudid> + + + + <string:jour> - + - - - + + + + / - - - - abs_annule_justif + + + + matin - - - - etudid + + + + <string:matin> - - - - <int:etudid> + + + + / - - - - / + + + + / - - - - jour + + + + ? - + - - - - <string:jour> + + + - + - - - - / + + + - + - - - - matin + + + - + - - - - <string:matin> + + + - + - - - - / + + + - + - - - - / + + + - + - - - - ? + + + - - - + + + - + - - - + + + + abs_group_etat - + - - - + + + + <int:group_id> - + - - - + + + + / - - - + + + - + - - - + + + + / - + - - - + + + + date_debut - + - - - + + + + / - - - - abs_group_etat + + + + <date:date_debut> - - - - <int:group_id> + + + + / - - - - / + + + + date_fin - + - - - + + + + / - - - - / + + + + <date:date_fin> - + - - - - date_debut + + + - + - - - - / + + + - - - - <date:date_debut> + + + + / - - - - / + + + + ? - + - - - - date_fin + + + - - - - / + + + + list_abs - - - - <date:date_fin> + + + + / - + - - - + + + + / - - - + + + - - - - / + + + + / - - - - ? + + + + <int:etudid> - + - - - + + + + <string:list_abs> - - - - list_abs + + + + / - + - - - - / + + + - - - - / + + + + reset_etud_abs - + - - - + + + + only_not_just - - - - / + + + + only_just - - - - <int:etudid> + + + + / - + - - - - <string:list_abs> + + + - + - - - - / + + + - + - - - - - - - - - - - reset_etud_abs - - - - - - - - only_not_just - - - - - - - - only_just - - - - - - - - / - - - - - - - - - - - - - - + + + + / diff --git a/mkdocs.yml b/mkdocs.yml index 7d4e759..0010848 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,8 +1,8 @@ site_name: ScoDoc theme: - # name: mkdocs - name: material + name: mkdocs + # name: material navigation_depth: 3 features: - navigation.tabs