ajouts exemples

This commit is contained in:
Jean-Marie PLACE 2022-08-02 20:58:45 +02:00
parent eb3a0ed5ac
commit 43b72dfe9a
16 changed files with 763 additions and 527 deletions

View File

@ -161,6 +161,20 @@ par le serveur ScoDoc.
* [500](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/500) : Erreur * [500](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/500) : Erreur
inconnue côté serveur. inconnue côté serveur.
[test](img/API_Chart.svg)
## Règles générales
* une route s'écrit comme une suite de noms et d'identifiants
* les noms token, departement, formation, formsemestre, groupe, etudiant, bulletin, absence, logo, programme, évaluation, resultat, decision désigne des types d'objets.
* les noms (verbes ou groupes verbaux): set_etudiant, remove_etudiant, query, create, delete, edit, order sont des actions
* les noms restants (ids, courant, long, ...) sont des options
Les autre noms sont des options ou des actions
* le dernier nom apparaissant sur une route donne le type d'objet renvoyé. ce nom peut apparaître au singulier ou au pluriel
* Au singulier un seul objet est renvoyé, si aucun objet n'est trouvé, retourne un 404
* Au pluriel une collection d'objets est renvoyée, si aucun obket n'est trouvé, retourne une collection vide
* un type d'objet au singulier est généralement suivi immédiatement de son identifiant (unique). Exception: pour un étudiant, on peut également utiliser le NIP ou l'INE (qui ne sont pas uniques)
## Départements ## Départements
#### **departements_ids** #### **departements_ids**
@ -256,7 +270,7 @@ par le serveur ScoDoc.
* `/departement/<string:dept>/formsemestres_courants` * `/departement/<string:dept>/formsemestres_courants`
* **Exemple d'utilisation:** `/api/departement/MMI/formsemestres_courants` * **Exemple d'utilisation:** `/api/departement/MMI/formsemestres_courants`
* **Résultat:** Liste des formsemestres en cours d'un département donné. * **Résultat:** Liste des formsemestres en cours d'un département donné.
* **Exemple de résultat:** [formsemestre-courants.json](samples/sample_formsemestres-courants.json.md) * **Exemple de résultat:** [departement-formsemestres-courants.json](samples/sample_departement-formsemestres_courants.json.md)
### **Semestres** ### **Semestres**
@ -273,7 +287,7 @@ par le serveur ScoDoc.
* **Méthode:** GET * **Méthode:** GET
* **Paramètres:** aucun * **Paramètres:** aucun
* ** Query string:** `etape_apo`, `annee_scolaire`, `dept_acronym`, `dept_id` * **Query string:** `etape_apo`, `annee_scolaire`, `dept_acronym`, `dept_id`
* **Route:** `/formsemestres/query * **Route:** `/formsemestres/query
* **Exemple d'utilisation:** `/api/formsemestres/query?etape_apo=V7HU1&annee_scolaire=2021` * **Exemple d'utilisation:** `/api/formsemestres/query?etape_apo=V7HU1&annee_scolaire=2021`
* **Résultat:** Données d'un formsemestre spécifié par son id. Si plusieurs paramètres sont donnés, c'est la conjonction (ET) des critères qui est recherchée. Si aucun formsemestre ne satisfait la requ^te, une liste vide est retournée * **Résultat:** Données d'un formsemestre spécifié par son id. Si plusieurs paramètres sont donnés, c'est la conjonction (ET) des critères qui est recherchée. Si aucun formsemestre ne satisfait la requ^te, une liste vide est retournée
@ -316,7 +330,7 @@ par le serveur ScoDoc.
* **Route:** `/formsemestres/etat_evals` * **Route:** `/formsemestres/etat_evals`
* **Exemple d'utilisation:** `/api/formsemestre/1/etat_evals` * **Exemple d'utilisation:** `/api/formsemestre/1/etat_evals`
* **Résultat:** informations sur les évaluations d'un formsemestre spécifié par son id. * **Résultat:** informations sur les évaluations d'un formsemestre spécifié par son id.
* **Exemple de résultat:** [formsemestre-etat-eval.json](samples/sample_formsemestre-etat-eval.json.md) * **Exemple de résultat:** [formsemestre-etat-eval.json](samples/sample_formsemestre-etat_evals.json.md)
#### **Résultats d'un formsemestre** #### **Résultats d'un formsemestre**
@ -325,7 +339,7 @@ par le serveur ScoDoc.
* **Query string: `format` * **Query string: `format`
* **Route:** `/formsemestres/resultats` * **Route:** `/formsemestres/resultats`
* **Exemple d'utilisation:** `/api/formsemestre/1/resultats` * **Exemple d'utilisation:** `/api/formsemestre/1/resultats`
* **Résultat:** [formsemestre-etat-eval.json](samples/sample_formsemestre-resultats.json.md) * **Résultat:** [formsemestre-resultats.json](samples/sample_formsemestre-resultats.json.md)
Récapitulatif par étudiant (état, groupe(s), moyennes d'UEs et de modules Récapitulatif par étudiant (état, groupe(s), moyennes d'UEs et de modules
pour un formsemestre spécifié par son id. pour un formsemestre spécifié par son id.
@ -336,17 +350,17 @@ mais pas JSON compliant à cause des _NaN_.
## Étudiants ## Étudiants
#### **`etudiants_courant`** #### **`etudiants_courants`**
* **Méthode:** GET * **Méthode:** GET
* **Routes:** * **Routes:**
* `/etudiants/courant` * `/etudiants/courants`
* `/etudiants/courant/long` * `/etudiants/courants/long`
* **Exemple d'utilisation:** `/api/etudiants/courant` * **Exemple d'utilisation:** `/api/etudiants/courants`
* **Résultat:** Liste des étudiants inscrits dans un formsemestre * **Résultat:** Liste des étudiants inscrits dans un formsemestre
actuellement en cours. Avec `/long`, donne tous les attributs de actuellement en cours. Avec `/long`, donne tous les attributs de
l'étudiants (plus lent). l'étudiants (plus lent).
* **Exemple de résultat:** [etudiants-courant.json](samples/sample_etudiants-courant.json.md) * **Exemple de résultat:** [etudiants-courants.json](samples/sample_etudiants-courants.json.md)
#### **`etudiant`** #### **`etudiant`**
@ -469,7 +483,7 @@ mais pas JSON compliant à cause des _NaN_.
* **Exemple d'utilisation:** `/ScoDoc/api/formations` * **Exemple d'utilisation:** `/ScoDoc/api/formations`
* **Résultat:** Retourne la liste de toutes les formations (tous * **Résultat:** Retourne la liste de toutes les formations (tous
départements) départements)
* **Exemple de résultat:** [formations.json](samples/sample_formations.json.md)
### Export programme ### Export programme
#### **`formation export`** #### **`formation export`**
@ -481,9 +495,7 @@ mais pas JSON compliant à cause des _NaN_.
* `/formation/export/<int:formation_id>/with_ids` * `/formation/export/<int:formation_id>/with_ids`
* **Exemple d'utilisation:** `/ScoDoc/api/formation/formation_export/1` * **Exemple d'utilisation:** `/ScoDoc/api/formation/formation_export/1`
* **Résultat:** Retourne la formation, avec UE, matières, modules * **Résultat:** Retourne la formation, avec UE, matières, modules
* **Exemple de résultat:** * **Exemple de résultat:** [formation-export.json](samples/sample_formation-export.json.md)
#### Référentiel de compétences [formation-export.json](samples/sample_formation-export.json.md)
#### **`referentiel_competences`** #### **`referentiel_competences`**
@ -492,7 +504,8 @@ mais pas JSON compliant à cause des _NaN_.
* **Routes:** `/formation/<int:formation_id>/referentiel_competences` * **Routes:** `/formation/<int:formation_id>/referentiel_competences`
* **Exemple d'utilisation:** `api/formation/1/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_) * **Résultat:** Le référentiel de compétences d'une formation donnée (json). (_pas toujours présent_)
* **Exemple de résultat:** [formation-referentiel_competences.json](samples/sample_formation-referentiel_competences.json.md)
*
XXX obtenir la liste des référentiels ? XXX obtenir la liste des référentiels ?
## Formsemestres ## Formsemestres
@ -591,179 +604,7 @@ des informations suivantes:
* **Routes:** `/formsemestre/<int:formsemestre_id>/bulletins` * **Routes:** `/formsemestre/<int:formsemestre_id>/bulletins`
* **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/1/bulletins` * **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/1/bulletins`
* **Résultat:** tous les bulletins d'un formsemestre. * **Résultat:** tous les bulletins d'un formsemestre.
* **Exemple de résultat:** * **[Exemple de résultat](samples/sample_formsemestre-bulletins.json.md)**
```
[
{
"version": "0",
"type": "BUT",
"date": "2022-04-27T07:18:16.450634Z",
"publie": true,
"etudiant": {
"civilite": "X",
"code_ine": "1",
"code_nip": "1",
"date_naissance": "",
"email": "SACHA.COSTA@example.com",
"emailperso": "",
"etudid": 1,
"nom": "COSTA",
"prenom": "SACHA",
"nomprenom": "Sacha COSTA",
"lieu_naissance": "",
"dept_naissance": "",
"nationalite": "",
"boursier": "",
"fiche_url": "/ScoDoc/TAPI/Scolarite/ficheEtud?etudid=1",
"photo_url": "/ScoDoc/TAPI/Scolarite/get_photo_image?etudid=1&size=small",
"id": 1,
"codepostaldomicile": "",
"paysdomicile": "",
"telephonemobile": "",
"typeadresse": "domicile",
"domicile": "",
"villedomicile": "",
"telephone": "",
"fax": "",
"description": ""
},
"formation": {
"id": 1,
"acronyme": "BUT R&amp;T",
"titre_officiel": "Bachelor technologique réseaux et télécommunications",
"titre": "BUT R&amp;T"
},
"formsemestre_id": 1,
"etat_inscription": "I",
"options": {
"show_abs": true,
"show_abs_modules": false,
"show_ects": true,
"show_codemodules": false,
"show_matieres": false,
"show_rangs": true,
"show_ue_rangs": true,
"show_mod_rangs": true,
"show_moypromo": false,
"show_minmax": false,
"show_minmax_mod": false,
"show_minmax_eval": false,
"show_coef": true,
"show_ue_cap_details": false,
"show_ue_cap_current": true,
"show_temporary": true,
"temporary_txt": "Provisoire",
"show_uevalid": true,
"show_date_inscr": true
},
"ressources": {
"R101": {
"id": 1,
"titre": "Initiation aux réseaux informatiques",
"code_apogee": null,
"url": "/ScoDoc/TAPI/Scolarite/Notes/moduleimpl_status?moduleimpl_id=1",
"moyenne": {},
"evaluations": [
{
"id": 1,
"description": "eval1",
"date": "2022-04-20",
"heure_debut": "08:00",
"heure_fin": "09:00",
"coef": "01.00",
"poids": {
"RT1.1": 1
},
"note": {
"value": "12.00",
"min": "00.00",
"max": "18.00",
"moy": "10.88"
},
"url": "/ScoDoc/TAPI/Scolarite/Notes/evaluation_listenotes?evaluation_id=1"
}
]
}
},
"saes": {
"SAE11": {
"id": 2,
"titre": "Se sensibiliser à l&apos;hygiène informatique et à la cybersécurité",
"code_apogee": null,
"url": "/ScoDoc/TAPI/Scolarite/Notes/moduleimpl_status?moduleimpl_id=2",
"moyenne": {},
"evaluations": []
}
},
"ues": {
"RT1.1": {
"id": 1,
"titre": "Administrer les réseaux et lInternet",
"numero": 1,
"type": 0,
"color": "#B80004",
"competence": null,
"moyenne": {
"value": "08.50",
"min": "06.00",
"max": "16.50",
"moy": "11.31",
"rang": "12",
"total": 16
},
"bonus": "00.00",
"malus": "00.00",
"capitalise": null,
"ressources": {
"R101": {
"id": 1,
"coef": 12,
"moyenne": "12.00"
}
},
"saes": {
"SAE11": {
"id": 2,
"coef": 16,
"moyenne": "~"
}
},
"ECTS": {
"acquis": 0,
"total": 12
}
},
"semestre": {
"etapes": [],
"date_debut": "2021-09-01",
"date_fin": "2022-08-31",
"annee_universitaire": "2021 - 2022",
"numero": 1,
"inscription": "",
"groupes": [],
"absences": {
"injustifie": 1,
"total": 2
},
"ECTS": {
"acquis": 0,
"total": 30
},
"notes": {
"value": "10.60",
"min": "02.40",
"moy": "11.05",
"max": "17.40"
},
"rang": {
"value": "10",
"total": 16
}
}
}
}
]
```
#### **etat_evals d'un formsemestre** #### **etat_evals d'un formsemestre**
@ -772,55 +613,7 @@ des informations suivantes:
* **Routes:** `/formsemestre/<int:formsemestre_id>/etat_evals` * **Routes:** `/formsemestre/<int:formsemestre_id>/etat_evals`
* **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/1/etat_evals` * **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/1/etat_evals`
* **Résultat:** Retourne les informations sur l'état des évaluations d'un semestre donné * **Résultat:** Retourne les informations sur l'état des évaluations d'un semestre donné
* **Exemple de résultat:** * **Exemple de résultat:** [formsemestre-etat_evals.json](samples/sample_formsemestre-etat_evals.json.md)
```
{
"RT1.1": [
{
"id": 1,
"titre": "Initiation aux réseaux informatiques",
"evaluations": [
{
"id": 1,
"description": null,
"datetime_epreuve": null,
"heure_fin": "09:00:00",
"comptee": "oui",
"inscrits": 16,
"manquantes": 0,
"ABS": 0,
"ATT": 0,
"EXC": 0,
"saisie_notes": {
"datetime_debut": "2021-09-11T00:00:00+02:00",
"datetime_fin": "2022-08-25T00:00:00+02:00",
"datetime_mediane": "2022-03-19T00:00:00+01:00"
}
},
{
"id": 22,
"description": null,
"datetime_epreuve": "2021-08-11T00:00:00+02:00",
"heure_fin": "08:00:00",
"comptee": "oui",
"inscrits": 16,
"manquantes": 0,
"ABS": 0,
"ATT": 0,
"EXC": 0,
"saisie_notes": {
"datetime_debut": "2021-09-11T00:00:00+02:00",
"datetime_fin": "2022-08-25T00:00:00+02:00",
"datetime_mediane": "2022-03-19T00:00:00+01:00"
}
},
]
},
]
}
```
#### **`jury`** (**non implémentée**) #### **`jury`** (**non implémentée**)
@ -843,66 +636,7 @@ des informations suivantes:
* **Routes:** `/formsemestre/<int:formsemestre_id>/programme` * **Routes:** `/formsemestre/<int:formsemestre_id>/programme`
* **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/1/programme` * **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/1/programme`
* **Résultat:** Retourne la liste des UEs, modules, ressources et SAE d'un semestre. * **Résultat:** Retourne la liste des UEs, modules, ressources et SAE d'un semestre.
* **Exemple de résultat:** * **Exemple de résultat:** [formsemestre-programme.json](samples/sample_formsemestre-programme.json.md)
```
{
"ues": [
{
"type": 0,
"formation_id": 1,
"ue_code": "UCOD11",
"id": 1,
"ects": 12.0,
"acronyme": "RT1.1",
"is_external": false,
"numero": 1,
"code_apogee": "",
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
"coefficient": 0.0,
"semestre_idx": 1,
"color": "#B80004",
"ue_id": 1
},
...
],
"ressources": [
{
"ens": [ 10, 18 ],
"formsemestre_id": 1,
"id": 15,
"module": {
"abbrev": "Programmer",
"code": "SAE15",
"code_apogee": "V7GOP",
"coefficient": 1.0,
"formation_id": 1,
"heures_cours": 0.0,
"heures_td": 0.0,
"heures_tp": 0.0,
"id": 15,
"matiere_id": 3,
"module_id": 15,
"module_type": 3,
"numero": 50,
"semestre_id": 1,
"titre": "Programmer en Python",
"ue_id": 3
},
"module_id": 15,
"moduleimpl_id": 15,
"responsable_id": 2
},
...
],
"saes": [
{
...
},
...
],
"modules" : [ ... les modules qui ne sont ni des SAEs ni des ressources ... ]
}
```
#### Module d'un formsemestre #### Module d'un formsemestre
@ -914,40 +648,10 @@ responsable et ses enseignants).
* **Méthode:** GET * **Méthode:** GET
* **Paramètres:** `moduleimpl_id` * **Paramètres:** `moduleimpl_id`
* **Routes:** `/formation/moduleimpl/<int:moduleimpl_id>` * **Routes:** `/moduleimpl/<int:moduleimpl_id>`
* **Exemple d'utilisation:** `/ScoDoc/api/formation/moduleimpl/1` * **Exemple d'utilisation:** `/ScoDoc/api/formation/moduleimpl/1`
* **Résultat:** Retourne la liste des moduleimpl * **Résultat:** Retourne la liste des moduleimpl
* **Exemple de résultat:** * **Exemple de résultat:** [moduleimpl.json](samples/sample_moduleimpl.json.md)
```
{
"id": 1,
"formsemestre_id": 1,
"computation_expr": null,
"module_id": 1,
"responsable_id": 2,
"moduleimpl_id": 1,
"ens": [],
"module": {
"heures_tp": 0,
"code_apogee": "",
"titre": "Initiation aux réseaux informatiques",
"coefficient": 1,
"module_type": 2,
"id": 1,
"ects": null,
"abbrev": "Init aux réseaux informatiques",
"ue_id": 1,
"code": "R101",
"formation_id": 1,
"heures_cours": 0,
"matiere_id": 1,
"heures_td": 0,
"semestre_id": 1,
"numero": 10,
"module_id": 1
}
}
```
### Groupes et partitions ### Groupes et partitions
@ -955,87 +659,159 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou
plusieurs partitions (types de groupes). Chaque partition est constituée plusieurs partitions (types de groupes). Chaque partition est constituée
d'un nombre quelconque de groupes d'étudiants. d'un nombre quelconque de groupes d'étudiants.
#### **`partitions`**
* **Méthode: GET**
* **Paramètres:** `formsemestre_id`
* **Routes:** `/formsemestre/<int:formsemestre_id>/partitions`
* **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/911/partitions`
* **Résultat:** La liste de toutes les partitions d'un formsemestre.
* **Exemple de résultat:** [formsemestre-partitions.json](samples/sample_formsemestre-partitions.json.md)
#### **`partition`** #### **`partition`**
* **Méthode: GET** * **Méthode: GET**
* **Paramètres:** `formsemestre_id` * **Paramètres:** `partition_id`
* **Routes:** `/partitions/<int:formsemestre_id>` * **Routes:** `/partition/<int:partition_id>`
* **Exemple d'utilisation:** `/ScoDoc/api/partition/48` * **Exemple d'utilisation:** `/ScoDoc/api/partition/1963`
* **Résultat:** La liste de toutes les partitions d'un formsemestre. * **Résultat:** La description d'une partition (y compris la liste de ses groupes).
* **Exemple de résultat:** * **Exemple de résultat:** [partition.json](samples/sample_partition.json.md)
```
[
{
"partition_id": 2,
"id": 2,
"formsemestre_id": 1,
"partition_name": "TD",
"numero": 1,
"bul_show_rank": false,
"show_in_lists": true
},
{
"partition_id": 1,
"id": 1,
"formsemestre_id": 1,
"partition_name": null,
"numero": 0,
"bul_show_rank": false,
"show_in_lists": true
}
]
```
#### **`groups`** #### **`partition-edit`**
* **Méthode: GET** * **Méthode: POST**
* **Paramètres:** `group_id`, `etat` * **Paramètres:** `partition_id`
* **Routes:** `/partitions/groups/<int:group_id>` ou `/partitions/groups/<int:group_id>/etat/<string:etat>` * **Data:** `{ partition_name : <string> }`
* **Exemple d'utilisation:** `/ScoDoc/api/partitions/groups/1` * **Routes:** `/partition/<int:partition_id>/edit`
* **Résultat:** Retourne la liste des étudiants dans un groupe. * **Exemple d'utilisation:** `/ScoDoc/api/partition/2047/edit`
* **Exemple de résultat:** >`{ "partition_name" : "PART4" }`
``` * **Résultat:** Renomme une partition
[ * **[Exemple de résultat](samples/sample_partition-edit.json.md)
{
"etudid": 10,
"id": 10,
"dept_id": 1,
"nom": "BOUTET",
"prenom": "Marguerite",
"nom_usuel": "",
"civilite": "F",
"date_naissance": null,
"lieu_naissance": null,
"dept_naissance": null,
"nationalite": null,
"statut": null,
"boursier": null,
"photo_filename": null,
"code_nip": "10",
"code_ine": "10",
"scodoc7_id": null,
"email": "MARGUERITE.BOUTET@example.com",
"emailperso": null,
"domicile": null,
"codepostaldomicile": null,
"villedomicile": null,
"paysdomicile": null,
"telephone": null,
"telephonemobile": null,
"fax": null,
"typeadresse": "domicile",
"description": null,
"group_id": 1,
"etat": "I",
"civilite_str": "Mme",
"nom_disp": "BOUTET",
"nomprenom": "Mme Marguerite BOUTET",
"ne": "e",
"email_default": "MARGUERITE.BOUTET@example.com"
}
]
```
#### **`partition-delete`**
* **Méthode: POST**
* **Paramètres:** `partition_id`
* **Routes:** `/partition/<int:partition_id>/delete`
* **Exemple d'utilisation:** `/ScoDoc/api/partition/2047/delete`
* **Résultat:** Supprime une partition.
* **[Exemple de résultat](samples/sample_partition-delete.json.md)
#### **`formsemestre-partition-create`**
* **Méthode: POST**
* **Paramètres:** `formsemestre_id`
* **Data:** `{ "partition_name" : <string> }`
* **Routes:** `/formsemestre/<int:formsemestre_id>/partition/create`
>`{ "partition_name" : "PART" }`
* **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/944/partition/create`
* **Résultat:** Crée une nouvelle partition dans un formsemestre.
* **[Exemple de résultat:](samples/sample_formsemestre-partition-create.json.md)**
#### **`formsemestre-partition-order`**
* **Méthode: POST**
* **Paramètres:** `formsemestre_id`
* **Data:** `[ <int:partition_id1>, <int:partition_id2>, ... ]`
* **Routes:** `/formsemestre/<int:formsemestre_id>/partition/order`
* **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/944/partition/order`
>`[ 2048, 2054 ]`
* **Résultat:** Spécifie l'ordre des partitions d'un formsemestre.
* **[Exemple de résultat:](samples/sample_formsemestre-partition-order.json.md)**
#### **`partition-groups-order`**
* **Méthode: POST**
* **Paramètres:** `partition_id`
* **Data:** `[ <int:group_id1>, <int:group_id2>, ... ]`
* **Routes:** `/partition/<int:partition_id>/groups/order`
* **Exemple d'utilisation:** `/ScoDoc/api/partition/1962/groups/order`
>`[ 4383, 4379, 4380, 4381, 4382, 4384 ]`
* **Résultat:** Spécifie l'ordre des groupes d'une partition.
* **[Exemple de résultat:](samples/sample_partition-groups-order.json.md)**
#### **`group-etudiants`**
* **Méthode: GET**
* **Paramètres:** `group_id`
* **Routes:** `/group/<int:group_id>/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/<int:group_id>/etudiants/query`
* **Exemple d'utilisation:** `/ScoDoc/api/group/1/etudiants/query?etat=I`
* **Résultat:** Retourne la liste des étudiants dans un groupe.
* **Exemple de résultat:** [group-etudiants-query.json](samples/sample_group-etudiants-query.json.md)
#### **`groups-set_etudiant`**
* **Méthode: POST**
* **Permission: `ScoEtudChangeGroups`***
* **Paramètres:** `group_id`, `etudid`
* **Routes:** `/group/<int:group_id>/set_etudiant/<int:etudid>`
* **Exemple d'utilisation:** `/ScoDoc/api/group/4085/set_etudiant/12108`
* **Résultat:** Affecte un étudiant dans un groupe.
* **[Exemple de résultat](samples/sample_group-set_etudiant.json.md)**
#### **`groups-remove_etudiant`**
* **Méthode: POST**
* **Permission: `ScoEtudChangeGroups`***
* **Paramètres:** `group_id`, `etudid`
* **Routes:** `/group/<int:group_id>/remove_etudiant/<int:etudid>`
* **Exemple d'utilisation:** `/ScoDoc/api/group/4085/remove_etudiant/12108`
* **Résultat:** Retire un étudiant d'un groupe.
* **[Exemple de résultat](samples/sample_group-remove_etudiant.json.md)**
#### **`partition-group-create`**
* **Méthode: POST**
* **Permission: `ScoEtudChangeGroups`***
* **Paramètres:** `partition_id`
* **Data:** `{ group_name : <string> }`
* **Routes:** `/partition/<int:partition_id>/create`
* **Exemple d'utilisation:** `/ScoDoc/api/partition/1962/create`
>`{ "group_name" : "A" }`
* **Résultat:** Crée un groupe dans une partition.
* **[Exemple de résultat](samples/sample_formsemestre-partition-create.json.md)**
#### **`partition-group-delete`**
* **Méthode: POST**
* **Permission: `ScoEtudChangeGroups`***
* **Paramètres:** `group_id`
* **Routes:** `/group/<int:group_id>/delete`
* **Exemple d'utilisation:** `/ScoDoc/api/group/4581/delete`
* **Résultat:** Supprime un groupe.
* **[Exemple de résultat](samples/sample_group-delete.json.md)**
#### **`partition-remove_etudiant`**
* **Méthode: POST**
* **Permission: `ScoEtudChangeGroups`***
* **Paramètres:** `partition_id`
* **Routes:** `/partition/<int:partition_id>/remove_etudiant/<int:etudid>`
* **Exemple d'utilisation:** `/ScoDoc/api/partition/1962/remove_etudiant/12107`
* **Résultat:** Reture un étudiant des groupes de la partition.
* **[Exemple de résultat](samples/sample_partition-remove_etudiant.json.md)**
#### **`group-edit`**
* **Méthode: POST**
* **Permission: `ScoEtudChangeGroups`***
* **Paramètres:** `group_id`
* **Data:** `{ group_name : <string> }`
* **Routes:** `/group/<int:group_id>/edit`
* **Exemple d'utilisation:** `/ScoDoc/api/group/4581/edit`
>`{ "group_name" : "nouveau" }`
* **Résultat:** Renomme un groupe.
* **[Exemple de résultat](samples/sample_group-edit.json.md)**
### Évaluations ### Évaluations

Binary file not shown.

View File

@ -1,129 +1,230 @@
### formsemestre-bulletins ### formsemestre-bulletins
`/api/formsemestre/1/bulletins` `/api/formsemestre/911/bulletins`
```json ```json
[ [
{ {
"type": "classic",
"version": "0", "version": "0",
"etudid": 9586, "type": "BUT",
"formsemestre_id": 829, "date": "2022-08-02T10:25:37.411626Z",
"date": "2022-07-25T14:44:03.305430",
"publie": true, "publie": true,
"etapes": [
"3RETAL"
],
"etape_apo": "3RETAL",
"etudiant": { "etudiant": {
"etudid": 9586, "civilite": "M",
"code_nip": "42021436", "code_ine": "0910036777K",
"code_ine": "081377224FD", "code_nip": "21701024",
"nom": "WUILMART", "date_naissance": "05/10/1999",
"prenom": "Jade", "dept_id": 6,
"civilite": "Mme", "dept_acronym": "INFO",
"photo_url": "/ScoDoc/INFO/Scolarite/get_photo_image?etudid=9586&amp;size=small", "email": "quentin.albert.etu@univ-lille.fr",
"email": "jade.wuilmart.etu@univ-lille.fr", "emailperso": "quentin.nether@gmail.com",
"emailperso": "jeufir@gmail.com", "etudid": 11958,
"sexe": "Mme" "nom": "ALBERT",
"prenom": "QUENTIN",
"nomprenom": "M. Quentin ALBERT",
"lieu_naissance": "ROUBAIX",
"dept_naissance": "",
"nationalite": "",
"boursier": "",
"fiche_url": "/ScoDoc/INFO/Scolarite/ficheEtud?etudid=11958",
"photo_url": "/ScoDoc/INFO/Scolarite/get_photo_image?etudid=11958&size=small",
"id": 11958,
"domicile": "25 Allée de la marbrerie",
"villedomicile": "TOURCOING",
"telephone": "0664126512",
"fax": "",
"description": "(infos admission)",
"codepostaldomicile": "59200",
"paysdomicile": "",
"telephonemobile": "0621096401",
"typeadresse": "domicile"
}, },
"note": { "formation": {
"value": "12.54", "id": 374,
"min": "01.55", "acronyme": "BUT Informatique",
"max": "15.30", "titre_officiel": "Licence professionnelle",
"moy": "12.80" "titre": "BUT Informatique"
},
"formsemestre_id": 944,
"etat_inscription": "I",
"options": {
"show_abs": false,
"show_abs_modules": false,
"show_ects": false,
"show_codemodules": false,
"show_matieres": false,
"show_rangs": true,
"show_ue_rangs": false,
"show_mod_rangs": false,
"show_moypromo": false,
"show_minmax": false,
"show_minmax_mod": false,
"show_minmax_eval": false,
"show_coef": true,
"show_ue_cap_details": false,
"show_ue_cap_current": true,
"show_temporary": false,
"temporary_txt": "PROVISOIRE",
"show_uevalid": true,
"show_date_inscr": false
},
"ressources": {
"R1.01": {
"id": 15278,
"titre": "Initiation au dév.",
"code_apogee": null,
"url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=15278",
"moyenne": {},
"evaluations": []
},
"R1.02": {
"id": 15275,
"titre": "Dev. interfaces web",
"code_apogee": null,
"url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=15275",
"moyenne": {},
"evaluations": []
},
...
},
"saes": {
"SAE1.01": {
"id": 15279,
"titre": "SAE1.01",
"code_apogee": null,
"url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=15279",
"moyenne": {},
"evaluations": []
},
"SAE1.02": {
"id": 15263,
"titre": "SAE1.02",
"code_apogee": null,
"url": "/ScoDoc/INFO/Scolarite/Notes/moduleimpl_status?moduleimpl_id=15263",
"moyenne": {},
"evaluations": []
},
...
},
"ues": {
"UE 1.1": {
"id": 2074,
"titre": "Réaliser un développement d&apos;application",
"numero": 1,
"type": 0,
"color": "#B80004",
"competence": null,
"moyenne": {
"value": "~",
"min": "~",
"max": "~",
"moy": "~",
"rang": "",
"total": 0,
"groupes": {}
},
"bonus": "00.00",
"malus": "00.00",
"capitalise": null,
"ressources": {
"R1.01": {
"id": 15278,
"coef": 0.42,
"moyenne": "~"
},
"R1.02": {
"id": 15275,
"coef": 0.12,
"moyenne": "~"
},
"R1.10": {
"id": 15266,
"coef": 0.06,
"moyenne": "~"
}
},
"saes": {
"SAE1.01": {
"id": 15279,
"coef": 0.4,
"moyenne": "~"
}
}
},
"UE 1.2": {
"id": 2081,
"titre": "Optimiser des applications informatiques",
"numero": 200,
"type": 0,
"color": "#F97B3D",
"competence": null,
"moyenne": {
"value": "~",
"min": "~",
"max": "~",
"moy": "~",
"rang": "",
"total": 0,
"groupes": {}
},
"bonus": "00.00",
"malus": "00.00",
"capitalise": null,
"ressources": {
"R1.01": {
"id": 15278,
"coef": 0.24,
"moyenne": "~"
},
"R1.03": {
"id": 15270,
"coef": 0.06,
"moyenne": "~"
},
"R1.06": {
"id": 15262,
"coef": 0.15,
"moyenne": "~"
},
"R1.07": {
"id": 15268,
"coef": 0.15,
"moyenne": "~"
}
},
"saes": {
"SAE1.02": {
"id": 15263,
"coef": 0.4,
"moyenne": "~"
}
}
},
...
},
"semestre": {
"etapes": [
"1BFQQU"
],
"date_debut": "2022-09-01",
"date_fin": "2022-12-31",
"annee_universitaire": "2022 - 2023",
"numero": 1,
"inscription": "",
"groupes": [],
"notes": {
"value": "00.00",
"min": "00.00",
"moy": "11.24",
"max": "14.06"
}, },
"rang": { "rang": {
"value": "9", "value": "10",
"ninscrits": 10 "total": 10,
}, "groupes": {}
"rang_group": [
{
"group_type": "cgir",
"group_name": "alt",
"value": "",
"ninscrits": 0
} }
],
"note_max": {
"value": 20
},
"bonus_sport_culture": {
"value": 0.0
},
"ue": [
{
"id": 1188,
"numero": "1",
"acronyme": "BCC1",
"titre": "Concevoir et maintenir une infrastructure réseau",
"note": {
"value": "11.65",
"min": "00.00",
"max": "16.10",
"moy": "12.52"
},
"rang": "8",
"effectif": 10,
"ects": " 6",
"code_apogee": "",
"module": [
{
"id": 13240,
"code": "rsxip",
"coefficient": 6.0,
"numero": 1,
"titre": "Technologies IP",
"abbrev": "None",
"note": {
"value": "11.65",
"moy": "12.52",
"max": "16.10",
"min": "00.00",
"nb_notes": 10,
"nb_missing": 0,
"nb_valid_evals": 4
},
"code_apogee": "",
"evaluation": [
{
"jour": "2021-11-09",
"heure_debut": "08:00:00",
"heure_fin": "08:00:00",
"coefficient": 1.5,
"evaluation_type": 0,
"evaluation_id": 24782,
"description": "DS Réseaux IP",
"note": "16.00"
},
...
]
} }
]
}, },
... ...
], ]
"ue_capitalisee": [],
"situation": "Inscrit le 06/09/2021. UE acquises: BCC1, BCC2, BCC3, BCC 4, BCC 5, BCC 6, BCC8. Décision jury: Validé Diplôme obtenu.",
"decision": {
"code": "ADM",
"etat": "I",
"date": "2022-07-11",
"compense_formsemestre_id": null
},
"decision_ue": [
{
"ue_id": 1188,
"numero": 1,
"acronyme": "BCC1",
"titre": "Concevoir et maintenir une infrastructure réseau",
"code": "ADM",
"ects": 6.0
},
...
],
"autorisation_inscription": [],
"appreciation": []
},
]
``` ```

View File

@ -0,0 +1,88 @@
### formsemestre-etat-eval
`/api/formsemestre/911/etat_evals`
```json
[
{
"id": 14530,
"responsable_id": 667,
"computation_expr": null,
"module_id": 8194,
"formsemestre_id": 911,
"moduleimpl_id": 14530,
"ens": [],
"module": {
"abbrev": "DEv. objets",
"formation_id": 333,
"code": "R 2.01",
"matiere_id": 3861,
"heures_cours": 0.0,
"semestre_id": 2,
"heures_td": 0.0,
"numero": 216,
"heures_tp": 0.0,
"code_apogee": "",
"titre": "Développement orienté objets",
"coefficient": 0.0,
"module_type": 2,
"id": 8194,
"ects": null,
"ue_id": 1772,
"parcours": [],
"app_critiques": [],
"module_id": 8194
},
"evaluations": [
{
"jour": "02/06/2022",
"heure_fin": "15h00",
"description": "DS (UE2.1)",
"coefficient": 3.0,
"publish_incomplete": true,
"numero": 2,
"moduleimpl_id": 14530,
"id": 25902,
"heure_debut": "13h30",
"note_max": 20.0,
"visibulletin": true,
"evaluation_type": 0,
"evaluation_id": 25902,
"date_debut": "2022-06-02T13:30:00",
"date_fin": "2022-06-02T15:00:00",
"poids": {
"1772": 1.0,
"1773": 0.0,
"1774": 0.0,
"1775": 0.0,
"1776": 0.0,
"1777": 0.0
},
"jouriso": "2022-06-02",
"duree": "1h30",
"descrheure": " de 13h30 à 15h00",
"matin": 0,
"apresmidi": 1,
"etat": {
"evaluation_id": 25902,
"nb_attente": 0,
"is_complete": true
},
"nb_inscrits": 117,
"nb_notes_manquantes": 0,
"nb_notes_abs": 16,
"nb_notes_att": 0,
"nb_notes_exc": 0,
"saisie_notes": {
"datetime_debut": "2022-06-14T16:11:16+02:00",
"datetime_fin": "2022-06-17T16:21:17+02:00",
"datetime_mediane": "2022-06-14T16:11:16+02:00"
}
},
...
]
},
...
]
```

View File

@ -0,0 +1,20 @@
### formsemestre-partition-create
`/api/formsemestre/944/partition/create`
> `Content-Type: application/json`
>
> `{ "group_name": "PART" }`
```json
{
"numero": 0,
"formsemestre_id": 944,
"show_in_lists": false,
"id": 2060,
"groups_editable": true,
"bul_show_rank": false,
"partition_name": "PART2",
"groups": {}
}
```

View File

@ -0,0 +1,40 @@
### formsemestre-partition-order
`/api/formsemestre/944/partition/create`
> `Content-Type: application/json`
>
> `[ 2059, 2047, 2060 ]`
```json
[
{
"formsemestre_id": 944,
"numero": 0,
"show_in_lists": false,
"id": 2059,
"partition_name": "PART",
"bul_show_rank": false,
"groups_editable": true
},
{
"formsemestre_id": 944,
"numero": 1,
"show_in_lists": true,
"id": 2047,
"partition_name": "PART4",
"bul_show_rank": false,
"groups_editable": true
},
{
"formsemestre_id": 944,
"numero": 2,
"show_in_lists": false,
"id": 2060,
"partition_name": "PART2",
"bul_show_rank": false,
"groups_editable": true
}
]
```

View File

@ -0,0 +1,11 @@
### partition-group-create
`/api/group/4581/delete`
```json
{
"OK": true
}
```

View File

@ -0,0 +1,25 @@
### partition-group-create
`/api/group/4581/edit`
> `Content-Type: application/json`
>
> `{ "group_name": "nouveau" }`
```json
{
"group_name": "a",
"partition_id": 1962,
"id": 4384,
"numero": null,
"partition": {
"formsemestre_id": 911,
"numero": 1960,
"show_in_lists": true,
"id": 1962,
"partition_name": "TD",
"bul_show_rank": false,
"groups_editable": true
}
}
```

View File

@ -0,0 +1,19 @@
### group-etudiants
`/api/group/4085/set_etudiants?etat=D`
```json
[
{
"id": 12071,
"code_nip": "24123901",
"code_ine": "081818679FE",
"dept_id": 6,
"nom": "HAMMO",
"nom_usuel": null,
"prenom": "NATHAN",
"civilite": "M"
}
]
```

View File

@ -0,0 +1,30 @@
### group-etudiants
`/api/group/4085/etudiants`
```json
[
{
"id": 9589,
"code_nip": "42435003",
"code_ine": "081574305FJ",
"dept_id": 6,
"nom": "AVENU",
"nom_usuel": null,
"prenom": "FLORINE",
"civilite": "F"
},
{
"id": 12019,
"code_nip": "21782690",
"code_ine": "0CPZUI046Q4",
"dept_id": 6,
"nom": "BOULVAR",
"nom_usuel": null,
"prenom": "ALEXANDRE",
"civilite": "M"
},
...
]
```

View File

@ -0,0 +1,11 @@
### group-remove_etudiant
`/api/group/4085/remove_etudiant/12107`
```json
{
"group_id": 4385,
"etudid": 12107
}
```

View File

@ -0,0 +1,11 @@
### group-set_etudiants
`/api/group/4085/set_etudiants/12107`
```json
{
"group_id": 4385,
"etudid": 12107
}
```

View File

@ -0,0 +1,9 @@
### partition-delete
`/api/partition/2047/delete`
```json
{
"OK": true
}
```

View File

@ -0,0 +1,20 @@
### partition-edit
`/api/partition/2047/edit`
> `Content-Type: application/json`
>
> `{ "partition_name": "PART4" }`
```json
{
"numero": 1,
"formsemestre_id": 944,
"show_in_lists": true,
"id": 2047,
"groups_editable": true,
"bul_show_rank": false,
"partition_name": "PART4",
"groups": {}
}
```

View File

@ -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"
}
}
}
```

View File

@ -0,0 +1,11 @@
### group-remove_etudiant
`/api/partition/1962/remove_etudiant/12107`
```json
{
"partition_id": 1962,
"etudid": 12107
}
```