From 1be533f48d87fe313b41c46a7955c441c46de0df Mon Sep 17 00:00:00 2001 From: viennet Date: Thu, 4 Aug 2022 20:02:20 +0300 Subject: [PATCH] Complements docs (evaluations, jury, ...) + carte syntaxique. maj des url --- docs/ScoDoc9API.md | 634 +- docs/img/API_Chart.odg | Bin 26939 -> 29342 bytes docs/img/API_Chart.svg | 5318 ++++++++--------- .../sample_departement-etudiants.json.md | 33 +- ...ple_etudiant-formsemestre-bulletin.json.md | 2706 +++++++++ ...ample_etudiant-formsemestre-groups.json.md | 46 + .../sample_formsemestre-decision_jury#pair.md | 128 + .../sample_formsemestre-etudiants.json.md | 44 - .../sample_group-etudiants-query.json.md | 27 +- .../sample_partition-group-create.json.md | 26 + .../sample_partition-group-order.json.md | 64 + 11 files changed, 5838 insertions(+), 3188 deletions(-) create mode 100644 docs/samples/sample_etudiant-formsemestre-bulletin.json.md create mode 100644 docs/samples/sample_etudiant-formsemestre-groups.json.md create mode 100644 docs/samples/sample_formsemestre-decision_jury#pair.md delete mode 100644 docs/samples/sample_formsemestre-etudiants.json.md create mode 100644 docs/samples/sample_partition-group-create.json.md create mode 100644 docs/samples/sample_partition-group-order.json.md diff --git a/docs/ScoDoc9API.md b/docs/ScoDoc9API.md index f0e1ef6c6..1056ac980 100644 --- a/docs/ScoDoc9API.md +++ b/docs/ScoDoc9API.md @@ -164,7 +164,7 @@ par le serveur ScoDoc. * 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ésignent 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 noms restants (ids, courants, 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 @@ -173,11 +173,15 @@ par le serveur ScoDoc. ## Référence +La [carte syntaxique](#carte-syntaxique) vous permet de retrouver une entrée à partir de sa syntaxe (le ? amène sur la documentation associée) + +Le [tableau récapitulatif](#tableau-recapitulatif-des-entrees-de-lapi) vous permet de rechercher une entrée à partir du résultat attendu + ### Carte syntaxique ![carte_syntaxique](img/API_Chart.svg) -### Tableau récapitulatif des point de l'API +### Tableau récapitulatif des entrées de l'API Ce tableau est trié selon le type des informations retournées @@ -187,57 +191,58 @@ Ce tableau est trié selon le type des informations retournées * suivi de `#` désigne une liste d'entiers (les ids des objets du type). * suivi de `:` puis d'un nom en majuscule indique une requête (POST) qui modifie les données de ScoDoc -| Retour | Remarque | Méthode | Navigation | -|:---------------------------|:----------------------------------|---------|--------------------------------------------------------------------------------------------------------------------| -| departement**`*`** | tous les depts |GET | [departements](http://localhost:8000/ScoDoc9API/**`**`#`**`**departements) | -| departement**`#`** | tous les ids des depts |GET | [departements-ids](http://localhost:8000/ScoDoc9API/**`#`**departements-ids) | -| departement | recherche par id |GET | [departement](http://localhost:8000/ScoDoc9API/**`#`**departement) | -| departement | recherche par acronyme |GET | [departement](http://localhost:8000/ScoDoc9API/**`#`**departement) | -| formation**`*`** | toutes les formations accessibles |GET | [formations](http://localhost:8000/ScoDoc9API/**`#`**formations) | -| formation**`#`** | ids des formations accessibles |GET | [formations-ids](http://localhost:8000/ScoDoc9API/**`#`**formations-ids) | -| formation | une formation |GET | [formation](http://localhost:8000/ScoDoc9API/**`#`**formation) | -| export | |GET | [formation-export](http://localhost:8000/ScoDoc9API/**`#`**formation-export) | -| export**`+`** | |GET | [formation-export_with_ids](http://localhost:8000/ScoDoc9API/**`#`**formation-export_with_ids) | -| referentiel_competences | |GET | [formation-referenciel_competences](http://localhost:8000/ScoDoc9API/**`#`**formation-referenciel_competences) | -| formsemestre**`#`** | |GET | [departement-formsemestres_ids](http://localhost:8000/ScoDoc9API/**`#`**departement-formsemestres_ids) | -| formsemestre**`*`** | |GET | [departement-formsemestres_courants](http://localhost:8000/ScoDoc9API/**`#`**departement-formsemestres_courants) | -| formsemestre**`*`** | |GET | [formsemestre-query](http://localhost:8000/ScoDoc9API/**`#`**formsemestre-query) | -| formsemestre**`*`** | |GET | [etudiant-formsemestres](http://localhost:8000/ScoDoc9API/**`#`**etudiant-formsemestres) | -| formsemestre | |GET | [formsemestre](http://localhost:8000/ScoDoc9API/**`#`**formsemestre) | -| moduleimpl | |GET | [moduleimpl](http://localhost:8000/ScoDoc9API/**`#`**moduleimpl) | -| partition**`*`** | |GET | [formsemestre-partitions](http://localhost:8000/ScoDoc9API/**`#`**formsemestre-partitions) | -| partition | |GET | [partition](http://localhost:8000/ScoDoc9API/**`#`**partition) | -| partition:CREATE | |POST | [formsemestre-partition-create](http://localhost:8000/ScoDoc9API/**`#`**formsemestre-partition-create) | -| partition:EDIT | |POST | [partition-edit](http://localhost:8000/ScoDoc9API/**`#`**partition-edit) | -| partition:ACTION | |POST | [formsemestre-partitions-order](http://localhost:8000/ScoDoc9API/**`#`**formsemestre-partitions-order) | -| partition:DELETE | |POST | [partition-delete](http://localhost:8000/ScoDoc9API/**`#`**partition-delete) | -| partition:ACTION | |POST | [partition-remove_etudiant](http://localhost:8000/ScoDoc9API/**`#`**partition-remove_etudiant) | -| group:CREATE | |POST | [partition-group-create](http://localhost:8000/ScoDoc9API/**`#`**partition-group-create) | -| group:EDIT | |POST | [group-edit](http://localhost:8000/ScoDoc9API/**`#`**group-edit) | -| group:ACTION | |POST | [partition-groups-order](http://localhost:8000/ScoDoc9API/**`#`**partition-groups-order) | -| group:DELETE | |POST | [group-delete](http://localhost:8000/ScoDoc9API/**`#`**group-delete) | -| group* | |POST | [etudiant-formsemestre-groups](http://localhost:8000/ScoDoc9API/**`#`**etudiant-formsemestre-groups) | -| group:ACTION | |GET | [group-set_etudiant](http://localhost:8000/ScoDoc9API/**`#`**group-set_etudiant) | -| group:ACTION | |POST | [group-remove_etudiant](http://localhost:8000/ScoDoc9API/**`#`**group-remove_etudiant) | -| etudiant**`*`** | tous les étudiants |GET | [etudiants](http://localhost:8000/ScoDoc9API/**`#`**etudiants) | -| etudiant**`*`** | recherche par etudid, nip ou i |GET | [etudiants-clé](http://localhost:8000/ScoDoc9API/**`#`**etudiants-clé) | -| etudiant**`*`** | les étudiants actuels |GET | [etudiants-courant](http://localhost:8000/ScoDoc9API/**`#`**etudiants-courant) | -| etudiant**`*`** | |GET | [departement-etudiants](http://localhost:8000/ScoDoc9API/**`#`**departement-etudiants) | -| etudiant**`*`** | |GET | [formsemestre-etudiants](http://localhost:8000/ScoDoc9API/**`#`**formsemestre-etudiants) | -| etudiant**`*`** | |GET | [formsemestre-etudiants-defaillants](http://localhost:8000/ScoDoc9API/**`#`**formsemestre-etudiants-defaillants) | -| etudiant**`*`** | |GET | [formsemestre-etudiants-demissionnaires](http://localhost:8000/ScoDoc9API/**`#`**formsemestre-etudiants-demissionnaires) | -| etudiant**`*`** | |GET | [group-etudiants](http://localhost:8000/ScoDoc9API/**`#`**group-etudiants) | -| etudiant**`*`** | |GET | [group-etudiants-query](http://localhost:8000/ScoDoc9API/**`#`**group-etudiants-query) | -| etudiant | |GET | [etudiant](http://localhost:8000/ScoDoc9API/**`#`**etudiant) | -| | |GET | [jury-formsemestre-decisions_jury](http://localhost:8000/ScoDoc9API/**`#`**jury-formsemestre-decisions_jury) | -| bulletin**`*`** | |GET | [formsemestre-bulletin](http://localhost:8000/ScoDoc9API/**`#`**formsemestre-bulletin) | -| bulletin | |GET | [etudiant-formsemestre-bulletin](http://localhost:8000/ScoDoc9API/**`#`**etudiant-formsemestre-bulletin) | -| programme | |GET | [formsemestre-programme](http://localhost:8000/ScoDoc9API/**`#`**formsemestre-programme) | -| | |GET | [formsemestre-etat_evals](http://localhost:8000/ScoDoc9API/**`#`**formsemestre-etat_evals) | -| | |GET | [formsemestre-resultats](http://localhost:8000/ScoDoc9API/**`#`**formsemestre-resultats) | -| evaluation* | |GET | [evaluations](http://localhost:8000/ScoDoc9API/**`#`**evaluations) | -| note* | |GET | [evaluation-notes](http://localhost:8000/ScoDoc9API/**`#`**evaluation-notes) | -| user | |GET | [user](http://localhost:8000/ScoDoc9API/**`#`**user) | +| Retour | Remarque | Méthode | Navigation | +|:------------------------|:----------------------------------|---------|---------------------------------------------------------------------------------------------------------------------------| +| departement**`*`** | tous les depts | GET | [departements](http://scodoc.org/ScoDoc9API/#departements) | +| departement**`#`** | tous les ids des depts | GET | [departements-ids](http://scodoc.org/ScoDoc9API/#departements-ids) | +| departement | recherche par id | GET | [departement](http://scodoc.org/ScoDoc9API/#departement) | +| departement | recherche par acronyme | GET | [departement](http://scodoc.org/ScoDoc9API/#departement) | +| formation**`*`** | toutes les formations accessibles | GET | [formations](http://scodoc.org/ScoDoc9API/#formations) | +| formation**`#`** | ids des formations accessibles | GET | [formations-ids](http://scodoc.org/ScoDoc9API/#formations-ids) | +| formation | une formation | GET | [formation](http://scodoc.org/ScoDoc9API/#formation) | +| export | | GET | [formation-export](http://scodoc.org/ScoDoc9API/#formation-export) | +| export**`+`** | | GET | [formation-export_with_ids](http://scodoc.org/ScoDoc9API/#formation-export_with_ids) | +| referentiel_competences | | GET | [formation-referenciel_competences](http://scodoc.org/ScoDoc9API/#formation-referenciel_competences) | +| formsemestre**`#`** | | GET | [departement-formsemestres_ids](http://scodoc.org/ScoDoc9API/#departement-formsemestres_ids) | +| formsemestre**`*`** | | GET | [departement-formsemestres_courants](http://scodoc.org/ScoDoc9API/#departement-formsemestres_courants) | +| formsemestre**`*`** | | GET | [formsemestre-query](http://scodoc.org/ScoDoc9API/#formsemestre-query) | +| formsemestre**`*`** | | GET | [etudiant-formsemestres](http://scodoc.org/ScoDoc9API/#etudiant-formsemestres) | +| formsemestre | | GET | [formsemestre](http://scodoc.org/ScoDoc9API/#formsemestre) | +| moduleimpl | | GET | [moduleimpl](http://scodoc.org/ScoDoc9API/#moduleimpl) | +| partition**`*`** | | GET | [formsemestre-partitions](http://scodoc.org/ScoDoc9API/#formsemestre-partitions) | +| partition | | GET | [partition](http://scodoc.org/ScoDoc9API/#partition) | +| partition:CREATE | | POST | [formsemestre-partition-create](http://scodoc.org/ScoDoc9API/#formsemestre-partition-create) | +| partition:EDIT | | POST | [partition-edit](http://scodoc.org/ScoDoc9API/#partition-edit) | +| partition:ACTION | | POST | [formsemestre-partitions-order](http://scodoc.org/ScoDoc9API/#formsemestre-partitions-order) | +| partition:DELETE | | POST | [partition-delete](http://scodoc.org/ScoDoc9API/#partition-delete) | +| partition:ACTION | | POST | [partition-remove_etudiant](http://scodoc.org/ScoDoc9API/#partition-remove_etudiant) | +| group:CREATE | | POST | [partition-group-create](http://scodoc.org/ScoDoc9API/#partition-group-create) | +| group:EDIT | | POST | [group-edit](http://scodoc.org/ScoDoc9API/#group-edit) | +| group:ACTION | | POST | [partition-groups-order](http://scodoc.org/ScoDoc9API/#partition-groups-order) | +| group:DELETE | | POST | [group-delete](http://scodoc.org/ScoDoc9API/#group-delete) | +| group* | | POST | [etudiant-formsemestre-groups](http://scodoc.org/ScoDoc9API/#etudiant-formsemestre-groups) | +| group:ACTION | | GET | [group-set_etudiant](http://scodoc.org/ScoDoc9API/#group-set_etudiant) | +| group:ACTION | | POST | [group-remove_etudiant](http://scodoc.org/ScoDoc9API/#group-remove_etudiant) | +| etudiant**`*`** | tous les étudiants | GET | [etudiants](http://scodoc.org/ScoDoc9API/#etudiants) | +| etudiant**`*`** | recherche par etudid, nip ou i | GET | [etudiants-clé](http://scodoc.org/ScoDoc9API/#etudiants-clé) | +| etudiant**`*`** | les étudiants actuels | GET | [etudiants-courant](http://scodoc.org/ScoDoc9API/#etudiants-courant) | +| etudiant**`*`** | | GET | [departement-etudiants](http://scodoc.org/ScoDoc9API/#departement-etudiants) | +| etudiant**`*`** | | GET | [formsemestre-etudiants](http://scodoc.org/ScoDoc9API/#formsemestre-etudiants) | +| etudiant**`*`** | | GET | [formsemestre-etudiants-defaillants](http://scodoc.org/ScoDoc9API/#formsemestre-etudiants-defaillants) | +| etudiant**`*`** | | GET | [formsemestre-etudiants-demissionnaires](http://scodoc.org/ScoDoc9API/#formsemestre-etudiants-demissionnaires) | +| etudiant**`*`** | | GET | [group-etudiants](http://scodoc.org/ScoDoc9API/#group-etudiants) | +| etudiant**`*`** | | GET | [group-etudiants-query](http://scodoc.org/ScoDoc9API/#group-etudiants-query) | +| etudiant | | GET | [etudiant](http://scodoc.org/ScoDoc9API/#etudiant) | +| | | GET | [jury-formsemestre-decisions_jury](http://scodoc.org/ScoDoc9API/#jury-formsemestre-decisions_jury) | +| bulletin**`*`** | | GET | [formsemestre-bulletin](http://scodoc.org/ScoDoc9API/#formsemestre-bulletin) | +| bulletin | | GET | [etudiant-formsemestre-bulletin](http://scodoc.org/ScoDoc9API/#etudiant-formsemestre-bulletin) | +| programme | | GET | [formsemestre-programme](http://scodoc.org/ScoDoc9API/#formsemestre-programme) | +| | | GET | [formsemestre-etat_evals](http://scodoc.org/ScoDoc9API/#formsemestre-etat_evals) | +| | | GET | [formsemestre-resultats](http://scodoc.org/ScoDoc9API/#formsemestre-resultats) | +| jury | | GET | [formsemestre-decision_jury](http://scodoc.org/ScoDoc9API/#formsemestre-decision_jury) | +| evaluation* | | GET | [evaluations](http://scodoc.org/ScoDoc9API/#evaluations) | +| note* | | GET | [evaluation-notes](http://scodoc.org/ScoDoc9API/#evaluation-notes) | +| user | | GET | [user](http://scodoc.org/ScoDoc9API/#user) | ### **API Départements** @@ -275,6 +280,144 @@ Ce tableau est trié selon le type des informations retournées * **Résultat:** Un département * **Exemple de résultat:** [departement.json](samples/sample_departement.json.md) +### **API Etudiant** +#### Structure Etudiant + +| attribut | type | commentaire | +|:-----------------|:----------|:---------------------------------| +| _id_ | int | id unique | +| _code_nip_ | string | non unique! | +| _code_ine_ | string | non unique! | +| _dept_id_ | | | +| _civilite_ | string | "M", "F" ou "X" | +| _nom_ | string | en majuscule | +| _nom_usuel_ | string | null si absent | +| _prenom_ | string | | +| | | **Format long** | +| _date_naissance_ | string | date ISO | +| _email_ | string | | +| _emailperso_ | string | | +| _admission_ | admission | | +| _adresses_ | adresse* | | +| _boursier_ | | | +| _dept_acronym_ | string | | +| _dept_id_ | string | département du lieu de naissance | +| _lieu_naissance_ | string | lieu de naissance (ville) | +| _nationalite_ | string | | +| _photo_filename_ | string | | +| _scodoc7_id_ | string | de la forme 'EID9999' | +| _statut_ | string | 'I', 'D' ou 'X' | + +#### **`etudiants`** +* **Méthode:** GET +* **Routes:** `/etudiants +* **Exemple d'utilisation:** `/api/etudiants` +* **Résultat:** Liste complète de tous les étudiants (passés ou présents) pour + lequel l'utilisateur a la permission ScoView. +* **Exemple de résultat:** [tous-les-etudiant.json](samples/sample_tous-les-etudiants.json.md) + +#### **`etudiants-clef`** +* **Méthode:** GET +* **Paramètres:** `etudid`, `nip`, `ine` +* **Routes:** `/etudiants/etudid/` ou `/etudiants/nip/` ou `/etudiants/ine/` +* **Exemple d'utilisation:** `/api/etudiants/nip/1` +* **Résultat:** Info sur le ou les étudiants correspondants. + Comme [`/etudiant`](ScoDoc9API.md#etudiant) mais renvoie toujours une liste. + Si non trouvé, liste vide, pas d'erreur. + Dans 99% des cas, la liste contient un seul étudiant, mais si l'étudiant a + été inscrit dans plusieurs départements, on a plusieurs objets (1 par + dept.). +* **Exemple de résultat:** [etudiants.json](samples/sample_etudiants.json.md) + +#### **`etudiants-courants`** +* **Méthode:** GET +* **Routes:** + * `/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-courants.json](samples/sample_etudiants-courants.json.md) + +#### **departement-etudiants** +* **Méthode:** GET +* **Paramètres:** `dept`, `dept_id` +* **Routes:** + * `/departement/id//etudiants` + * `/departement//etudiants` +* **Exemple d'utilisation:** `/api/departement/MMI/etudiants` +* **Résultat:** liste tous les étudiants (passés ou présents) d'un département. + 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 + "ine": "7899X61616", + "code_nip": "F6777H88", + "date_naissance": null, + "email": "toto@toto.fr", + "emailperso": null, + "etudid": 18, + "nom": "MOREL", // en majuscules + "prenom": "JACQUES" + }, + ... + ] + ``` + +#### **formsemestre-etudiants** +* **Méthode:** GET +* **Paramètres:** `formsemestre_id` +* **Routes:** `/formsemestre//etudiants` XXX voir si + filtrage par état (dem, def, ...) +* **Route:** + * `/formsemestres/etudiants` + * `/formsemestres/etudiants/demissionnaires` + * `/formsemestres/etudiants/defaillants` +* **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:** [formsemestre-etudiants.json](samples/sample_formsemestre-etudiants.json.md) + +#### **formsemestre-etudiants-etat** +* **Méthode:** GET +* **Paramètres:** `formsemestre_id`, `etat` (par défaut égal à "I" pour les étudiants inscrits) +* **Résultat:** les étudiants inscrits à ce semestres XXX préciser état + (DEM, DEF)) + +#### **`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) + +#### **`etudiant`** +* **Méthode:** GET +* **Paramètres:** `etudid`, `nip`, `ine` +* **Routes:** + * `/etudiant/etudid/` ou + * `/etudiant/nip/` ou + * `/etudiant/ine/` +* **Exemple d'utilisation:** `/api/etudiant/nip/1` +* **Résultat:** Retourne les informations sur l'étudiant correspondant à + l'id passé en paramètres. + Les codes INE et NIP sont uniques au sein d'un département. + Si plusieurs objets étudiant ont le même code, on ramène le plus récemment inscrit. +* **Exemple de résultat:** [etudiant.json](samples/sample_etudiant.json.md) + ### **API Formation** #### Structure Formation | attribut | type | commentaire | @@ -434,113 +577,6 @@ informatique de 2014 en formation initiale (FI). * **Résultat:** Description du formsemestre. * **[Exemple de résultat:](samples/sample_formsemestre.json.md)** -### **API Moduleimpl** - -#### Structure ModuleImpl - -Le moduleimpl est la mise en place d'un module dans un formsemestre (avec son -responsable et ses enseignants). La liste des moduleimpl d'un formsemestre peut être obtenu par l'entrée [formsemestre-programme](#formsemestre-programme) - -| attribut | type | commentaire | -|:-----------------------|:-------|:-------------------------------------------------| -| _**id**_ | int | identifiant unique | -| _**responsable_id**_ | int | id du responsable de module | -| _**computation_expr**_ | string | unused | -| _**module_id**_ | int | id du module | -| _**formsemestre_id**_ | int | id du formsemestre | -| _**moduleimpl_id**_ | int | _**redondance id_? | -| _**ens**_ | User# | liste des ids des enseignants du moduleimpl | -| _**module**_ | Module | | - -#### **`moduleimpl`** -* **Méthode:** GET -* **Paramètres:** `moduleimpl_id` -* **Routes:** `/moduleimpl/` -* **Exemple d'utilisation:** `/ScoDoc/api/formation/moduleimpl/1` -* **Résultat:** Description du moduleimpl. -* **Exemple de résultat:** [moduleimpl.json](samples/sample_moduleimpl.json.md) - -### **API Partition** -#### Structure Partition - -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. - -| attribut | type | commentaire | -|:----------------------|:-------|:-----------------------------------| -| _**id**_ | int | identifiant unique | -| _**partition_name**_ | string | nom de la partition | -| _**numero**_ | int | | -| _**bul_show_rank**_ | | affichage sur bulletin | -| _**groups_editable**_ | bool | verrou (liste des groupes) | -| _**formsemestre_id**_ | int | formsemestre hôte | -| _**show_in_lists**_ | bool | | -| _**groups**_ | Group* | liste des groupes de la partition | - -#### **`formsemestre-partitions`** -* **Méthode: GET** -* **Paramètres:** `formsemestre_id` -* **Routes:** `/formsemestre//partitions` -* **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/911/partitions` -* **Résultat:** 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:** `partition_id` -* **Routes:** `/partition/` -* **Exemple d'utilisation:** `/ScoDoc/api/partition/1963` -* **Résultat:** Description d'une partition (y compris la liste de ses groupes). -* **Exemple de résultat:** [partition.json](samples/sample_partition.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)** - -#### **`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)** - -#### **`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-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)** - -#### **`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:** Retire un étudiant des groupes de la partition. -* **[Exemple de résultat](samples/sample_partition-remove_etudiant.json.md)** - ### **API Groupe** #### **`partition-group-create`** @@ -613,163 +649,112 @@ d'un nombre quelconque de groupes d'étudiants. * **Résultat:** Retire un étudiant d'un groupe. * **[Exemple de résultat](samples/sample_group-remove_etudiant.json.md)** -### **API Etudiant** -#### Structure Etudiant +### **API Moduleimpl** -| attribut | type | commentaire | -|:-----------------|:----------|:---------------------------------| -| _id_ | int | id unique | -| _code_nip_ | string | non unique! | -| _code_ine_ | string | non unique! | -| _dept_id_ | | | -| _civilite_ | string | "M", "F" ou "X" | -| _nom_ | string | en majuscule | -| _nom_usuel_ | string | null si absent | -| _prenom_ | string | | -| | | **Format long** | -| _date_naissance_ | string | date ISO | -| _email_ | string | | -| _emailperso_ | string | | -| _admission_ | admission | | -| _adresses_ | adresse* | | -| _boursier_ | | | -| _dept_acronym_ | string | | -| _dept_id_ | string | département du lieu de naissance | -| _lieu_naissance_ | string | lieu de naissance (ville) | -| _nationalite_ | string | | -| _photo_filename_ | string | | -| _scodoc7_id_ | string | de la forme 'EID9999' | -| _statut_ | string | 'I', 'D' ou 'X' | +#### Structure ModuleImpl -#### **`etudiants`** +Le moduleimpl est la mise en place d'un module dans un formsemestre (avec son +responsable et ses enseignants). La liste des moduleimpl d'un formsemestre peut être obtenu par l'entrée [formsemestre-programme](#formsemestre-programme) + +| attribut | type | commentaire | +|:-----------------------|:-------|:-------------------------------------------------| +| _**id**_ | int | identifiant unique | +| _**responsable_id**_ | int | id du responsable de module | +| _**computation_expr**_ | string | unused | +| _**module_id**_ | int | id du module | +| _**formsemestre_id**_ | int | id du formsemestre | +| _**moduleimpl_id**_ | int | _**redondance id_? | +| _**ens**_ | User# | liste des ids des enseignants du moduleimpl | +| _**module**_ | Module | | + +#### **`moduleimpl`** * **Méthode:** GET -* **Routes:** `/etudiants -* **Exemple d'utilisation:** `/api/etudiants` -* **Résultat:** Liste complète de tous les étudiants (passés ou présents) pour - lequel l'utilisateur a la permission ScoView. -* **Exemple de résultat:** [tous-les-etudiant.json](samples/sample_tous-les-etudiants.json.md) +* **Paramètres:** `moduleimpl_id` +* **Routes:** `/moduleimpl/` +* **Exemple d'utilisation:** `/ScoDoc/api/formation/moduleimpl/1` +* **Résultat:** Description du moduleimpl. +* **Exemple de résultat:** [moduleimpl.json](samples/sample_moduleimpl.json.md) -#### **`etudiants-clef`** -* **Méthode:** GET -* **Paramètres:** `etudid`, `nip`, `ine` -* **Routes:** `/etudiants/etudid/` ou `/etudiants/nip/` ou `/etudiants/ine/` -* **Exemple d'utilisation:** `/api/etudiants/nip/1` -* **Résultat:** Info sur le ou les étudiants correspondants. - Comme [`/etudiant`](ScoDoc9API.md#etudiant) mais renvoie toujours une liste. - Si non trouvé, liste vide, pas d'erreur. - Dans 99% des cas, la liste contient un seul étudiant, mais si l'étudiant a - été inscrit dans plusieurs départements, on a plusieurs objets (1 par - dept.). -* **Exemple de résultat:** [etudiants.json](samples/sample_etudiants.json.md) +### **API Partition** +#### Structure Partition -#### **`etudiants-courants`** -* **Méthode:** GET -* **Routes:** - * `/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-courants.json](samples/sample_etudiants-courants.json.md) +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. -#### **departement-etudiants** -* **Méthode:** GET -* **Paramètres:** `dept`, `dept_id` -* **Routes:** - * `/departement/id//etudiants` - * `/departement//etudiants` -* **Exemple d'utilisation:** `/api/departement/MMI/etudiants` -* **Résultat:** liste tous les étudiants (passés ou présents) d'un département. - 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 - "ine": "7899X61616", - "code_nip": "F6777H88", - "date_naissance": null, - "email": "toto@toto.fr", - "emailperso": null, - "etudid": 18, - "nom": "MOREL", // en majuscules - "prenom": "JACQUES" - }, - ... - ] - ``` +| attribut | type | commentaire | +|:----------------------|:-------|:-----------------------------------| +| _**id**_ | int | identifiant unique | +| _**partition_name**_ | string | nom de la partition | +| _**numero**_ | int | | +| _**bul_show_rank**_ | | affichage sur bulletin | +| _**groups_editable**_ | bool | verrou (liste des groupes) | +| _**formsemestre_id**_ | int | formsemestre hôte | +| _**show_in_lists**_ | bool | | +| _**groups**_ | Group* | liste des groupes de la partition | -#### **formsemestre-etudiants** -* **Méthode:** GET +#### **`formsemestre-partitions`** +* **Méthode: GET** * **Paramètres:** `formsemestre_id` -* **Routes:** `/formsemestre//etudiants` XXX voir si - filtrage par état (dem, def, ...) -* **Route:** - * `/formsemestres/etudiants` - * `/formsemestres/etudiants/demissionnaires` - * `/formsemestres/etudiants/defaillants` -* **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:** [formsemestre-etudiants.json](samples/sample_formsemestre-etudiants.json.md) +* **Routes:** `/formsemestre//partitions` +* **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/911/partitions` +* **Résultat:** Liste de toutes les partitions d'un formsemestre. +* **Exemple de résultat:** [formsemestre-partitions.json](samples/sample_formsemestre-partitions.json.md) -#### **formsemestre-etudiants-etat** -* **Méthode:** GET -* **Paramètres:** `formsemestre_id`, `etat` (par défaut égal à "I" pour les étudiants inscrits) -* **Résultat:** les étudiants inscrits à ce semestres XXX préciser état - (DEM, DEF)) - -#### **`group-etudiants`** +#### **`partition`** * **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) +* **Paramètres:** `partition_id` +* **Routes:** `/partition/` +* **Exemple d'utilisation:** `/ScoDoc/api/partition/1963` +* **Résultat:** Description d'une partition (y compris la liste de ses groupes). +* **Exemple de résultat:** [partition.json](samples/sample_partition.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) +#### **`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:** [formsemestre-partition-create.json](samples/sample_formsemestre-partition-create.json.md) -#### **`etudiant`** -* **Méthode:** GET -* **Paramètres:** `etudid`, `nip`, `ine` -* **Routes:** - * `/etudiant/etudid/` ou - * `/etudiant/nip/` ou - * `/etudiant/ine/` -* **Exemple d'utilisation:** `/api/etudiant/nip/1` -* **Résultat:** Retourne les informations sur l'étudiant correspondant à - l'id passé en paramètres. - Les codes INE et NIP sont uniques au sein d'un département. - Si plusieurs objets étudiant ont le même code, on ramène le plus récemment inscrit. -* **Exemple de résultat:** [etudiant.json](samples/sample_etudiant.json.md) +#### **`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:** [partition-edit.json](samples/sample_partition-edit.json.md) -### API Programme, Référentiel +#### **`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:** [formsemestre-partition-order.json](samples/sample_formsemestre-partition-order.json.md) -#### **`formation-export`** -* **Méthode:** GET -* **Paramètres:** `formation_id`, `export_ids` (False par défaut. Ajouter `/with_ids` pour le passer à True) -* **Routes:** - * `/formation//export` - * `/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:** [formation-export.json](samples/sample_formation-referentiel_competences.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:** [partition-delete.json](samples/sample_partition-delete.json.md) -#### **`formation-referentiel_competences`** -* **Méthode:** GET -* **Paramètres:** `formation_id` -* **Routes:** `/formation//referentiel_competences` -* **Exemple d'utilisation:** `api/formation/1/referentiel_competences` -* **Résultat:** Le référentiel de compétences d'une formation donnée (json). (_pas toujours présent_) -* **Exemple de résultat:** [formation-referentiel_competences.json](samples/sample_formation-referentiel_competences.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:** Retire un étudiant des groupes de la partition. +* **[Exemple de résultat](samples/sample_partition-remove_etudiant.json.md)** ### ** API Bulletin, Evaluations, Notes** #### **formsemestre-bulletins** @@ -786,22 +771,18 @@ 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:** - * **Méthode:** GET * **Paramètres:** `formsemestre_id`, `etudid`, `nip`, `ine` * **Routes:** - `/etudiant/etudid//formsemestre//bulletin[/format][/pdf]` - ou `/etudiant/nip//formsemestre//bulletin[/format][/pdf]` - ou `/etudiant/ine//formsemestre//bulletin[/format][/pdf]` - -On peut spécifier le format: `long`ou `short`, et indiquer si l'on veut le -bulletin PDF. + `/etudiant/etudid//formsemestre//bulletin[/short][/pdf]` + ou `/etudiant/nip//formsemestre//bulletin[/short][/pdf]` + ou `/etudiant/ine//formsemestre//bulletin[/short][/pdf]` * **Exemple d'utilisation:** `/etudiant/nip/1/formsemestre/1/bulletin` * **Résultat:** Bulletin de l'étudiant dans le formsemestre. - Deux versions disponibles `long` et `short` (par défaut `long` ajoutez - `/short` pour la version plus courte). -* **Exemple de résultat:** [bulletin-formsemestre-etudiant.json](samples/sample_bulletin-formsemestre-etudiant.json.md) + Deux types de variantes possibles: + * versions `long` et `short` (`long`par défaut, ajoutez `/short` pour la version plus courte). + * version `json` et `pdf` (`json` par défaut, ajoutez `/pdf` pour la version pdf) +* **Exemple de résultat:** [etudiant-formsemestre-bulletin.json](samples/sample_etudiant-formsemestre-bulletin.json.md) #### **formsemestre-programme** * **Méthode:** GET @@ -834,7 +815,7 @@ valeurs numériques mais pas JSON compliant à cause des _NaN_. * **Exemple de résultat:** -#### **`evaluations`** +#### **`moduleimpl-evaluations`** * **Méthode:** GET * **Paramètres:** `moduleimpl_id` * **Routes:** `/moduleimpl//evaluations` @@ -843,7 +824,7 @@ valeurs numériques mais pas JSON compliant à cause des _NaN_. moduleimpl (quel que soit leur statut). * **[Exemple de résultat](samples/sample_moduleimpl-evaluations.json.md)** -#### **`evaluations/notes`** +#### **`evaluations-notes`** * **Méthode**: GET * **Paramètres**: `evaluation_id` * **Routes:** `/evaluations/eval_notes/` @@ -876,6 +857,26 @@ valeurs numériques mais pas JSON compliant à cause des _NaN_. * **Résultat:** Retourne les résultats pour un formsemestre * **Exemple de résultat:** [formsemestre-resultats.json](samples/sample_formsemestre-resultats.json.md) +### **API Export, Référentiel** + +#### **`formation-export`** +* **Méthode:** GET +* **Paramètres:** `formation_id`, `export_ids` (False par défaut. Ajouter `/with_ids` pour le passer à True) +* **Routes:** + * `/formation//export` + * `/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:** [formation-export.json](samples/sample_formation-referentiel_competences.json.md) + +#### **`formation-referentiel_competences`** +* **Méthode:** GET +* **Paramètres:** `formation_id` +* **Routes:** `/formation//referentiel_competences` +* **Exemple d'utilisation:** `api/formation/1/referentiel_competences` +* **Résultat:** Le référentiel de compétences d'une formation donnée (json). (_pas toujours présent_) +* **Exemple de résultat:** [formation-referentiel_competences.json](samples/sample_formation-referentiel_competences.json.md) + ### **API User** #### **user** * **Méthode:** GET @@ -885,7 +886,6 @@ valeurs numériques mais pas JSON compliant à cause des _NaN_. * **Résultat:** Retourne la description d'un utilisateur. * **Exemple de résultat:** [user.json](samples/sample_user.json.md) - ### **API Jury** #### **`formsemestre-decision_jury`** * **Méthode:** GET @@ -894,6 +894,8 @@ valeurs numériques mais pas JSON compliant à cause des _NaN_. * **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/1/jury` * **Résultat:** Retourne le récapitulatif des décisions jury * **Exemple de résultat:** + * semestre pair + * semestre impair ``` XXX A COMPLETER ``` diff --git a/docs/img/API_Chart.odg b/docs/img/API_Chart.odg index 0d418385ad54d48646e668aec449546ab59718e3..57bcc988050c59b895fab729098354f57b998dc1 100644 GIT binary patch delta 27786 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 delta 25454 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 diff --git a/docs/img/API_Chart.svg b/docs/img/API_Chart.svg index 77cc18674..b8689b7cd 100644 --- a/docs/img/API_Chart.svg +++ b/docs/img/API_Chart.svg @@ -1,41 +1,25 @@ - - - - - - - - - + - - - - - - - - @@ -91,9 +75,6 @@ - - - @@ -126,2790 +107,2521 @@ - - - - + + + + + + + <id:dept_id> + - - - - - - - - - - - - <id:dept_id> - - - - - - - - departements - - - - - - - - departements_ids - - - - - - - - departement - - - - - - - - etudiants - - - - - - - - formsemestres_ids - - - - - - - - formsemestres_courants - - - - - - - - / - - - - - - - - <string : dept_acronym> - - - - - - - - id - - - - - - - - / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - etudiants - - - - - - - - departement - - - - - - - - etudiants - - - - - - - - formsemestres_ids - - - - - - - - formsemestres_courants - - - - - - - - / - - - - - - - - / - - - - - - - - <string:dept_acronym> - - - - - - - - id - - - - - - - - / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - courants - - - - - - - - long - - - - - - - - / - - - - - - - - / - - - - - - - - etudiant - - - - - - - - formsemestres - - - - - - - - formsemestre - - - - - - - - <int:formsemestre_id> - - - - - - - - etudid - - - - - - - - <int:etudid> - - - - - - - - / - - - - - - - - nip - - - - - - - - <string:nip> - - - - - - - - / - - - - - - - - ine - - - - - - - - <int:ine> - - - - - - - - / - - - - - - - - bulletin - - - - - - - - groups - - - - - - - - / - - - - - - - - / - - - - - - - - / - - - - - - - - / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - formations - - - - - - - - formation - - - - - - - - formations_ids - - - - - - - - / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <int:formation_id> - - - - - - - - moduleimpl - - - - - - - - / - - - - - - - - <int:moduleimpl_id> - - - - - - - - export - - - - - - - - / - - - - - - - - <int:formation_id> - - - - - - - - with_ids - - - - - - - - referentiel_competence - - - - - - - - logo - - - - - - - - / - - - - - - - - / - - - - - - - - - - - - - - - / - - - - - - - - / - - - - - - - - <string:logo_name> - - - - - - - - / - - - - - - - - ? - id359 - - - - - - - - ? - id360 - - - - - - - - formsemestres - - - - - - - - / - - - - - - - - query - - - - - - - - ? - - - - - - - - & - - - - - - - - etape_apo - - - - - - - - = - - - - - - - - <string:etape_apo> - - - - - - - - annee_scolaire - - - - - - - - = - - - - - - - - <int:annee> - - - - - - - - dept_acronym - - - - - - - - = - - - - - - - - <string:acronym> - - - - - - - - dept_id - - - - - - - - = - - - - - - - - <int:dept_id> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - formsemestre - - - - - - - - / - - - - - - - - <int:formsemestre_id> - - - - - - - - / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ? - - - - - - - - - - - - - - - bulletins - - - - - - - - jury - - - - - - - - programme - - - - - - - - etudiants - - - - - - - - / - - - - - - - - demissionnaires - - - - - - - - defaillants - - - - - - - - - - - - - - - - - - - - - - etat_evals - - - - - - - - partitions - - - - - - - - resultats - - - - - - - - ? - - - - - - - - format - - - - - - - - = - - - - - - - - raw - - - - - - - - - - - - - - - / - - - - - - - - create - - - - - - - - logos - - - - - - - - / - - - - - - - - <string:logo_name> - - - - - - - - user - - - - - - - - / - - - - - - - - <int:id> - - - - - - - - order - - - - - - - - - - - - - - - - - - - - - - group - - - - - - - - / - - - - - - - - <int:group_id> - - - - - - - - / - - - - - - - - etudiants - - - - - - - - query - - - - - - - - edit - - - - - - - - delete - - - - - - - - ? - - - - - - - - etat - - - - - - - - = - - - - - - - - <string:etat> - - - - - - - - set_etudiant - - - - - - - - / - - - - - - - - <int:etudiant_id> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - partition - - - - - - - - / - - - - - - - - <int:partition_id> - - - - - - - - / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - edit - - - - - - - - delete - - - - - - - - remove_etudiant - - - - - - - - / - - - - - - - - <int:etudiant_id> - - - - - - - - group - - - - - - - - / - - - - - - - - create - - - - - - - - - - - - - - - evaluations - - - - - - - - / - - - - - - - - <int:moduleimpl_id> - - - - - - - - eval_notes - - - - - - - - <int:evaluaton_id> - - - - - - - - - - - - - - - - - - - - - - jury - - - - - - - - / - - - - - - - - <int:formsemestre_id> - - - - - - - - formsemestre - - - - - - - - preparation_jury - - - - - - - - decisions_jury - - - - - - - - - - - - - - - - - - - - - - / - - - - - - - - / - - - - - - - - groups - - - - - - - - / - - - - - - - - order - - - - - - - - - - - - - - - absences - - - - - - - - etudid - - - - - - - - <int:etudid> - - - - - - - - / - - - - - - - - nip - - - - - - - - <string:nip> - - - - - - - - / - - - - - - - - ine - - - - - - - - <int:ine> - - - - - - - - / - - - - - - - - / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - / - - - - - - - - - - - - - - - - - - - - - - just - - - - - - - - / - - - - - - - - - - - - - - - - - - - - - - abs_annule - - - - - - - - - - - - - - - / - - - - - - - - ? - - - - - - - - - - - - - - - etudid - - - - - - - - <int:etudid> - - - - - - - - / - - - - - - - - jour - - - - - - - - <string:jour> - - - - - - - - / - - - - - - - - matin - - - - - - - - <string:matin> - - - - - - - - / - - - - - - - - / - - - - - - - - & - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <int:etudid> - - - - - - - - - - - - - - - abs_annule_justif - - - - - - - - etudid - - - - - - - - <int:etudid> - - - - - - - - / - - - - - - - - jour - - - - - - - - <string:jour> - - - - - - - - / - - - - - - - - matin - - - - - - - - <string:matin> - - - - - - - - / - - - - - - - - / - - - - - - - - ? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - abs_group_etat - - - - - - - - <int:group_id> - - - - - - - - / - - - - - - - - - - - - - - - / - - - - - - - - date_debut - - - - - - - - / - - - - - - - - <date:date_debut> - - - - - - - - / - - - - - - - - date_fin - - - - - - - - / - - - - - - - - <date:date_fin> - - - - - - - - - - - - - - - - - - - - - - / - - - - - - - - ? - - - - - - - - - - - - - - - list_abs - - - - - - - - / - - - - - - - - / - - - - - - - - - - - - - - - / - - - - - - - - <int:etudid> - - - - - - - - <string:list_abs> - - - - - - - - / - - - - - - - - - - - - - - - reset_etud_abs - - - - - - - - only_not_just - - - - - - - - only_just - - - - - - - - / - - - - - - - - - - - - - - - - - - - - - - / - - - - - - - - ? - id361 - - - - - - - - ? - id362 - - - - - - - - ? - id363 - - - - - - - - ? - id364 - - - - - - - - ? - id365 - - - - - - - - ? - id366 - - - - - - - - ? - id367 - - - - - - - - etudid - - - - - - - - <int:etudid> - - - - - - - - / - - - - - - - - nip - - - - - - - - <string:nip> - - - - - - - - / - - - - - - - - ine - - - - - - - - <int:ine> - - - - - - - - / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - logos - - - - - - - - / - - - - - - - - / - - - - - - - - - - - - - - - ? - id368 - - - - - - - - ? - id369 - - - - - - - - ? - id370 - - - - - - - - ? - id371 - - - - - - - - ? - id372 - - - - - - - - ? - id373 - - - - - - - - ? - id374 - - - - - - - - moduleimpl - - - - - - - - / - - - - - - - - <int:moduleimpl_id> - - - - - - - - ? - id375 - - - - - - - - ? - id376 - - - - - - - - ? - id377 - - - - - - - - ? - id378 - - - - - - - - ? - id379 - - - - - - - - ? - id380 - - - - - - - - ? - id381 - - - - + + + + + + <string:dept_acronym> + + + + + + + + departements + + + + + + + + departements_ids + + + + + + + + departement + + + + + + + + etudiants + + + + + + + + formsemestres_ids + + + + + + + + formsemestres_courants + + + + + + + + / + + + + + + + + id + + + + + + + + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + etudiants + + + + + + + + departement + + + + + + + + etudiants + + + + + + + + formsemestres_ids + + + + + + + + formsemestres_courants + + + + + + + + / + + + + + + + + / + + + + + + + + id + + + + + + + + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + courants + + + + + + + + long + + + + + + + + / + + + + + + + + / + + + + + + + + etudiant + + + + + + + + formsemestres + + + + + + + + formsemestre + + + + + + + + <int:formsemestre_id> + + + + + + + + etudid + + + + + + + + <int:etudid> + + + + + + + + / + + + + + + + + nip + + + + + + + + <string:nip> + + + + + + + + / + + + + + + + + ine + + + + + + + + <int:ine> + + + + + + + + / + + + + + + + + bulletin + + + + + + + + groups + + + + + + + + / + + + + + + + + / + + + + + + + + / + + + + + + + + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + formations + + + + + + + + formation + + + + + + + + formations_ids + + + + + + + + / + + + + + + + + + + + + + + + + + + + + + + <int:formation_id> + + + + + + + + export + + + + + + + + / + + + + + + + + with_ids + + + + + + + + referentiel_competence + + + + + + + + logo + + + + + + + + / + + + + + + + + / + + + + + + + + + + + + + + + / + + + + + + + + / + + + + + + + + <string:logo_name> + + + + + + + + ? + id322 + + + + + + + + ? + id323 + + + + + + + + formsemestres + + + + + + + + / + + + + + + + + query + + + + + + + + ? + + + + + + + + & + + + + + + + + etape_apo + + + + + + + + = + + + + + + + + <string:etape_apo> + + + + + + + + annee_scolaire + + + + + + + + = + + + + + + + + <int:annee> + + + + + + + + dept_acronym + + + + + + + + = + + + + + + + + <string:acronym> + + + + + + + + dept_id + + + + + + + + = + + + + + + + + <int:dept_id> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + formsemestre + + + + + + + + / + + + + + + + + <int:formsemestre_id> + + + + + + + + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ? + + + + + + + + + + + + + + + bulletins + + + + + + + + evaluations + + + + + + + + etudiants + + + + + + + + / + + + + + + + + demissionnaires + + + + + + + + defaillants + + + + + + + + + + + + + + + + + + + + + + etat_evals + + + + + + + + partitions + + + + + + + + resultats + + + + + + + + ? + + + + + + + + format + + + + + + + + = + + + + + + + + raw + + + + + + + + + + + + + + + / + + + + + + + + create + + + + + + + + logos + + + + + + + + / + + + + + + + + <string:logo_name> + + + + + + + + user + + + + + + + + / + + + + + + + + <int:uid> + + + + + + + + order + + + + + + + + + + + + + + + + + + + + + + group + + + + + + + + / + + + + + + + + <int:group_id> + + + + + + + + / + + + + + + + + etudiants + + + + + + + + query + + + + + + + + edit + + + + + + + + delete + + + + + + + + ? + + + + + + + + etat + + + + + + + + = + + + + + + + + <string:etat> + + + + + + + + set_etudiant + + + + + + + + / + + + + + + + + <int:etudiant_id> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + partition + + + + + + + + / + + + + + + + + <int:partition_id> + + + + + + + + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + edit + + + + + + + + delete + + + + + + + + remove_etudiant + + + + + + + + / + + + + + + + + <int:etudiant_id> + + + + + + + + group + + + + + + + + / + + + + + + + + create + + + + + + + + + + + + + + + evaluations + + + + + + + + / + + + + + + + + notes + + + + + + + + <int:evaluaton_id> + + + + + + + + decisions_jury + + + + + + + + / + + + + + + + + groups + + + + + + + + / + + + + + + + + order + + + + + + + + + + + + + + + / + + + + + + + + ? + id324 + + + + + + + + ? + id325 + + + + + + + + ? + id326 + + + + + + + + ? + id327 + + + + + + + + ? + id328 + + + + + + + + ? + id329 + + + + + + + + etudid + + + + + + + + <int:etudid> + + + + + + + + / + + + + + + + + nip + + + + + + + + <string:nip> + + + + + + + + / + + + + + + + + ine + + + + + + + + <int:ine> + + + + + + + + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + logos + + + + + + + + / + + + + + + + + / + + + + + + + + + + + + + + + ? + id330 + + + + + + + + ? + id331 + + + + + + + + ? + id332 + + + + + + + + ? + id333 + + + + + + + + ? + id334 + + + + + + + + ? + id335 + + + + + + + + ? + id336 + + + + + + + + moduleimpl + + + + + + + + / + + + + + + + + <int:moduleimpl_id> + + + + + + + + / + + + + + + + + ? + id337 + + + + + + + + ? + id338 + + + + + + + + ? + id339 + + + + + + + + ? + id340 + + + + + + + + ? + id341 + + + + + + + + ? + id342 + + + + + + + + ? + id343 + + + + + + + + ? + id344 + + + + + + + + ? + id345 + + + + + + + + ? + id346 + + + + + + + + ? + id347 + + + + + + + + ? + id348 + + + + + + + + remove_etudiant + + + + + + + + / + + + + + + + + <int:etudiant_id> + + + + + + + + + + + + + + + + + + + + + + ? + id349 + + + + + + + + ? + id350 + + + + + + + + + + + + + + + ? + id351 + + + + + + + + ? + id352 + + + + + + + + ? + id353 + + + + + + + + ? + id354 + + + + + + + + ? + id355 + + + + + + + + ? + id356 + + + + + + + + ? + id357 + + + + + + + + ? + id358 + + + + + + + + ? + id359 + + + + + + + + ? + id360 + + + + + + + + ? + id361 + + + + + + + + ? + id362 + + + + + + + + ? + id363 + + + + + + + + programme + + + + + + + + + + + + + + + ? + id364 + + + + + + + + ? + id365 + + + + + + + + create + + + + + + + + ? + id366 + + + + + + + + + + + + + + + edit + + + + + + + + delete + + + + + + + + + + + + + + + + + + + + + + create + + + + + + + + + + + + + + + + + + + + + + edit + + + + + + + + delete + + + + + + + + query + + + + + + + + + + + + + + + + + + + + + + + + + + + + + role + + + + + + + + / + + + + + + + + <str:role_name> + + + + + + + + + + + + + + + add + + + + + + + + / + + + + + + + + remove + + + + + + + + / + + + + + + + + + + + + + + + + + + + + + + departement + + + + + + + + / + + + + + + + + <str:dept_acronym> + + + + + + + + departement + + + + + + + + / + + + + + + + + <str:dept_acronym> + + + + + + + + + + + + + + + + + + + + + + roles + + + + + + + + roles + + + + + + + + / + + + + + + + + <str_role_name> + + + + + + + + / + + + + + + + + add_permission + + + + + + + + / + + + + + + + + remove_permission + + + + + + + + / + + + + + + + + <str:perm_name> + + + + + + + + <str:perm_name> + + + + + + + + + + + + + + + + + + + + + + create + + + + + + + + + + + + + + + / + + + + + + + + permissions diff --git a/docs/samples/sample_departement-etudiants.json.md b/docs/samples/sample_departement-etudiants.json.md index 7db6114c6..de479f8ad 100644 --- a/docs/samples/sample_departement-etudiants.json.md +++ b/docs/samples/sample_departement-etudiants.json.md @@ -1,28 +1,27 @@ -### etudiants +### departement-etudiants -`/api/etudiants/9537` +`/api/departement/INFO/etudiants/9537` ```json [ - { - "id": 1, - "code_nip": "11103639", - "code_ine": null, - "dept_id": 1, - "nom": "GYSELINCK", + "id": 11290, + "code_nip": "41901694", + "code_ine": "071985689JD", + "dept_id": 6, + "nom": "MARS", "nom_usuel": null, - "prenom": "MARIE", - "civilite": "F" + "prenom": "LOICK", + "civilite": "M" }, { - "id": 2, - "code_nip": "11102517", - "code_ine": null, - "dept_id": 1, - "nom": "IDRI", + "id": 11832, + "code_nip": "42434428", + "code_ine": "07169248KD", + "dept_id": 6, + "nom": "MERCURE", "nom_usuel": null, - "prenom": "ANAIS", - "civilite": "F" + "prenom": "ANTONIN", + "civilite": "M" }, ... ] diff --git a/docs/samples/sample_etudiant-formsemestre-bulletin.json.md b/docs/samples/sample_etudiant-formsemestre-bulletin.json.md new file mode 100644 index 000000000..d7b28aee9 --- /dev/null +++ b/docs/samples/sample_etudiant-formsemestre-bulletin.json.md @@ -0,0 +1,2706 @@ +### formsemestre-etudiants + +`/api/etudiant/12107/formsemestre/944/bulletin` + +```json +{ + "version": "0", + "type": "BUT", + "date": "2022-08-06T09:03:20.947028Z", + "publie": true, + "etudiant": { + "civilite": "M", + "code_ine": "081648534FF", + "code_nip": "42152361", + "date_naissance": "09/04/2002", + "dept_id": 6, + "dept_acronym": "INFO", + "email": "nathan.accart.etu@univ-lille.fr", + "emailperso": "nathan.accart@gmail.com", + "etudid": 12107, + "nom": "GENIE", + "prenom": "NATHAN", + "nomprenom": "M. Nathan ACCART", + "lieu_naissance": "VILLENEUVE-D'ASCQ", + "dept_naissance": "59", + "nationalite": "", + "boursier": "", + "fiche_url": "/ScoDoc/INFO/Scolarite/ficheEtud?etudid=12107", + "photo_url": "/ScoDoc/INFO/Scolarite/get_photo_image?etudid=12107&size=small", + "id": 12107, + "domicile": "105 ALLEE DE LA COURTINE", + "villedomicile": "VILLENEUVE D ASCQ", + "telephone": "03 62 57 05 40", + "fax": "", + "description": "(infos admission)", + "codepostaldomicile": "59650", + "paysdomicile": "FRANCE", + "telephonemobile": "06 18 52 59 75", + "typeadresse": "domicile" + }, + "formation": { + "id": 333, + "acronyme": "BUT Informatique", + "titre_officiel": "Licence professionnelle", + "titre": "BUT Informatique" + }, + "formsemestre_id": 911, + "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": true, + "temporary_txt": "PROVISOIRE", + "show_uevalid": true, + "show_date_inscr": false + }, + "ressources": { + "R 2.01": { + "id": 14530, + "titre": "Développement orienté objets", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14530", + "moyenne": {}, + "evaluations": [ + { + "id": 25902, + "description": "DS (UE2.1)", + "date": "2022-06-02", + "heure_debut": "13:30", + "heure_fin": "15:00", + "coef": "03.00", + "poids": { + "UE 2.1": 1.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "02.30", + "min": "00.00", + "max": "20.00", + "moy": "10.02" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=25902" + }, + { + "id": 25904, + "description": "IE (UE2.1)", + "date": "2022-01-24", + "heure_debut": "08:00", + "heure_fin": "08:00", + "coef": "01.00", + "poids": { + "UE 2.1": 1.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "10.33", + "min": "00.67", + "max": "18.78", + "moy": "10.49" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=25904" + }, + { + "id": 26056, + "description": "DS (UE2.2)", + "date": "2022-06-02", + "heure_debut": "13:30", + "heure_fin": "15:30", + "coef": "03.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 1.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "03.12", + "min": "00.00", + "max": "17.50", + "moy": "06.77" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26056" + } + ] + }, + "R 2.02": { + "id": 14531, + "titre": "Développement d'applications avec IHM", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14531", + "moyenne": {}, + "evaluations": [ + { + "id": 25903, + "description": "DS (UE2.1)", + "date": "2022-06-02", + "heure_debut": "15:30", + "heure_fin": "17:00", + "coef": "03.00", + "poids": { + "UE 2.1": 1.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "09.00", + "min": "00.00", + "max": "19.50", + "moy": "09.36" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=25903" + }, + { + "id": 26059, + "description": "Rendu (UE2.6)", + "date": "2022-02-24", + "heure_debut": "08:00", + "heure_fin": "08:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 1.0 + }, + "note": { + "value": "11.00", + "min": "00.00", + "max": "18.00", + "moy": "11.47" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26059" + }, + { + "id": 26058, + "description": "Rendu (UE2.5)", + "date": "2022-02-24", + "heure_debut": "08:00", + "heure_fin": "08:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 1.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "12.00", + "min": "00.00", + "max": "20.00", + "moy": "11.50" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26058" + }, + { + "id": 26057, + "description": "Rendu (UE2.1)", + "date": "2022-02-24", + "heure_debut": "08:00", + "heure_fin": "08:00", + "coef": "02.00", + "poids": { + "UE 2.1": 1.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "15.50", + "min": "00.00", + "max": "18.50", + "moy": "13.08" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26057" + } + ] + }, + "R 2.03": { + "id": 14532, + "titre": "Qualité du développement", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14532", + "moyenne": {}, + "evaluations": [ + { + "id": 26060, + "description": "CTP (UE2.1)", + "date": "2022-05-30", + "heure_debut": "10:00", + "heure_fin": "12:00", + "coef": "01.00", + "poids": { + "UE 2.1": 1.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "04.79", + "min": "00.00", + "max": "19.58", + "moy": "08.28" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26060" + }, + { + "id": 26055, + "description": "Gestion de projet (Git)", + "date": "2022-05-30", + "heure_debut": "10:00", + "heure_fin": "12:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 1.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "17.78", + "min": "00.00", + "max": "20.00", + "moy": "13.43" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26055" + } + ] + }, + "R 2.04": { + "id": 14533, + "titre": "Communication et fonctionnement bas niveau", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14533", + "moyenne": {}, + "evaluations": [ + { + "id": 25905, + "description": "IE (UE2.3)", + "date": "2022-05-19", + "heure_debut": "13:30", + "heure_fin": "15:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 1.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "11.50", + "min": "00.00", + "max": "20.00", + "moy": "12.68" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=25905" + }, + { + "id": 25906, + "description": "IE (UE2.2)", + "date": "2022-05-19", + "heure_debut": "13:30", + "heure_fin": "15:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 1.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "11.50", + "min": "00.00", + "max": "20.00", + "moy": "12.68" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=25906" + } + ] + }, + "R 2.05": { + "id": 14534, + "titre": "Introduction aux services réseaux", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14534", + "moyenne": {}, + "evaluations": [ + { + "id": 25899, + "description": "CTP (UE2.3)", + "date": "2022-04-07", + "heure_debut": "13:30", + "heure_fin": "15:30", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 1.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "10.18", + "min": "00.50", + "max": "20.00", + "moy": "09.35" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=25899" + } + ] + }, + "R 2.06": { + "id": 14535, + "titre": "Exploitation d'une base de données", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14535", + "moyenne": {}, + "evaluations": [ + { + "id": 25897, + "description": "DS (UE2.4)", + "date": "2022-03-24", + "heure_debut": "13:30", + "heure_fin": "15:00", + "coef": "03.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 1.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "06.50", + "min": "00.00", + "max": "18.50", + "moy": "09.61" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=25897" + }, + { + "id": 25907, + "description": "IE (UE2.4)", + "date": "2022-02-28", + "heure_debut": "08:00", + "heure_fin": "08:30", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 1.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "13.75", + "min": "00.00", + "max": "18.75", + "moy": "09.49" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=25907" + } + ] + }, + "R 2.07": { + "id": 14536, + "titre": "Graphes", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14536", + "moyenne": {}, + "evaluations": [ + { + "id": 25900, + "description": "DS (UE2.2)", + "date": "2022-04-28", + "heure_debut": "13:30", + "heure_fin": "15:00", + "coef": "02.50", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 1.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "13.70", + "min": "00.00", + "max": "19.30", + "moy": "08.29" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=25900" + }, + { + "id": 26062, + "description": "Note TP (UE2.2)", + "date": "2022-02-24", + "heure_debut": "08:00", + "heure_fin": "08:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 1.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "14.08", + "min": "00.00", + "max": "20.00", + "moy": "12.00" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26062" + }, + { + "id": 26061, + "description": "DS( (UE2.5)", + "date": "2022-04-28", + "heure_debut": "13:30", + "heure_fin": "15:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 1.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "19.20", + "min": "00.00", + "max": "19.20", + "moy": "10.75" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26061" + } + ] + }, + "R 2.08": { + "id": 14537, + "titre": "Outils numériques pour les statistiques descriptives", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14537", + "moyenne": {}, + "evaluations": [ + { + "id": 25898, + "description": "DS (UE2.4)", + "date": "2022-03-31", + "heure_debut": "13:30", + "heure_fin": "15:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 1.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "13.75", + "min": "00.00", + "max": "19.00", + "moy": "10.27" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=25898" + } + ] + }, + "R 2.09": { + "id": 14538, + "titre": "Méthodes numériques", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14538", + "moyenne": {}, + "evaluations": [ + { + "id": 25832, + "description": "DS (UE2.2)", + "date": "2022-03-10", + "heure_debut": "13:30", + "heure_fin": "15:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 1.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "14.00", + "min": "00.00", + "max": "20.00", + "moy": "09.77" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=25832" + } + ] + }, + "R 2.10": { + "id": 14539, + "titre": "Gestion de projet et des organisations", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14539", + "moyenne": {}, + "evaluations": [ + { + "id": 25833, + "description": "DS1-Gestion de projets (UE 2.5)", + "date": "2022-03-17", + "heure_debut": "13:30", + "heure_fin": "15:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 1.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "12.40", + "min": "08.40", + "max": "17.40", + "moy": "12.74" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=25833" + }, + { + "id": 25908, + "description": "DS1 - Gestion (UE2.4)", + "date": "2022-03-17", + "heure_debut": "13:30", + "heure_fin": "15:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 1.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "12.50", + "min": "00.00", + "max": "20.00", + "moy": "10.53" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=25908" + }, + { + "id": 26073, + "description": "DS2-Gestion (UE2.4)", + "date": "2022-05-12", + "heure_debut": "13:30", + "heure_fin": "15:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 1.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "08.00", + "min": "00.00", + "max": "19.50", + "moy": "09.91" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26073" + } + ] + }, + "R 2.11": { + "id": 14540, + "titre": "Droit des contrats et du numérique", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14540", + "moyenne": {}, + "evaluations": [ + { + "id": 25831, + "description": "IE (UE2.6)", + "date": "2022-02-24", + "heure_debut": "13:30", + "heure_fin": "14:30", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 1.0 + }, + "note": { + "value": "07.50", + "min": "03.00", + "max": "19.50", + "moy": "10.45" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=25831" + }, + { + "id": 25909, + "description": "DS (UE2.6)", + "date": "2022-05-05", + "heure_debut": "13:30", + "heure_fin": "15:00", + "coef": "02.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 1.0 + }, + "note": { + "value": "10.50", + "min": "02.00", + "max": "19.50", + "moy": "10.30" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=25909" + } + ] + }, + "R 2.12": { + "id": 14541, + "titre": "Anglais d'entreprise", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14541", + "moyenne": {}, + "evaluations": [ + { + "id": 25911, + "description": "IE (UE2.3)", + "date": "2022-01-24", + "heure_debut": "08:00", + "heure_fin": "08:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 1.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "17.00", + "min": "01.00", + "max": "20.00", + "moy": "13.50" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=25911" + }, + { + "id": 25901, + "description": "DS (UE2.3)", + "date": "2022-05-19", + "heure_debut": "13:30", + "heure_fin": "15:00", + "coef": "02.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 1.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "10.50", + "min": "00.50", + "max": "18.50", + "moy": "10.36" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=25901" + }, + { + "id": 25910, + "description": "Projet (UE2.5)", + "date": "2022-01-24", + "heure_debut": "08:00", + "heure_fin": "08:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 1.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "13.00", + "min": "13.00", + "max": "18.00", + "moy": "15.62" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=25910" + }, + { + "id": 26064, + "description": "IE (UE2.4)", + "date": "2022-02-24", + "heure_debut": "08:00", + "heure_fin": "08:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 1.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "14.00", + "min": "01.00", + "max": "20.00", + "moy": "13.42" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26064" + }, + { + "id": 26065, + "description": "Projet (UE2.6)", + "date": "2022-02-24", + "heure_debut": "08:00", + "heure_fin": "08:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 1.0 + }, + "note": { + "value": "13.00", + "min": "13.00", + "max": "18.00", + "moy": "15.63" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26065" + }, + { + "id": 26063, + "description": "DS (UE2.4)", + "date": "2022-05-19", + "heure_debut": "13:30", + "heure_fin": "15:00", + "coef": "02.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 1.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "14.50", + "min": "00.00", + "max": "20.00", + "moy": "11.70" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26063" + } + ] + }, + "R 2.13": { + "id": 14548, + "titre": "Communication avec le milieu professionnel", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14548", + "moyenne": {}, + "evaluations": [ + { + "id": 25912, + "description": "Vidéo de vulgarisation scientifique (UE 2.1)", + "date": "2022-06-06", + "heure_debut": "08:00", + "heure_fin": "08:00", + "coef": "01.00", + "poids": { + "UE 2.1": 1.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "18.00", + "min": "00.00", + "max": "18.50", + "moy": "13.35" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=25912" + }, + { + "id": 25914, + "description": "Oral (UE2.5) Défendre une cause", + "date": "2022-01-24", + "heure_debut": "08:00", + "heure_fin": "08:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 1.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "13.50", + "min": "00.00", + "max": "18.00", + "moy": "12.63" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=25914" + }, + { + "id": 25913, + "description": "ECRIT Défendre une cause (UE 2.6)", + "date": "2022-01-24", + "heure_debut": "08:00", + "heure_fin": "08:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 1.0 + }, + "note": { + "value": "13.00", + "min": "00.00", + "max": "18.50", + "moy": "13.08" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=25913" + }, + { + "id": 26724, + "description": "IE annulée (UE 2.3)", + "date": "2022-06-01", + "heure_debut": "08:00", + "heure_fin": "08:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 1.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "EXC", + "min": "~", + "max": "~", + "moy": "~" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26724" + } + ] + }, + "R 2.14": { + "id": 14549, + "titre": "Porjet professionel et personnel : métiers de l'informatique", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14549", + "moyenne": {}, + "evaluations": [ + { + "id": 26071, + "description": "Ecrit (UE2.6) Blason", + "date": "2022-02-24", + "heure_debut": "08:00", + "heure_fin": "08:00", + "coef": "00.50", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 1.0 + }, + "note": { + "value": "13.50", + "min": "00.00", + "max": "19.50", + "moy": "14.03" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26071" + }, + { + "id": 26072, + "description": "Oral (UE2.6)", + "date": "2022-02-24", + "heure_debut": "08:00", + "heure_fin": "08:00", + "coef": "02.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 1.0 + }, + "note": { + "value": "15.50", + "min": "00.00", + "max": "19.00", + "moy": "13.20" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26072" + }, + { + "id": 26467, + "description": "Fiche métier", + "date": "2022-05-11", + "heure_debut": "08:00", + "heure_fin": "08:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 1.0 + }, + "note": { + "value": "18.00", + "min": "00.00", + "max": "19.00", + "moy": "13.25" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26467" + } + ] + } + }, + "saes": { + "S 2.01": { + "id": 14542, + "titre": "Développement d'une application", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14542", + "moyenne": {}, + "evaluations": [ + { + "id": 26136, + "description": "Partie IHM R2.02", + "date": "2022-03-08", + "heure_debut": "08:00", + "heure_fin": "08:00", + "coef": "01.00", + "poids": { + "UE 2.1": 1.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "16.50", + "min": "00.00", + "max": "18.50", + "moy": "12.83" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26136" + }, + { + "id": 26135, + "description": "Partie POO R2.01", + "date": "2022-03-08", + "heure_debut": "08:00", + "heure_fin": "08:00", + "coef": "01.00", + "poids": { + "UE 2.1": 1.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "10.40", + "min": "00.00", + "max": "19.60", + "moy": "10.03" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26135" + } + ] + }, + "S 2.02": { + "id": 14543, + "titre": "Exploration algorithmique d'un problème", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14543", + "moyenne": {}, + "evaluations": [ + { + "id": 26130, + "description": "Rendu partie R2.01 & R2.03", + "date": "2022-03-08", + "heure_debut": "08:00", + "heure_fin": "08:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 1.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "10.40", + "min": "00.00", + "max": "19.60", + "moy": "10.03" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26130" + }, + { + "id": 26131, + "description": "Rendu partie graphe R2.07", + "date": "2022-03-08", + "heure_debut": "08:00", + "heure_fin": "08:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 1.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "14.50", + "min": "00.00", + "max": "20.00", + "moy": "12.61" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26131" + } + ] + }, + "S 2.03": { + "id": 14544, + "titre": "Installation de services réseau", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14544", + "moyenne": {}, + "evaluations": [ + { + "id": 26133, + "description": "Rendu N°2 Anglais", + "date": "2022-03-08", + "heure_debut": "08:00", + "heure_fin": "08:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 1.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "12.50", + "min": "00.00", + "max": "18.00", + "moy": "12.25" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26133" + }, + { + "id": 26134, + "description": "Rendu N°3 Communication", + "date": "2022-03-08", + "heure_debut": "08:00", + "heure_fin": "08:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 1.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "20.00", + "min": "00.00", + "max": "20.00", + "moy": "16.96" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26134" + }, + { + "id": 26132, + "description": "Rapport technique", + "date": "2022-03-08", + "heure_debut": "08:00", + "heure_fin": "08:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 1.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "08.62", + "min": "07.50", + "max": "20.00", + "moy": "14.79" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26132" + } + ] + }, + "S 2.04": { + "id": 14545, + "titre": "Exploitation d'une base de données", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14545", + "moyenne": {}, + "evaluations": [ + { + "id": 26129, + "description": "Rendu BDD", + "date": "2022-03-08", + "heure_debut": "08:00", + "heure_fin": "08:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 1.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "14.00", + "min": "01.00", + "max": "18.00", + "moy": "13.16" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26129" + }, + { + "id": 26128, + "description": "CTP", + "date": "2022-04-28", + "heure_debut": "13:30", + "heure_fin": "15:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 1.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "07.00", + "min": "00.00", + "max": "18.50", + "moy": "10.20" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26128" + }, + { + "id": 26440, + "description": "rendu Stats", + "date": "2022-04-26", + "heure_debut": "08:00", + "heure_fin": "08:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 1.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "15.62", + "min": "00.00", + "max": "20.00", + "moy": "12.51" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26440" + }, + { + "id": 26640, + "description": "Anglais", + "date": "2022-06-13", + "heure_debut": "08:00", + "heure_fin": "08:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 1.0, + "UE 2.5": 0.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "09.00", + "min": "00.00", + "max": "19.00", + "moy": "11.67" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26640" + } + ] + }, + "S 2.05": { + "id": 14546, + "titre": "Gestion d'un projet", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14546", + "moyenne": {}, + "evaluations": [ + { + "id": 26127, + "description": "Rendu", + "date": "2022-06-01", + "heure_debut": "08:00", + "heure_fin": "08:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 1.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "04.00", + "min": "00.00", + "max": "20.00", + "moy": "11.82" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26127" + }, + { + "id": 26126, + "description": "Soutenance", + "date": "2022-05-23", + "heure_debut": "08:00", + "heure_fin": "08:00", + "coef": "02.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 1.0, + "UE 2.6": 0.0 + }, + "note": { + "value": "15.60", + "min": "00.00", + "max": "10.00", + "moy": "07.84" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26126" + } + ] + }, + "S 2.06": { + "id": 14547, + "titre": "Organisation d'un travail d'équipe", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14547", + "moyenne": {}, + "evaluations": [ + { + "id": 26144, + "description": "Rendu (flyer)", + "date": "2022-03-08", + "heure_debut": "08:00", + "heure_fin": "08:00", + "coef": "01.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 1.0 + }, + "note": { + "value": "13.50", + "min": "00.00", + "max": "18.50", + "moy": "13.48" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26144" + }, + { + "id": 26698, + "description": "Evaluation finale", + "date": "2022-06-03", + "heure_debut": "09:00", + "heure_fin": "12:00", + "coef": "02.00", + "poids": { + "UE 2.1": 0.0, + "UE 2.2": 0.0, + "UE 2.3": 0.0, + "UE 2.4": 0.0, + "UE 2.5": 0.0, + "UE 2.6": 1.0 + }, + "note": { + "value": "13.00", + "min": "00.00", + "max": "19.00", + "moy": "14.89" + }, + "url": "/ScoDoc/INFO/Scolarite/Notes/evaluation_listenotes?evaluation_id=26698" + } + ] + } + }, + "ues": { + "UE 2.1": { + "id": 1772, + "titre": "Réaliser un développement d'applications", + "numero": 1, + "type": 0, + "color": "#B80004", + "competence": null, + "moyenne": { + "value": "10.38", + "min": "00.00", + "max": "18.68", + "moy": "09.36", + "rang": "", + "total": 0, + "groupes": {} + }, + "bonus": "00.00", + "malus": "00.00", + "capitalise": null, + "ressources": { + "R 2.01": { + "id": 14530, + "coef": 0.21, + "moyenne": "04.31" + }, + "R 2.02": { + "id": 14531, + "coef": 0.21, + "moyenne": "11.60" + }, + "R 2.03": { + "id": 14532, + "coef": 0.12, + "moyenne": "04.79" + }, + "R 2.13": { + "id": 14548, + "coef": 0.06, + "moyenne": "18.00" + } + }, + "saes": { + "S 2.01": { + "id": 14542, + "coef": 0.4, + "moyenne": "13.45" + } + } + }, + "UE 2.2": { + "id": 1773, + "titre": "Optimiser des applications informatiques", + "numero": 2, + "type": 0, + "color": "#F97B3D", + "competence": null, + "moyenne": { + "value": "11.41", + "min": "00.00", + "max": "17.92", + "moy": "09.30", + "rang": "", + "total": 0, + "groupes": {} + }, + "bonus": "00.00", + "malus": "00.00", + "capitalise": null, + "ressources": { + "R 2.01": { + "id": 14530, + "coef": 0.15, + "moyenne": "03.12" + }, + "R 2.04": { + "id": 14533, + "coef": 0.12, + "moyenne": "11.50" + }, + "R 2.07": { + "id": 14536, + "coef": 0.21, + "moyenne": "13.81" + }, + "R 2.09": { + "id": 14538, + "coef": 0.12, + "moyenne": "14.00" + } + }, + "saes": { + "S 2.02": { + "id": 14543, + "coef": 0.4, + "moyenne": "12.45" + } + } + }, + "UE 2.3": { + "id": 1774, + "titre": "Administrer des systèmes informatiques communicants complexes", + "numero": 3, + "type": 0, + "color": "#FEB40B", + "competence": null, + "moyenne": { + "value": "12.28", + "min": "00.00", + "max": "18.80", + "moy": "11.42", + "rang": "", + "total": 0, + "groupes": {} + }, + "bonus": "00.00", + "malus": "00.00", + "capitalise": null, + "ressources": { + "R 2.04": { + "id": 14533, + "coef": 0.36, + "moyenne": "11.50" + }, + "R 2.05": { + "id": 14534, + "coef": 0.15, + "moyenne": "10.18" + }, + "R 2.12": { + "id": 14541, + "coef": 0.06, + "moyenne": "12.67" + }, + "R 2.13": { + "id": 14548, + "coef": 0.03, + "moyenne": "~" + } + }, + "saes": { + "S 2.03": { + "id": 14544, + "coef": 0.4, + "moyenne": "13.71" + } + } + }, + "UE 2.4": { + "id": 1775, + "titre": "Gérer des données de l'information", + "numero": 4, + "type": 0, + "color": "#80CB3F", + "competence": null, + "moyenne": { + "value": "10.80", + "min": "00.00", + "max": "17.01", + "moy": "09.82", + "rang": "", + "total": 0, + "groupes": {} + }, + "bonus": "00.00", + "malus": "00.00", + "capitalise": null, + "ressources": { + "R 2.06": { + "id": 14535, + "coef": 0.3, + "moyenne": "08.31" + }, + "R 2.08": { + "id": 14537, + "coef": 0.12, + "moyenne": "13.75" + }, + "R 2.10": { + "id": 14539, + "coef": 0.12, + "moyenne": "10.25" + }, + "R 2.12": { + "id": 14541, + "coef": 0.06, + "moyenne": "14.33" + } + }, + "saes": { + "S 2.04": { + "id": 14545, + "coef": 0.4, + "moyenne": "11.41" + } + } + }, + "UE 2.5": { + "id": 1776, + "titre": "Conduire un projet", + "numero": 5, + "type": 0, + "color": "#05162E", + "competence": null, + "moyenne": { + "value": "12.99", + "min": "00.00", + "max": "17.55", + "moy": "12.40", + "rang": "", + "total": 0, + "groupes": {} + }, + "bonus": "00.00", + "malus": "00.00", + "capitalise": null, + "ressources": { + "R 2.02": { + "id": 14531, + "coef": 0.03, + "moyenne": "12.00" + }, + "R 2.03": { + "id": 14532, + "coef": 0.06, + "moyenne": "17.78" + }, + "R 2.07": { + "id": 14536, + "coef": 0.06, + "moyenne": "19.20" + }, + "R 2.10": { + "id": 14539, + "coef": 0.3, + "moyenne": "12.40" + }, + "R 2.12": { + "id": 14541, + "coef": 0.06, + "moyenne": "13.00" + }, + "R 2.13": { + "id": 14548, + "coef": 0.09, + "moyenne": "13.50" + } + }, + "saes": { + "S 2.05": { + "id": 14546, + "coef": 0.4, + "moyenne": "11.73" + } + } + }, + "UE 2.6": { + "id": 1777, + "titre": "Travailler dans une équipe informatique", + "numero": 6, + "type": 0, + "color": "#548687", + "competence": null, + "moyenne": { + "value": "12.71", + "min": "00.00", + "max": "17.97", + "moy": "12.18", + "rang": "", + "total": 0, + "groupes": {} + }, + "bonus": "00.00", + "malus": "00.00", + "capitalise": null, + "ressources": { + "R 2.02": { + "id": 14531, + "coef": 0.04, + "moyenne": "11.00" + }, + "R 2.11": { + "id": 14540, + "coef": 0.17, + "moyenne": "09.50" + }, + "R 2.12": { + "id": 14541, + "coef": 0.17, + "moyenne": "13.00" + }, + "R 2.13": { + "id": 14548, + "coef": 0.11, + "moyenne": "13.00" + }, + "R 2.14": { + "id": 14549, + "coef": 0.11, + "moyenne": "15.93" + } + }, + "saes": { + "S 2.06": { + "id": 14547, + "coef": 0.4, + "moyenne": "13.17" + } + } + } + }, + "semestre": { + "etapes": [ + "1BFQQU" + ], + "date_debut": "2022-01-24", + "date_fin": "2022-07-31", + "annee_universitaire": "2021 - 2022", + "numero": 2, + "inscription": "", + "groupes": [ + { + "partition_id": 1963, + "group_name": "A2", + "id": 4386, + "numero": null, + "partition": { + "formsemestre_id": 911, + "numero": 1962, + "show_in_lists": true, + "id": 1963, + "partition_name": "1/2TD", + "bul_show_rank": false, + "groups_editable": true + } + } + ], + "situation": "Inscrit le 20/01/2022. UE acquises: UE 2.1, UE 2.2, UE 2.3, UE 2.4, UE 2.5, UE 2.6. Décision année: PASD. Autorisé à s'inscrire en S3.", + "decision": { + "code": "", + "etat": "I", + "date": "" + }, + "decision_ue": [ + { + "ue_id": 1772, + "numero": 1, + "acronyme": "UE 2.1", + "titre": "Réaliser un développement d'applications", + "code": "ADM", + "ects": 1.0 + }, + { + "ue_id": 1773, + "numero": 2, + "acronyme": "UE 2.2", + "titre": "Optimiser des applications informatiques", + "code": "ADM", + "ects": 1.0 + }, + { + "ue_id": 1774, + "numero": 3, + "acronyme": "UE 2.3", + "titre": "Administrer des systèmes informatiques communicants complexes", + "code": "ADM", + "ects": 1.0 + }, + { + "ue_id": 1775, + "numero": 4, + "acronyme": "UE 2.4", + "titre": "Gérer des données de l'information", + "code": "ADM", + "ects": 1.0 + }, + { + "ue_id": 1776, + "numero": 5, + "acronyme": "UE 2.5", + "titre": "Conduire un projet", + "code": "ADM", + "ects": 1.0 + }, + { + "ue_id": 1777, + "numero": 6, + "acronyme": "UE 2.6", + "titre": "Travailler dans une équipe informatique", + "code": "ADM", + "ects": 1.0 + } + ], + "autorisation_inscription": [ + { + "semestre_id": 3 + } + ], + "decision_rcue": [ + { + "code": "ADM", + "niveau": { + "libelle": "Développer des applications informatiques simples ", + "annee": "BUT1", + "ordre": 1, + "competence": { + "id_orebut": "c565dab0bf0c01a118811e1786bb2ac9", + "titre": "Réaliser", + "titre_long": "Développer — c’est-à-dire concevoir, coder, tester et intégrer — une solution informatique pour un client. ", + "couleur": "c1", + "numero": 1 + } + } + }, + { + "code": "ADM", + "niveau": { + "libelle": "Appréhender et construire des algorithmes ", + "annee": "BUT1", + "ordre": 1, + "competence": { + "id_orebut": "384dc89c6cc6856ab3b49535d650a9d8", + "titre": "Optimiser", + "titre_long": "Proposer des applications informatiques optimisées en fonction de critères spécifiques : temps d’exécution, précision, consommation de ressources..", + "couleur": "c2", + "numero": 2 + } + } + }, + { + "code": "ADM", + "niveau": { + "libelle": "Installer et configurer un poste de travail ", + "annee": "BUT1", + "ordre": 1, + "competence": { + "id_orebut": "59052642c0556be77a77c600e3d47bfe", + "titre": "Administrer", + "titre_long": "Installer, configurer, mettre à disposition, maintenir en conditions opérationnelles des infrastructures, des services et des réseaux et optimiser le système informatique d’une organisation ", + "couleur": "c3", + "numero": 3 + } + } + }, + { + "code": "AJ", + "niveau": { + "libelle": "Concevoir et mettre en place une base de données à partir d’un cahier des charges client ", + "annee": "BUT1", + "ordre": 1, + "competence": { + "id_orebut": "b1be9963258bc50533398ff0f42b1b91", + "titre": "Gérer", + "titre_long": "Concevoir, gérer, administrer et exploiter les données de l’entreprise et mettre à disposition toutes les informations pour un bon pilotage de l’entreprise", + "couleur": "c4", + "numero": 4 + } + } + }, + { + "code": "ADM", + "niveau": { + "libelle": "Identifier les besoins métiers des clients et des utilisateurs ", + "annee": "BUT1", + "ordre": 1, + "competence": { + "id_orebut": "de170ed9d5b9db7c256f17a866278eea", + "titre": "Conduire", + "titre_long": "Satisfaire les besoins des utilisateurs au regard de la chaîne de valeur du client, organiser et piloter un projet informatique avec des méthodes classiques ou agiles", + "couleur": "c5", + "numero": 5 + } + } + }, + { + "code": "ADM", + "niveau": { + "libelle": "Identifier ses aptitudes pour travailler dans une équipe ", + "annee": "BUT1", + "ordre": 1, + "competence": { + "id_orebut": "f4fcf7b2f78dbd8e00a3374a7a6243c4", + "titre": "Collaborer", + "titre_long": "Acquérir, développer et exploiter les aptitudes nécessaires pour travailler efficacement dans une équipe informatique", + "couleur": "c6", + "numero": 6 + } + } + } + ], + "descr_decisions_rcue": "Réaliser 1: ADM, Optimiser 1: ADM, Administrer 1: ADM, Gérer 1: AJ, Conduire 1: ADM, Collaborer 1: ADM", + "descr_decisions_niveaux": "Niveaux de compétences: Réaliser 1: ADM, Optimiser 1: ADM, Administrer 1: ADM, Gérer 1: AJ, Conduire 1: ADM, Collaborer 1: ADM", + "decision_annee": { + "annee_scolaire": 2021, + "date": "2022-07-05T11:41:53.289055+02:00", + "code": "PASD", + "ordre": 1 + }, + "notes": { + "value": "11.76", + "min": "00.00", + "moy": "10.68", + "max": "17.57" + }, + "rang": { + "value": "75", + "total": 117, + "groupes": {} + } + } +} +``` + +`/api/etudiant/12107/formsemestre/944/bulletin/short` + +```json +{ + "version": "0", + "type": "BUT", + "date": "2022-08-06T09:06:23.349786Z", + "publie": true, + "etudiant": { + "civilite": "M", + "code_ine": "081677534FF", + "code_nip": "42157561", + "date_naissance": "09/04/2002", + "dept_id": 6, + "dept_acronym": "INFO", + "email": "nathan.accart.etu@univ-lille.fr", + "emailperso": "nathan.accart@gmail.com", + "etudid": 12107, + "nom": "ACCART", + "prenom": "NATHAN", + "nomprenom": "M. Nathan ACCART", + "lieu_naissance": "VILLENEUVE-D'ASCQ", + "dept_naissance": "59", + "nationalite": "", + "boursier": "", + "fiche_url": "/ScoDoc/INFO/Scolarite/ficheEtud?etudid=12107", + "photo_url": "/ScoDoc/INFO/Scolarite/get_photo_image?etudid=12107&size=small", + "id": 12107, + "domicile": "105 ALLEE DE LA COURTINE", + "villedomicile": "VILLENEUVE D ASCQ", + "telephone": "03 62 57 05 40", + "fax": "", + "description": "(infos admission)", + "codepostaldomicile": "59650", + "paysdomicile": "FRANCE", + "telephonemobile": "06 18 52 59 75", + "typeadresse": "domicile" + }, + "formation": { + "id": 333, + "acronyme": "BUT Informatique", + "titre_officiel": "Licence professionnelle", + "titre": "BUT Informatique" + }, + "formsemestre_id": 911, + "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": true, + "temporary_txt": "PROVISOIRE", + "show_uevalid": true, + "show_date_inscr": false + }, + "ressources": { + "R 2.01": { + "id": 14530, + "titre": "Développement orienté objets", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14530", + "moyenne": {}, + "evaluations": [] + }, + "R 2.02": { + "id": 14531, + "titre": "Développement d'applications avec IHM", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14531", + "moyenne": {}, + "evaluations": [] + }, + "R 2.03": { + "id": 14532, + "titre": "Qualité du développement", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14532", + "moyenne": {}, + "evaluations": [] + }, + "R 2.04": { + "id": 14533, + "titre": "Communication et fonctionnement bas niveau", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14533", + "moyenne": {}, + "evaluations": [] + }, + "R 2.05": { + "id": 14534, + "titre": "Introduction aux services réseaux", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14534", + "moyenne": {}, + "evaluations": [] + }, + "R 2.06": { + "id": 14535, + "titre": "Exploitation d'une base de données", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14535", + "moyenne": {}, + "evaluations": [] + }, + "R 2.07": { + "id": 14536, + "titre": "Graphes", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14536", + "moyenne": {}, + "evaluations": [] + }, + "R 2.08": { + "id": 14537, + "titre": "Outils numériques pour les statistiques descriptives", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14537", + "moyenne": {}, + "evaluations": [] + }, + "R 2.09": { + "id": 14538, + "titre": "Méthodes numériques", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14538", + "moyenne": {}, + "evaluations": [] + }, + "R 2.10": { + "id": 14539, + "titre": "Gestion de projet et des organisations", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14539", + "moyenne": {}, + "evaluations": [] + }, + "R 2.11": { + "id": 14540, + "titre": "Droit des contrats et du numérique", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14540", + "moyenne": {}, + "evaluations": [] + }, + "R 2.12": { + "id": 14541, + "titre": "Anglais d'entreprise", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14541", + "moyenne": {}, + "evaluations": [] + }, + "R 2.13": { + "id": 14548, + "titre": "Communication avec le milieu professionnel", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14548", + "moyenne": {}, + "evaluations": [] + }, + "R 2.14": { + "id": 14549, + "titre": "Porjet professionel et personnel : métiers de l'informatique", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14549", + "moyenne": {}, + "evaluations": [] + } + }, + "saes": { + "S 2.01": { + "id": 14542, + "titre": "Développement d'une application", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14542", + "moyenne": {}, + "evaluations": [] + }, + "S 2.02": { + "id": 14543, + "titre": "Exploration algorithmique d'un problème", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14543", + "moyenne": {}, + "evaluations": [] + }, + "S 2.03": { + "id": 14544, + "titre": "Installation de services réseau", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14544", + "moyenne": {}, + "evaluations": [] + }, + "S 2.04": { + "id": 14545, + "titre": "Exploitation d'une base de données", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14545", + "moyenne": {}, + "evaluations": [] + }, + "S 2.05": { + "id": 14546, + "titre": "Gestion d'un projet", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14546", + "moyenne": {}, + "evaluations": [] + }, + "S 2.06": { + "id": 14547, + "titre": "Organisation d'un travail d'équipe", + "code_apogee": null, + "url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=14547", + "moyenne": {}, + "evaluations": [] + } + }, + "ues": { + "UE 2.1": { + "id": 1772, + "titre": "Réaliser un développement d'applications", + "numero": 1, + "type": 0, + "color": "#B80004", + "competence": null, + "moyenne": { + "value": "10.38", + "min": "00.00", + "max": "18.68", + "moy": "09.36", + "rang": "", + "total": 0, + "groupes": {} + }, + "bonus": "00.00", + "malus": "00.00", + "capitalise": null, + "ressources": { + "R 2.01": { + "id": 14530, + "coef": 0.21, + "moyenne": "04.31" + }, + "R 2.02": { + "id": 14531, + "coef": 0.21, + "moyenne": "11.60" + }, + "R 2.03": { + "id": 14532, + "coef": 0.12, + "moyenne": "04.79" + }, + "R 2.13": { + "id": 14548, + "coef": 0.06, + "moyenne": "18.00" + } + }, + "saes": { + "S 2.01": { + "id": 14542, + "coef": 0.4, + "moyenne": "13.45" + } + } + }, + "UE 2.2": { + "id": 1773, + "titre": "Optimiser des applications informatiques", + "numero": 2, + "type": 0, + "color": "#F97B3D", + "competence": null, + "moyenne": { + "value": "11.41", + "min": "00.00", + "max": "17.92", + "moy": "09.30", + "rang": "", + "total": 0, + "groupes": {} + }, + "bonus": "00.00", + "malus": "00.00", + "capitalise": null, + "ressources": { + "R 2.01": { + "id": 14530, + "coef": 0.15, + "moyenne": "03.12" + }, + "R 2.04": { + "id": 14533, + "coef": 0.12, + "moyenne": "11.50" + }, + "R 2.07": { + "id": 14536, + "coef": 0.21, + "moyenne": "13.81" + }, + "R 2.09": { + "id": 14538, + "coef": 0.12, + "moyenne": "14.00" + } + }, + "saes": { + "S 2.02": { + "id": 14543, + "coef": 0.4, + "moyenne": "12.45" + } + } + }, + "UE 2.3": { + "id": 1774, + "titre": "Administrer des systèmes informatiques communicants complexes", + "numero": 3, + "type": 0, + "color": "#FEB40B", + "competence": null, + "moyenne": { + "value": "12.28", + "min": "00.00", + "max": "18.80", + "moy": "11.42", + "rang": "", + "total": 0, + "groupes": {} + }, + "bonus": "00.00", + "malus": "00.00", + "capitalise": null, + "ressources": { + "R 2.04": { + "id": 14533, + "coef": 0.36, + "moyenne": "11.50" + }, + "R 2.05": { + "id": 14534, + "coef": 0.15, + "moyenne": "10.18" + }, + "R 2.12": { + "id": 14541, + "coef": 0.06, + "moyenne": "12.67" + }, + "R 2.13": { + "id": 14548, + "coef": 0.03, + "moyenne": "~" + } + }, + "saes": { + "S 2.03": { + "id": 14544, + "coef": 0.4, + "moyenne": "13.71" + } + } + }, + "UE 2.4": { + "id": 1775, + "titre": "Gérer des données de l'information", + "numero": 4, + "type": 0, + "color": "#80CB3F", + "competence": null, + "moyenne": { + "value": "10.80", + "min": "00.00", + "max": "17.01", + "moy": "09.82", + "rang": "", + "total": 0, + "groupes": {} + }, + "bonus": "00.00", + "malus": "00.00", + "capitalise": null, + "ressources": { + "R 2.06": { + "id": 14535, + "coef": 0.3, + "moyenne": "08.31" + }, + "R 2.08": { + "id": 14537, + "coef": 0.12, + "moyenne": "13.75" + }, + "R 2.10": { + "id": 14539, + "coef": 0.12, + "moyenne": "10.25" + }, + "R 2.12": { + "id": 14541, + "coef": 0.06, + "moyenne": "14.33" + } + }, + "saes": { + "S 2.04": { + "id": 14545, + "coef": 0.4, + "moyenne": "11.41" + } + } + }, + "UE 2.5": { + "id": 1776, + "titre": "Conduire un projet", + "numero": 5, + "type": 0, + "color": "#05162E", + "competence": null, + "moyenne": { + "value": "12.99", + "min": "00.00", + "max": "17.55", + "moy": "12.40", + "rang": "", + "total": 0, + "groupes": {} + }, + "bonus": "00.00", + "malus": "00.00", + "capitalise": null, + "ressources": { + "R 2.02": { + "id": 14531, + "coef": 0.03, + "moyenne": "12.00" + }, + "R 2.03": { + "id": 14532, + "coef": 0.06, + "moyenne": "17.78" + }, + "R 2.07": { + "id": 14536, + "coef": 0.06, + "moyenne": "19.20" + }, + "R 2.10": { + "id": 14539, + "coef": 0.3, + "moyenne": "12.40" + }, + "R 2.12": { + "id": 14541, + "coef": 0.06, + "moyenne": "13.00" + }, + "R 2.13": { + "id": 14548, + "coef": 0.09, + "moyenne": "13.50" + } + }, + "saes": { + "S 2.05": { + "id": 14546, + "coef": 0.4, + "moyenne": "11.73" + } + } + }, + "UE 2.6": { + "id": 1777, + "titre": "Travailler dans une équipe informatique", + "numero": 6, + "type": 0, + "color": "#548687", + "competence": null, + "moyenne": { + "value": "12.71", + "min": "00.00", + "max": "17.97", + "moy": "12.18", + "rang": "", + "total": 0, + "groupes": {} + }, + "bonus": "00.00", + "malus": "00.00", + "capitalise": null, + "ressources": { + "R 2.02": { + "id": 14531, + "coef": 0.04, + "moyenne": "11.00" + }, + "R 2.11": { + "id": 14540, + "coef": 0.17, + "moyenne": "09.50" + }, + "R 2.12": { + "id": 14541, + "coef": 0.17, + "moyenne": "13.00" + }, + "R 2.13": { + "id": 14548, + "coef": 0.11, + "moyenne": "13.00" + }, + "R 2.14": { + "id": 14549, + "coef": 0.11, + "moyenne": "15.93" + } + }, + "saes": { + "S 2.06": { + "id": 14547, + "coef": 0.4, + "moyenne": "13.17" + } + } + } + }, + "semestre": { + "etapes": [ + "1BFQQU" + ], + "date_debut": "2022-01-24", + "date_fin": "2022-07-31", + "annee_universitaire": "2021 - 2022", + "numero": 2, + "inscription": "", + "groupes": [ + { + "partition_id": 1963, + "group_name": "A2", + "id": 4386, + "numero": null, + "partition": { + "formsemestre_id": 911, + "numero": 1962, + "show_in_lists": true, + "id": 1963, + "partition_name": "1/2TD", + "bul_show_rank": false, + "groups_editable": true + } + } + ], + "situation": "Inscrit le 20/01/2022. UE acquises: UE 2.1, UE 2.2, UE 2.3, UE 2.4, UE 2.5, UE 2.6. Décision année: PASD. Autorisé à s'inscrire en S3.", + "decision": { + "code": "", + "etat": "I", + "date": "" + }, + "decision_ue": [ + { + "ue_id": 1772, + "numero": 1, + "acronyme": "UE 2.1", + "titre": "Réaliser un développement d'applications", + "code": "ADM", + "ects": 1.0 + }, + { + "ue_id": 1773, + "numero": 2, + "acronyme": "UE 2.2", + "titre": "Optimiser des applications informatiques", + "code": "ADM", + "ects": 1.0 + }, + { + "ue_id": 1774, + "numero": 3, + "acronyme": "UE 2.3", + "titre": "Administrer des systèmes informatiques communicants complexes", + "code": "ADM", + "ects": 1.0 + }, + { + "ue_id": 1775, + "numero": 4, + "acronyme": "UE 2.4", + "titre": "Gérer des données de l'information", + "code": "ADM", + "ects": 1.0 + }, + { + "ue_id": 1776, + "numero": 5, + "acronyme": "UE 2.5", + "titre": "Conduire un projet", + "code": "ADM", + "ects": 1.0 + }, + { + "ue_id": 1777, + "numero": 6, + "acronyme": "UE 2.6", + "titre": "Travailler dans une équipe informatique", + "code": "ADM", + "ects": 1.0 + } + ], + "autorisation_inscription": [ + { + "semestre_id": 3 + } + ], + "decision_rcue": [ + { + "code": "ADM", + "niveau": { + "libelle": "Développer des applications informatiques simples ", + "annee": "BUT1", + "ordre": 1, + "competence": { + "id_orebut": "c565dab0bf0c01a118811e1786bb2ac9", + "titre": "Réaliser", + "titre_long": "Développer — c’est-à-dire concevoir, coder, tester et intégrer — une solution informatique pour un client. ", + "couleur": "c1", + "numero": 1 + } + } + }, + { + "code": "ADM", + "niveau": { + "libelle": "Appréhender et construire des algorithmes ", + "annee": "BUT1", + "ordre": 1, + "competence": { + "id_orebut": "384dc89c6cc6856ab3b49535d650a9d8", + "titre": "Optimiser", + "titre_long": "Proposer des applications informatiques optimisées en fonction de critères spécifiques : temps d’exécution, précision, consommation de ressources..", + "couleur": "c2", + "numero": 2 + } + } + }, + { + "code": "ADM", + "niveau": { + "libelle": "Installer et configurer un poste de travail ", + "annee": "BUT1", + "ordre": 1, + "competence": { + "id_orebut": "59052642c0556be77a77c600e3d47bfe", + "titre": "Administrer", + "titre_long": "Installer, configurer, mettre à disposition, maintenir en conditions opérationnelles des infrastructures, des services et des réseaux et optimiser le système informatique d’une organisation ", + "couleur": "c3", + "numero": 3 + } + } + }, + { + "code": "AJ", + "niveau": { + "libelle": "Concevoir et mettre en place une base de données à partir d’un cahier des charges client ", + "annee": "BUT1", + "ordre": 1, + "competence": { + "id_orebut": "b1be9963258bc50533398ff0f42b1b91", + "titre": "Gérer", + "titre_long": "Concevoir, gérer, administrer et exploiter les données de l’entreprise et mettre à disposition toutes les informations pour un bon pilotage de l’entreprise", + "couleur": "c4", + "numero": 4 + } + } + }, + { + "code": "ADM", + "niveau": { + "libelle": "Identifier les besoins métiers des clients et des utilisateurs ", + "annee": "BUT1", + "ordre": 1, + "competence": { + "id_orebut": "de170ed9d5b9db7c256f17a866278eea", + "titre": "Conduire", + "titre_long": "Satisfaire les besoins des utilisateurs au regard de la chaîne de valeur du client, organiser et piloter un projet informatique avec des méthodes classiques ou agiles", + "couleur": "c5", + "numero": 5 + } + } + }, + { + "code": "ADM", + "niveau": { + "libelle": "Identifier ses aptitudes pour travailler dans une équipe ", + "annee": "BUT1", + "ordre": 1, + "competence": { + "id_orebut": "f4fcf7b2f78dbd8e00a3374a7a6243c4", + "titre": "Collaborer", + "titre_long": "Acquérir, développer et exploiter les aptitudes nécessaires pour travailler efficacement dans une équipe informatique", + "couleur": "c6", + "numero": 6 + } + } + } + ], + "descr_decisions_rcue": "Réaliser 1: ADM, Optimiser 1: ADM, Administrer 1: ADM, Gérer 1: AJ, Conduire 1: ADM, Collaborer 1: ADM", + "descr_decisions_niveaux": "Niveaux de compétences: Réaliser 1: ADM, Optimiser 1: ADM, Administrer 1: ADM, Gérer 1: AJ, Conduire 1: ADM, Collaborer 1: ADM", + "decision_annee": { + "annee_scolaire": 2021, + "date": "2022-07-05T11:41:53.289055+02:00", + "code": "PASD", + "ordre": 1 + }, + "notes": { + "value": "11.76", + "min": "00.00", + "moy": "10.68", + "max": "17.57" + }, + "rang": { + "value": "75", + "total": 117, + "groupes": {} + } + } +} + +``` \ No newline at end of file diff --git a/docs/samples/sample_etudiant-formsemestre-groups.json.md b/docs/samples/sample_etudiant-formsemestre-groups.json.md new file mode 100644 index 000000000..c1f9daafd --- /dev/null +++ b/docs/samples/sample_etudiant-formsemestre-groups.json.md @@ -0,0 +1,46 @@ +### etudiant-formsemestre-groupes + +`/etudiant/etudid/12133/formsemestre/911/groups` + +```json +[ + { + "partition_id": 1960, + "id": 4378, + "formsemestre_id": 911, + "partition_name": null, + "numero": null, + "bul_show_rank": false, + "show_in_lists": true, + "groups_editable": true, + "group_id": 4378, + "group_name": null + }, + { + "partition_id": 1963, + "id": 4390, + "formsemestre_id": 911, + "partition_name": "1/2TD", + "numero": null, + "bul_show_rank": false, + "show_in_lists": true, + "groups_editable": true, + "group_id": 4390, + "group_name": "D1" + }, + { + "partition_id": 1962, + "id": 4382, + "formsemestre_id": 911, + "partition_name": "TD", + "numero": 4, + "bul_show_rank": false, + "show_in_lists": true, + "groups_editable": true, + "group_id": 4382, + "group_name": "D" + } +] + +``` + diff --git a/docs/samples/sample_formsemestre-decision_jury#pair.md b/docs/samples/sample_formsemestre-decision_jury#pair.md new file mode 100644 index 000000000..a388771f7 --- /dev/null +++ b/docs/samples/sample_formsemestre-decision_jury#pair.md @@ -0,0 +1,128 @@ +### formsemestre-decision_jury + +#### semestre BUT pair + +```json +``` + +#### semestre BUT impair + +`/api/formsemestre/944/decisions_jury` +```json +[ + { + "etudid": 11458, + "code_nip": "217023024", + "code_ine": "0910212777K", + "is_apc": true, + "etat": "I", + "nb_competences": 6, + "rcues": [], + "ues": [], + "semestre": {}, + "autorisations": [] + }, + { + "etudid": 12043, + "code_nip": "42114526", + "code_ine": "101091545BC", + "is_apc": true, + "etat": "I", + "nb_competences": 6, + "rcues": [], + "ues": [], + "semestre": {}, + "autorisations": [] + }, + ... +] +``` + +#### semestre classique (non BUT) + +`/api/formsemestre/836/decisions_jury` +```json +[ + { + "etudid": 9565, + "code_nip": "41801196", + "code_ine": "081688098GE", + "is_apc": false, + "etat": "I", + "nb_competences": 0, + "rcues": [], + "ues": [ + { + "ue_id": 1517, + "code": "ADM", + "ects": 12.0 + }, + { + "ue_id": 1554, + "code": "ADM", + "ects": 12.0 + }, + { + "ue_id": 1518, + "code": "ADM", + "ects": 6.0 + } + ], + "semestre": { + "code": "ADM" + }, + "autorisations": [ + { + "etudid": 9565, + "semestre_id": 4, + "formation_code": "FCOD40", + "origin_formsemestre_id": 819, + "id": 25930, + "date": "2022-02-22T14:23:43.017238+01:00" + } + ] + }, + { + "etudid": 9470, + "code_nip": "42028733", + "code_ine": "071632523FH", + "is_apc": false, + "etat": "I", + "nb_competences": 0, + "rcues": [], + "ues": [ + { + "ue_id": 1517, + "code": "CMP", + "ects": 12.0 + }, + { + "ue_id": 1554, + "code": "ADM", + "ects": 12.0 + }, + { + "ue_id": 1518, + "code": "ADM", + "ects": 6.0 + } + ], + "semestre": { + "code": "ADM" + }, + "autorisations": [ + { + "etudid": 9470, + "semestre_id": 4, + "formation_code": "FCOD40", + "origin_formsemestre_id": 819, + "id": 25953, + "date": "2022-02-22T14:23:45.628847+01:00" + } + ] + }, + ... +] +``` + + diff --git a/docs/samples/sample_formsemestre-etudiants.json.md b/docs/samples/sample_formsemestre-etudiants.json.md deleted file mode 100644 index 3b96068c6..000000000 --- a/docs/samples/sample_formsemestre-etudiants.json.md +++ /dev/null @@ -1,44 +0,0 @@ -### formsemestre-etudiants - -`/api/formsemestre/1/etudiants` - -```json -[ - { - "id": 9586, - "code_nip": "42021436", - "code_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" - } - ] - }, -... -] -``` diff --git a/docs/samples/sample_group-etudiants-query.json.md b/docs/samples/sample_group-etudiants-query.json.md index 0b26e44a6..315561ea6 100644 --- a/docs/samples/sample_group-etudiants-query.json.md +++ b/docs/samples/sample_group-etudiants-query.json.md @@ -1,19 +1,30 @@ -### group-etudiants +### group-etudiants-query -`/api/group/4085/set_etudiants?etat=D` +`/api/group/4393/etudiants/query?etat=I` ```json [ { - "id": 12071, - "code_nip": "24123901", - "code_ine": "081818679FE", + "id": 9597, + "code_nip": "52178457", + "code_ine": "090940298GB", "dept_id": 6, - "nom": "HAMMO", + "nom": "TILLEUL", "nom_usuel": null, - "prenom": "NATHAN", + "prenom": "JADE", + "civilite": "F" + }, + { + "id": 11884, + "code_nip": "42019956", + "code_ine": "100992999FK", + "dept_id": 6, + "nom": "PEUPLIER", + "nom_usuel": null, + "prenom": "NOE", "civilite": "M" - } + }, + ... ] ``` diff --git a/docs/samples/sample_partition-group-create.json.md b/docs/samples/sample_partition-group-create.json.md new file mode 100644 index 000000000..82a0b99bc --- /dev/null +++ b/docs/samples/sample_partition-group-create.json.md @@ -0,0 +1,26 @@ +### partition-groups-create + +`/api/partition/1962/groups/create` +>Content-Type: application/json +> +> `{ "group_name": "X"}` + + +```json +{ + "group_name": "X", + "partition_id": 1962, + "id": 4583, + "numero": null, + "partition": { + "formsemestre_id": 911, + "numero": 1960, + "show_in_lists": true, + "bul_show_rank": false, + "id": 1962, + "partition_name": "TD", + "groups_editable": true + } +} +``` + diff --git a/docs/samples/sample_partition-group-order.json.md b/docs/samples/sample_partition-group-order.json.md new file mode 100644 index 000000000..e36130970 --- /dev/null +++ b/docs/samples/sample_partition-group-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" + } + } +} +``` +