diff --git a/docs/ScoDoc9API.md b/docs/ScoDoc9API.md index 82eeebaf..b723a459 100644 --- a/docs/ScoDoc9API.md +++ b/docs/ScoDoc9API.md @@ -161,6 +161,20 @@ par le serveur ScoDoc. * [500](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/500) : Erreur inconnue côté serveur. +[test](img/API_Chart.svg) + +## Règles générales + +* une route s'écrit comme une suite de noms et d'identifiants +* les noms token, departement, formation, formsemestre, groupe, etudiant, bulletin, absence, logo, programme, évaluation, resultat, decision désigne des types d'objets. +* les noms (verbes ou groupes verbaux): set_etudiant, remove_etudiant, query, create, delete, edit, order sont des actions +* les noms restants (ids, courant, long, ...) sont des options + Les autre noms sont des options ou des actions +* le dernier nom apparaissant sur une route donne le type d'objet renvoyé. ce nom peut apparaître au singulier ou au pluriel + * Au singulier un seul objet est renvoyé, si aucun objet n'est trouvé, retourne un 404 + * Au pluriel une collection d'objets est renvoyée, si aucun obket n'est trouvé, retourne une collection vide +* un type d'objet au singulier est généralement suivi immédiatement de son identifiant (unique). Exception: pour un étudiant, on peut également utiliser le NIP ou l'INE (qui ne sont pas uniques) + ## Départements #### **departements_ids** @@ -256,7 +270,7 @@ par le serveur ScoDoc. * `/departement//formsemestres_courants` * **Exemple d'utilisation:** `/api/departement/MMI/formsemestres_courants` * **Résultat:** Liste des formsemestres en cours d'un département donné. -* **Exemple de résultat:** [formsemestre-courants.json](samples/sample_formsemestres-courants.json.md) +* **Exemple de résultat:** [departement-formsemestres-courants.json](samples/sample_departement-formsemestres_courants.json.md) ### **Semestres** @@ -273,7 +287,7 @@ par le serveur ScoDoc. * **Méthode:** GET * **Paramètres:** aucun -* ** Query string:** `etape_apo`, `annee_scolaire`, `dept_acronym`, `dept_id` +* **Query string:** `etape_apo`, `annee_scolaire`, `dept_acronym`, `dept_id` * **Route:** `/formsemestres/query * **Exemple d'utilisation:** `/api/formsemestres/query?etape_apo=V7HU1&annee_scolaire=2021` * **Résultat:** Données d'un formsemestre spécifié par son id. Si plusieurs paramètres sont donnés, c'est la conjonction (ET) des critères qui est recherchée. Si aucun formsemestre ne satisfait la requ^te, une liste vide est retournée @@ -316,7 +330,7 @@ par le serveur ScoDoc. * **Route:** `/formsemestres/etat_evals` * **Exemple d'utilisation:** `/api/formsemestre/1/etat_evals` * **Résultat:** informations sur les évaluations d'un formsemestre spécifié par son id. -* **Exemple de résultat:** [formsemestre-etat-eval.json](samples/sample_formsemestre-etat-eval.json.md) +* **Exemple de résultat:** [formsemestre-etat-eval.json](samples/sample_formsemestre-etat_evals.json.md) #### **Résultats d'un formsemestre** @@ -325,7 +339,7 @@ par le serveur ScoDoc. * **Query string: `format` * **Route:** `/formsemestres/resultats` * **Exemple d'utilisation:** `/api/formsemestre/1/resultats` -* **Résultat:** [formsemestre-etat-eval.json](samples/sample_formsemestre-resultats.json.md) +* **Résultat:** [formsemestre-resultats.json](samples/sample_formsemestre-resultats.json.md) Récapitulatif par étudiant (état, groupe(s), moyennes d'UEs et de modules pour un formsemestre spécifié par son id. @@ -336,17 +350,17 @@ mais pas JSON compliant à cause des _NaN_. ## Étudiants -#### **`etudiants_courant`** +#### **`etudiants_courants`** * **Méthode:** GET * **Routes:** - * `/etudiants/courant` - * `/etudiants/courant/long` -* **Exemple d'utilisation:** `/api/etudiants/courant` + * `/etudiants/courants` + * `/etudiants/courants/long` +* **Exemple d'utilisation:** `/api/etudiants/courants` * **Résultat:** Liste des étudiants inscrits dans un formsemestre actuellement en cours. Avec `/long`, donne tous les attributs de l'étudiants (plus lent). -* **Exemple de résultat:** [etudiants-courant.json](samples/sample_etudiants-courant.json.md) +* **Exemple de résultat:** [etudiants-courants.json](samples/sample_etudiants-courants.json.md) #### **`etudiant`** @@ -469,7 +483,7 @@ mais pas JSON compliant à cause des _NaN_. * **Exemple d'utilisation:** `/ScoDoc/api/formations` * **Résultat:** Retourne la liste de toutes les formations (tous départements) - + * **Exemple de résultat:** [formations.json](samples/sample_formations.json.md) ### Export programme #### **`formation export`** @@ -481,9 +495,7 @@ mais pas JSON compliant à cause des _NaN_. * `/formation/export//with_ids` * **Exemple d'utilisation:** `/ScoDoc/api/formation/formation_export/1` * **Résultat:** Retourne la formation, avec UE, matières, modules - * **Exemple de résultat:** - -#### Référentiel de compétences [formation-export.json](samples/sample_formation-export.json.md) + * **Exemple de résultat:** [formation-export.json](samples/sample_formation-export.json.md) #### **`referentiel_competences`** @@ -492,7 +504,8 @@ mais pas JSON compliant à cause des _NaN_. * **Routes:** `/formation//referentiel_competences` * **Exemple d'utilisation:** `api/formation/1/referentiel_competences` * **Résultat:** Le référentiel de compétences d'une formation donnée (json). (_pas toujours présent_) - + * **Exemple de résultat:** [formation-referentiel_competences.json](samples/sample_formation-referentiel_competences.json.md) + * XXX obtenir la liste des référentiels ? ## Formsemestres @@ -591,179 +604,7 @@ des informations suivantes: * **Routes:** `/formsemestre//bulletins` * **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/1/bulletins` * **Résultat:** tous les bulletins d'un formsemestre. - * **Exemple de résultat:** - ``` - [ - { - "version": "0", - "type": "BUT", - "date": "2022-04-27T07:18:16.450634Z", - "publie": true, - "etudiant": { - "civilite": "X", - "code_ine": "1", - "code_nip": "1", - "date_naissance": "", - "email": "SACHA.COSTA@example.com", - "emailperso": "", - "etudid": 1, - "nom": "COSTA", - "prenom": "SACHA", - "nomprenom": "Sacha COSTA", - "lieu_naissance": "", - "dept_naissance": "", - "nationalite": "", - "boursier": "", - "fiche_url": "/ScoDoc/TAPI/Scolarite/ficheEtud?etudid=1", - "photo_url": "/ScoDoc/TAPI/Scolarite/get_photo_image?etudid=1&size=small", - "id": 1, - "codepostaldomicile": "", - "paysdomicile": "", - "telephonemobile": "", - "typeadresse": "domicile", - "domicile": "", - "villedomicile": "", - "telephone": "", - "fax": "", - "description": "" - }, - "formation": { - "id": 1, - "acronyme": "BUT R&T", - "titre_officiel": "Bachelor technologique réseaux et télécommunications", - "titre": "BUT R&T" - }, - "formsemestre_id": 1, - "etat_inscription": "I", - "options": { - "show_abs": true, - "show_abs_modules": false, - "show_ects": true, - "show_codemodules": false, - "show_matieres": false, - "show_rangs": true, - "show_ue_rangs": true, - "show_mod_rangs": true, - "show_moypromo": false, - "show_minmax": false, - "show_minmax_mod": false, - "show_minmax_eval": false, - "show_coef": true, - "show_ue_cap_details": false, - "show_ue_cap_current": true, - "show_temporary": true, - "temporary_txt": "Provisoire", - "show_uevalid": true, - "show_date_inscr": true - }, - "ressources": { - "R101": { - "id": 1, - "titre": "Initiation aux réseaux informatiques", - "code_apogee": null, - "url": "/ScoDoc/TAPI/Scolarite/Notes/moduleimpl_status?moduleimpl_id=1", - "moyenne": {}, - "evaluations": [ - { - "id": 1, - "description": "eval1", - "date": "2022-04-20", - "heure_debut": "08:00", - "heure_fin": "09:00", - "coef": "01.00", - "poids": { - "RT1.1": 1 - }, - "note": { - "value": "12.00", - "min": "00.00", - "max": "18.00", - "moy": "10.88" - }, - "url": "/ScoDoc/TAPI/Scolarite/Notes/evaluation_listenotes?evaluation_id=1" - } - ] - } - }, - "saes": { - "SAE11": { - "id": 2, - "titre": "Se sensibiliser à l'hygiène informatique et à la cybersécurité", - "code_apogee": null, - "url": "/ScoDoc/TAPI/Scolarite/Notes/moduleimpl_status?moduleimpl_id=2", - "moyenne": {}, - "evaluations": [] - } - }, - "ues": { - "RT1.1": { - "id": 1, - "titre": "Administrer les réseaux et l’Internet", - "numero": 1, - "type": 0, - "color": "#B80004", - "competence": null, - "moyenne": { - "value": "08.50", - "min": "06.00", - "max": "16.50", - "moy": "11.31", - "rang": "12", - "total": 16 - }, - "bonus": "00.00", - "malus": "00.00", - "capitalise": null, - "ressources": { - "R101": { - "id": 1, - "coef": 12, - "moyenne": "12.00" - } - }, - "saes": { - "SAE11": { - "id": 2, - "coef": 16, - "moyenne": "~" - } - }, - "ECTS": { - "acquis": 0, - "total": 12 - } - }, - "semestre": { - "etapes": [], - "date_debut": "2021-09-01", - "date_fin": "2022-08-31", - "annee_universitaire": "2021 - 2022", - "numero": 1, - "inscription": "", - "groupes": [], - "absences": { - "injustifie": 1, - "total": 2 - }, - "ECTS": { - "acquis": 0, - "total": 30 - }, - "notes": { - "value": "10.60", - "min": "02.40", - "moy": "11.05", - "max": "17.40" - }, - "rang": { - "value": "10", - "total": 16 - } - } - } - } - ] - ``` + * **[Exemple de résultat](samples/sample_formsemestre-bulletins.json.md)** #### **etat_evals d'un formsemestre** @@ -772,56 +613,8 @@ des informations suivantes: * **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é - * **Exemple de résultat:** - ``` - { - "RT1.1": [ - { - "id": 1, - "titre": "Initiation aux réseaux informatiques", - "evaluations": [ - { - "id": 1, - "description": null, - "datetime_epreuve": null, - "heure_fin": "09:00:00", - "comptee": "oui", - "inscrits": 16, - "manquantes": 0, - "ABS": 0, - "ATT": 0, - "EXC": 0, - "saisie_notes": { - "datetime_debut": "2021-09-11T00:00:00+02:00", - "datetime_fin": "2022-08-25T00:00:00+02:00", - "datetime_mediane": "2022-03-19T00:00:00+01:00" - } - }, - { - "id": 22, - "description": null, - "datetime_epreuve": "2021-08-11T00:00:00+02:00", - "heure_fin": "08:00:00", - "comptee": "oui", - "inscrits": 16, - "manquantes": 0, - "ABS": 0, - "ATT": 0, - "EXC": 0, - "saisie_notes": { - "datetime_debut": "2021-09-11T00:00:00+02:00", - "datetime_fin": "2022-08-25T00:00:00+02:00", - "datetime_mediane": "2022-03-19T00:00:00+01:00" - } - }, - ] - }, - ] - } - ``` + * **Exemple de résultat:** [formsemestre-etat_evals.json](samples/sample_formsemestre-etat_evals.json.md) - - #### **`jury`** (**non implémentée**) * **Méthode:** GET @@ -843,66 +636,7 @@ des informations suivantes: * **Routes:** `/formsemestre//programme` * **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/1/programme` * **Résultat:** Retourne la liste des UEs, modules, ressources et SAE d'un semestre. - * **Exemple de résultat:** - ``` - { - "ues": [ - { - "type": 0, - "formation_id": 1, - "ue_code": "UCOD11", - "id": 1, - "ects": 12.0, - "acronyme": "RT1.1", - "is_external": false, - "numero": 1, - "code_apogee": "", - "titre": "Administrer les r\u00e9seaux et l\u2019Internet", - "coefficient": 0.0, - "semestre_idx": 1, - "color": "#B80004", - "ue_id": 1 - }, - ... - ], - "ressources": [ - { - "ens": [ 10, 18 ], - "formsemestre_id": 1, - "id": 15, - "module": { - "abbrev": "Programmer", - "code": "SAE15", - "code_apogee": "V7GOP", - "coefficient": 1.0, - "formation_id": 1, - "heures_cours": 0.0, - "heures_td": 0.0, - "heures_tp": 0.0, - "id": 15, - "matiere_id": 3, - "module_id": 15, - "module_type": 3, - "numero": 50, - "semestre_id": 1, - "titre": "Programmer en Python", - "ue_id": 3 - }, - "module_id": 15, - "moduleimpl_id": 15, - "responsable_id": 2 - }, - ... - ], - "saes": [ - { - ... - }, - ... - ], - "modules" : [ ... les modules qui ne sont ni des SAEs ni des ressources ... ] - } - ``` + * **Exemple de résultat:** [formsemestre-programme.json](samples/sample_formsemestre-programme.json.md) #### Module d'un formsemestre @@ -914,40 +648,10 @@ responsable et ses enseignants). * **Méthode:** GET * **Paramètres:** `moduleimpl_id` - * **Routes:** `/formation/moduleimpl/` + * **Routes:** `/moduleimpl/` * **Exemple d'utilisation:** `/ScoDoc/api/formation/moduleimpl/1` * **Résultat:** Retourne la liste des moduleimpl - * **Exemple de résultat:** - ``` - { - "id": 1, - "formsemestre_id": 1, - "computation_expr": null, - "module_id": 1, - "responsable_id": 2, - "moduleimpl_id": 1, - "ens": [], - "module": { - "heures_tp": 0, - "code_apogee": "", - "titre": "Initiation aux réseaux informatiques", - "coefficient": 1, - "module_type": 2, - "id": 1, - "ects": null, - "abbrev": "Init aux réseaux informatiques", - "ue_id": 1, - "code": "R101", - "formation_id": 1, - "heures_cours": 0, - "matiere_id": 1, - "heures_td": 0, - "semestre_id": 1, - "numero": 10, - "module_id": 1 - } - } - ``` + * **Exemple de résultat:** [moduleimpl.json](samples/sample_moduleimpl.json.md) ### Groupes et partitions @@ -955,88 +659,160 @@ 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. +#### **`partitions`** + +* **Méthode: GET** +* **Paramètres:** `formsemestre_id` +* **Routes:** `/formsemestre//partitions` +* **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/911/partitions` +* **Résultat:** La liste de toutes les partitions d'un formsemestre. +* **Exemple de résultat:** [formsemestre-partitions.json](samples/sample_formsemestre-partitions.json.md) + #### **`partition`** - * **Méthode: GET** - * **Paramètres:** `formsemestre_id` - * **Routes:** `/partitions/` - * **Exemple d'utilisation:** `/ScoDoc/api/partition/48` - * **Résultat:** La liste de toutes les partitions d'un formsemestre. - * **Exemple de résultat:** - ``` - [ - { - "partition_id": 2, - "id": 2, - "formsemestre_id": 1, - "partition_name": "TD", - "numero": 1, - "bul_show_rank": false, - "show_in_lists": true - }, - { - "partition_id": 1, - "id": 1, - "formsemestre_id": 1, - "partition_name": null, - "numero": 0, - "bul_show_rank": false, - "show_in_lists": true - } - ] - ``` - -#### **`groups`** +* **Méthode: GET** +* **Paramètres:** `partition_id` +* **Routes:** `/partition/` +* **Exemple d'utilisation:** `/ScoDoc/api/partition/1963` +* **Résultat:** La description d'une partition (y compris la liste de ses groupes). +* **Exemple de résultat:** [partition.json](samples/sample_partition.json.md) - * **Méthode: GET** - * **Paramètres:** `group_id`, `etat` - * **Routes:** `/partitions/groups/` ou `/partitions/groups//etat/` - * **Exemple d'utilisation:** `/ScoDoc/api/partitions/groups/1` - * **Résultat:** Retourne la liste des étudiants dans un groupe. - * **Exemple de résultat:** - ``` - [ - { - "etudid": 10, - "id": 10, - "dept_id": 1, - "nom": "BOUTET", - "prenom": "Marguerite", - "nom_usuel": "", - "civilite": "F", - "date_naissance": null, - "lieu_naissance": null, - "dept_naissance": null, - "nationalite": null, - "statut": null, - "boursier": null, - "photo_filename": null, - "code_nip": "10", - "code_ine": "10", - "scodoc7_id": null, - "email": "MARGUERITE.BOUTET@example.com", - "emailperso": null, - "domicile": null, - "codepostaldomicile": null, - "villedomicile": null, - "paysdomicile": null, - "telephone": null, - "telephonemobile": null, - "fax": null, - "typeadresse": "domicile", - "description": null, - "group_id": 1, - "etat": "I", - "civilite_str": "Mme", - "nom_disp": "BOUTET", - "nomprenom": "Mme Marguerite BOUTET", - "ne": "e", - "email_default": "MARGUERITE.BOUTET@example.com" - } - ] - ``` +#### **`partition-edit`** + +* **Méthode: POST** +* **Paramètres:** `partition_id` +* **Data:** `{ partition_name : }` +* **Routes:** `/partition//edit` +* **Exemple d'utilisation:** `/ScoDoc/api/partition/2047/edit` +>`{ "partition_name" : "PART4" }` +* **Résultat:** Renomme une partition +* **[Exemple de résultat](samples/sample_partition-edit.json.md) + +#### **`partition-delete`** + +* **Méthode: POST** +* **Paramètres:** `partition_id` +* **Routes:** `/partition//delete` +* **Exemple d'utilisation:** `/ScoDoc/api/partition/2047/delete` +* **Résultat:** Supprime une partition. +* **[Exemple de résultat](samples/sample_partition-delete.json.md) + +#### **`formsemestre-partition-create`** + +* **Méthode: POST** +* **Paramètres:** `formsemestre_id` +* **Data:** `{ "partition_name" : }` +* **Routes:** `/formsemestre//partition/create` +>`{ "partition_name" : "PART" }` +* **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/944/partition/create` +* **Résultat:** Crée une nouvelle partition dans un formsemestre. +* **[Exemple de résultat:](samples/sample_formsemestre-partition-create.json.md)** + +#### **`formsemestre-partition-order`** + +* **Méthode: POST** +* **Paramètres:** `formsemestre_id` +* **Data:** `[ , , ... ]` +* **Routes:** `/formsemestre//partition/order` +* **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/944/partition/order` +>`[ 2048, 2054 ]` +* **Résultat:** Spécifie l'ordre des partitions d'un formsemestre. +* **[Exemple de résultat:](samples/sample_formsemestre-partition-order.json.md)** + +#### **`partition-groups-order`** + +* **Méthode: POST** +* **Paramètres:** `partition_id` +* **Data:** `[ , , ... ]` +* **Routes:** `/partition//groups/order` +* **Exemple d'utilisation:** `/ScoDoc/api/partition/1962/groups/order` +>`[ 4383, 4379, 4380, 4381, 4382, 4384 ]` +* **Résultat:** Spécifie l'ordre des groupes d'une partition. +* **[Exemple de résultat:](samples/sample_partition-groups-order.json.md)** + +#### **`group-etudiants`** + +* **Méthode: GET** +* **Paramètres:** `group_id` +* **Routes:** `/group//etudiants` +* **Exemple d'utilisation:** `/ScoDoc/api/group/1/etudiants` +* **Résultat:** Retourne la liste des étudiants dans un groupe. +* **Exemple de résultat:** [group-etudiants.json](samples/sample_group-etudiants.json.md) + +#### **`groups-etudiants-query`** + +* **Méthode: GET** +* **Paramètres:** `group_id` +* **Query string:** `etat` ('I', 'D' ou 'DEF') +* **Routes:** `/group//etudiants/query` +* **Exemple d'utilisation:** `/ScoDoc/api/group/1/etudiants/query?etat=I` +* **Résultat:** Retourne la liste des étudiants dans un groupe. +* **Exemple de résultat:** [group-etudiants-query.json](samples/sample_group-etudiants-query.json.md) + +#### **`groups-set_etudiant`** + +* **Méthode: POST** +* **Permission: `ScoEtudChangeGroups`*** +* **Paramètres:** `group_id`, `etudid` +* **Routes:** `/group//set_etudiant/` +* **Exemple d'utilisation:** `/ScoDoc/api/group/4085/set_etudiant/12108` +* **Résultat:** Affecte un étudiant dans un groupe. +* **[Exemple de résultat](samples/sample_group-set_etudiant.json.md)** + +#### **`groups-remove_etudiant`** + +* **Méthode: POST** +* **Permission: `ScoEtudChangeGroups`*** +* **Paramètres:** `group_id`, `etudid` +* **Routes:** `/group//remove_etudiant/` +* **Exemple d'utilisation:** `/ScoDoc/api/group/4085/remove_etudiant/12108` +* **Résultat:** Retire un étudiant d'un groupe. +* **[Exemple de résultat](samples/sample_group-remove_etudiant.json.md)** + +#### **`partition-group-create`** + +* **Méthode: POST** +* **Permission: `ScoEtudChangeGroups`*** +* **Paramètres:** `partition_id` +* **Data:** `{ group_name : }` +* **Routes:** `/partition//create` +* **Exemple d'utilisation:** `/ScoDoc/api/partition/1962/create` +>`{ "group_name" : "A" }` +* **Résultat:** Crée un groupe dans une partition. +* **[Exemple de résultat](samples/sample_formsemestre-partition-create.json.md)** + +#### **`partition-group-delete`** + +* **Méthode: POST** +* **Permission: `ScoEtudChangeGroups`*** +* **Paramètres:** `group_id` +* **Routes:** `/group//delete` +* **Exemple d'utilisation:** `/ScoDoc/api/group/4581/delete` +* **Résultat:** Supprime un groupe. +* **[Exemple de résultat](samples/sample_group-delete.json.md)** + +#### **`partition-remove_etudiant`** + +* **Méthode: POST** +* **Permission: `ScoEtudChangeGroups`*** +* **Paramètres:** `partition_id` +* **Routes:** `/partition//remove_etudiant/` +* **Exemple d'utilisation:** `/ScoDoc/api/partition/1962/remove_etudiant/12107` +* **Résultat:** Reture un étudiant des groupes de la partition. +* **[Exemple de résultat](samples/sample_partition-remove_etudiant.json.md)** + +#### **`group-edit`** + +* **Méthode: POST** +* **Permission: `ScoEtudChangeGroups`*** +* **Paramètres:** `group_id` +* **Data:** `{ group_name : }` +* **Routes:** `/group//edit` +* **Exemple d'utilisation:** `/ScoDoc/api/group/4581/edit` +>`{ "group_name" : "nouveau" }` +* **Résultat:** Renomme un groupe. +* **[Exemple de résultat](samples/sample_group-edit.json.md)** - ### Évaluations #### **`evaluations`** diff --git a/docs/img/API_Chart.odg b/docs/img/API_Chart.odg index ba11a638..e330eea4 100644 Binary files a/docs/img/API_Chart.odg and b/docs/img/API_Chart.odg differ diff --git a/docs/samples/sample_formsemestre-bulletins.json.md b/docs/samples/sample_formsemestre-bulletins.json.md index 2cf80e3b..b1f4d1fc 100644 --- a/docs/samples/sample_formsemestre-bulletins.json.md +++ b/docs/samples/sample_formsemestre-bulletins.json.md @@ -1,129 +1,230 @@ ### formsemestre-bulletins -`/api/formsemestre/1/bulletins` +`/api/formsemestre/911/bulletins` ```json - [ +[ { - "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" + "version": "0", + "type": "BUT", + "date": "2022-08-02T10:25:37.411626Z", + "publie": true, + "etudiant": { + "civilite": "M", + "code_ine": "0910036777K", + "code_nip": "21701024", + "date_naissance": "05/10/1999", + "dept_id": 6, + "dept_acronym": "INFO", + "email": "quentin.albert.etu@univ-lille.fr", + "emailperso": "quentin.nether@gmail.com", + "etudid": 11958, + "nom": "ALBERT", + "prenom": "QUENTIN", + "nomprenom": "M. Quentin ALBERT", + "lieu_naissance": "ROUBAIX", + "dept_naissance": "", + "nationalite": "", + "boursier": "", + "fiche_url": "/ScoDoc/INFO/Scolarite/ficheEtud?etudid=11958", + "photo_url": "/ScoDoc/INFO/Scolarite/get_photo_image?etudid=11958&size=small", + "id": 11958, + "domicile": "25 Allée de la marbrerie", + "villedomicile": "TOURCOING", + "telephone": "0664126512", + "fax": "", + "description": "(infos admission)", + "codepostaldomicile": "59200", + "paysdomicile": "", + "telephonemobile": "0621096401", + "typeadresse": "domicile" + }, + "formation": { + "id": 374, + "acronyme": "BUT Informatique", + "titre_officiel": "Licence professionnelle", + "titre": "BUT Informatique" + }, + "formsemestre_id": 944, + "etat_inscription": "I", + "options": { + "show_abs": false, + "show_abs_modules": false, + "show_ects": false, + "show_codemodules": false, + "show_matieres": false, + "show_rangs": true, + "show_ue_rangs": false, + "show_mod_rangs": false, + "show_moypromo": false, + "show_minmax": false, + "show_minmax_mod": false, + "show_minmax_eval": false, + "show_coef": true, + "show_ue_cap_details": false, + "show_ue_cap_current": true, + "show_temporary": false, + "temporary_txt": "PROVISOIRE", + "show_uevalid": true, + "show_date_inscr": false + }, + "ressources": { + "R1.01": { + "id": 15278, + "titre": "Initiation au dév.", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=15278", + "moyenne": {}, + "evaluations": [] + }, + "R1.02": { + "id": 15275, + "titre": "Dev. interfaces web", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=15275", + "moyenne": {}, + "evaluations": [] + }, + ... + }, + "saes": { + "SAE1.01": { + "id": 15279, + "titre": "SAE1.01", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=15279", + "moyenne": {}, + "evaluations": [] + }, + "SAE1.02": { + "id": 15263, + "titre": "SAE1.02", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=15263", + "moyenne": {}, + "evaluations": [] + }, + ... + }, + "ues": { + "UE 1.1": { + "id": 2074, + "titre": "Réaliser un développement d'application", + "numero": 1, + "type": 0, + "color": "#B80004", + "competence": null, + "moyenne": { + "value": "~", + "min": "~", + "max": "~", + "moy": "~", + "rang": "", + "total": 0, + "groupes": {} + }, + "bonus": "00.00", + "malus": "00.00", + "capitalise": null, + "ressources": { + "R1.01": { + "id": 15278, + "coef": 0.42, + "moyenne": "~" + }, + "R1.02": { + "id": 15275, + "coef": 0.12, + "moyenne": "~" + }, + "R1.10": { + "id": 15266, + "coef": 0.06, + "moyenne": "~" + } + }, + "saes": { + "SAE1.01": { + "id": 15279, + "coef": 0.4, + "moyenne": "~" + } + } + }, + "UE 1.2": { + "id": 2081, + "titre": "Optimiser des applications informatiques", + "numero": 200, + "type": 0, + "color": "#F97B3D", + "competence": null, + "moyenne": { + "value": "~", + "min": "~", + "max": "~", + "moy": "~", + "rang": "", + "total": 0, + "groupes": {} + }, + "bonus": "00.00", + "malus": "00.00", + "capitalise": null, + "ressources": { + "R1.01": { + "id": 15278, + "coef": 0.24, + "moyenne": "~" + }, + "R1.03": { + "id": 15270, + "coef": 0.06, + "moyenne": "~" + }, + "R1.06": { + "id": 15262, + "coef": 0.15, + "moyenne": "~" + }, + "R1.07": { + "id": 15268, + "coef": 0.15, + "moyenne": "~" + } + }, + "saes": { + "SAE1.02": { + "id": 15263, + "coef": 0.4, + "moyenne": "~" + } + } + }, + ... + }, + "semestre": { + "etapes": [ + "1BFQQU" + ], + "date_debut": "2022-09-01", + "date_fin": "2022-12-31", + "annee_universitaire": "2022 - 2023", + "numero": 1, + "inscription": "", + "groupes": [], + "notes": { + "value": "00.00", + "min": "00.00", + "moy": "11.24", + "max": "14.06" + }, + "rang": { + "value": "10", + "total": 10, + "groupes": {} + } + } }, ... - ] - } - ] - }, - ... - ], - "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": [] - }, - ] +] ``` diff --git a/docs/samples/sample_formsemestre-etat_evals.json.md b/docs/samples/sample_formsemestre-etat_evals.json.md new file mode 100644 index 00000000..b36f69d0 --- /dev/null +++ b/docs/samples/sample_formsemestre-etat_evals.json.md @@ -0,0 +1,88 @@ +### formsemestre-etat-eval + +`/api/formsemestre/911/etat_evals` + +```json +[ + { + "id": 14530, + "responsable_id": 667, + "computation_expr": null, + "module_id": 8194, + "formsemestre_id": 911, + "moduleimpl_id": 14530, + "ens": [], + "module": { + "abbrev": "DEv. objets", + "formation_id": 333, + "code": "R 2.01", + "matiere_id": 3861, + "heures_cours": 0.0, + "semestre_id": 2, + "heures_td": 0.0, + "numero": 216, + "heures_tp": 0.0, + "code_apogee": "", + "titre": "Développement orienté objets", + "coefficient": 0.0, + "module_type": 2, + "id": 8194, + "ects": null, + "ue_id": 1772, + "parcours": [], + "app_critiques": [], + "module_id": 8194 + }, + "evaluations": [ + { + "jour": "02/06/2022", + "heure_fin": "15h00", + "description": "DS (UE2.1)", + "coefficient": 3.0, + "publish_incomplete": true, + "numero": 2, + "moduleimpl_id": 14530, + "id": 25902, + "heure_debut": "13h30", + "note_max": 20.0, + "visibulletin": true, + "evaluation_type": 0, + "evaluation_id": 25902, + "date_debut": "2022-06-02T13:30:00", + "date_fin": "2022-06-02T15:00:00", + "poids": { + "1772": 1.0, + "1773": 0.0, + "1774": 0.0, + "1775": 0.0, + "1776": 0.0, + "1777": 0.0 + }, + "jouriso": "2022-06-02", + "duree": "1h30", + "descrheure": " de 13h30 à 15h00", + "matin": 0, + "apresmidi": 1, + "etat": { + "evaluation_id": 25902, + "nb_attente": 0, + "is_complete": true + }, + "nb_inscrits": 117, + "nb_notes_manquantes": 0, + "nb_notes_abs": 16, + "nb_notes_att": 0, + "nb_notes_exc": 0, + "saisie_notes": { + "datetime_debut": "2022-06-14T16:11:16+02:00", + "datetime_fin": "2022-06-17T16:21:17+02:00", + "datetime_mediane": "2022-06-14T16:11:16+02:00" + } + }, + ... + ] + }, + ... +] +``` + diff --git a/docs/samples/sample_formsemestre-partition-create.json.md b/docs/samples/sample_formsemestre-partition-create.json.md new file mode 100644 index 00000000..33baaf21 --- /dev/null +++ b/docs/samples/sample_formsemestre-partition-create.json.md @@ -0,0 +1,20 @@ +### formsemestre-partition-create + +`/api/formsemestre/944/partition/create` +> `Content-Type: application/json` +> +> `{ "group_name": "PART" }` + +```json +{ + "numero": 0, + "formsemestre_id": 944, + "show_in_lists": false, + "id": 2060, + "groups_editable": true, + "bul_show_rank": false, + "partition_name": "PART2", + "groups": {} +} +``` + diff --git a/docs/samples/sample_formsemestre-partition-order.json.md b/docs/samples/sample_formsemestre-partition-order.json.md new file mode 100644 index 00000000..22d1253c --- /dev/null +++ b/docs/samples/sample_formsemestre-partition-order.json.md @@ -0,0 +1,40 @@ +### formsemestre-partition-order + +`/api/formsemestre/944/partition/create` +> `Content-Type: application/json` +> +> `[ 2059, 2047, 2060 ]` + + +```json +[ + { + "formsemestre_id": 944, + "numero": 0, + "show_in_lists": false, + "id": 2059, + "partition_name": "PART", + "bul_show_rank": false, + "groups_editable": true + }, + { + "formsemestre_id": 944, + "numero": 1, + "show_in_lists": true, + "id": 2047, + "partition_name": "PART4", + "bul_show_rank": false, + "groups_editable": true + }, + { + "formsemestre_id": 944, + "numero": 2, + "show_in_lists": false, + "id": 2060, + "partition_name": "PART2", + "bul_show_rank": false, + "groups_editable": true + } +] +``` + diff --git a/docs/samples/sample_group-delete.json.md b/docs/samples/sample_group-delete.json.md new file mode 100644 index 00000000..4fa5196c --- /dev/null +++ b/docs/samples/sample_group-delete.json.md @@ -0,0 +1,11 @@ +### partition-group-create + +`/api/group/4581/delete` + +```json +{ + "OK": true +} + +``` + diff --git a/docs/samples/sample_group-edit.json.md b/docs/samples/sample_group-edit.json.md new file mode 100644 index 00000000..aa453d8a --- /dev/null +++ b/docs/samples/sample_group-edit.json.md @@ -0,0 +1,25 @@ +### partition-group-create + +`/api/group/4581/edit` +> `Content-Type: application/json` +> +> `{ "group_name": "nouveau" }` + +```json +{ + "group_name": "a", + "partition_id": 1962, + "id": 4384, + "numero": null, + "partition": { + "formsemestre_id": 911, + "numero": 1960, + "show_in_lists": true, + "id": 1962, + "partition_name": "TD", + "bul_show_rank": false, + "groups_editable": true + } +} +``` + diff --git a/docs/samples/sample_group-etudiants-query.json.md b/docs/samples/sample_group-etudiants-query.json.md new file mode 100644 index 00000000..0b26e44a --- /dev/null +++ b/docs/samples/sample_group-etudiants-query.json.md @@ -0,0 +1,19 @@ +### group-etudiants + +`/api/group/4085/set_etudiants?etat=D` + +```json +[ + { + "id": 12071, + "code_nip": "24123901", + "code_ine": "081818679FE", + "dept_id": 6, + "nom": "HAMMO", + "nom_usuel": null, + "prenom": "NATHAN", + "civilite": "M" + } +] +``` + diff --git a/docs/samples/sample_group-etudiants.json.md b/docs/samples/sample_group-etudiants.json.md new file mode 100644 index 00000000..c6254e61 --- /dev/null +++ b/docs/samples/sample_group-etudiants.json.md @@ -0,0 +1,30 @@ +### group-etudiants + +`/api/group/4085/etudiants` + +```json +[ + { + "id": 9589, + "code_nip": "42435003", + "code_ine": "081574305FJ", + "dept_id": 6, + "nom": "AVENU", + "nom_usuel": null, + "prenom": "FLORINE", + "civilite": "F" + }, + { + "id": 12019, + "code_nip": "21782690", + "code_ine": "0CPZUI046Q4", + "dept_id": 6, + "nom": "BOULVAR", + "nom_usuel": null, + "prenom": "ALEXANDRE", + "civilite": "M" + }, + ... +] +``` + diff --git a/docs/samples/sample_group-remove_etudiant.json.md b/docs/samples/sample_group-remove_etudiant.json.md new file mode 100644 index 00000000..a9ddc8b0 --- /dev/null +++ b/docs/samples/sample_group-remove_etudiant.json.md @@ -0,0 +1,11 @@ +### group-remove_etudiant + +`/api/group/4085/remove_etudiant/12107` + +```json +{ + "group_id": 4385, + "etudid": 12107 +} +``` + diff --git a/docs/samples/sample_group-set_etudiant.json.md b/docs/samples/sample_group-set_etudiant.json.md new file mode 100644 index 00000000..2aa874af --- /dev/null +++ b/docs/samples/sample_group-set_etudiant.json.md @@ -0,0 +1,11 @@ +### group-set_etudiants + +`/api/group/4085/set_etudiants/12107` + +```json +{ + "group_id": 4385, + "etudid": 12107 +} +``` + diff --git a/docs/samples/sample_partition-delete.json.md b/docs/samples/sample_partition-delete.json.md new file mode 100644 index 00000000..61624e08 --- /dev/null +++ b/docs/samples/sample_partition-delete.json.md @@ -0,0 +1,9 @@ +### partition-delete + +`/api/partition/2047/delete` + +```json +{ + "OK": true +} +``` diff --git a/docs/samples/sample_partition-edit.json.md b/docs/samples/sample_partition-edit.json.md new file mode 100644 index 00000000..e85429f4 --- /dev/null +++ b/docs/samples/sample_partition-edit.json.md @@ -0,0 +1,20 @@ +### partition-edit + +`/api/partition/2047/edit` +> `Content-Type: application/json` +> +> `{ "partition_name": "PART4" }` + +```json +{ + "numero": 1, + "formsemestre_id": 944, + "show_in_lists": true, + "id": 2047, + "groups_editable": true, + "bul_show_rank": false, + "partition_name": "PART4", + "groups": {} +} +``` + diff --git a/docs/samples/sample_partition-groups-order.json.md b/docs/samples/sample_partition-groups-order.json.md new file mode 100644 index 00000000..e3613097 --- /dev/null +++ b/docs/samples/sample_partition-groups-order.json.md @@ -0,0 +1,64 @@ +### partition-groups-order + +`/api/partition/1962/groups/order` +> `Content-Type: application/json` +> +> `[ 4383, 4379, 4380, 4381, 4382, 4384 ]` + + +```json +{ + "formsemestre_id": 911, + "numero": 1960, + "show_in_lists": true, + "partition_name": "TD", + "bul_show_rank": false, + "groups_editable": true, + "id": 1962, + "groups": { + "4383": { + "group_name": "E", + "partition_id": 1962, + "id": 4383, + "numero": 0, + "name": "E" + }, + "4379": { + "group_name": "A", + "partition_id": 1962, + "id": 4379, + "numero": 1, + "name": "A" + }, + "4380": { + "group_name": "B", + "partition_id": 1962, + "id": 4380, + "numero": 2, + "name": "B" + }, + "4381": { + "group_name": "C", + "partition_id": 1962, + "id": 4381, + "numero": 3, + "name": "C" + }, + "4382": { + "group_name": "D", + "partition_id": 1962, + "id": 4382, + "numero": 4, + "name": "D" + }, + "4384": { + "group_name": "a", + "partition_id": 1962, + "id": 4384, + "numero": 5, + "name": "a" + } + } +} +``` + diff --git a/docs/samples/sample_partition-remove_etudiant.json.md b/docs/samples/sample_partition-remove_etudiant.json.md new file mode 100644 index 00000000..5e73d902 --- /dev/null +++ b/docs/samples/sample_partition-remove_etudiant.json.md @@ -0,0 +1,11 @@ +### group-remove_etudiant + +`/api/partition/1962/remove_etudiant/12107` + +```json +{ + "partition_id": 1962, + "etudid": 12107 +} +``` +