Formattage doc API

This commit is contained in:
Emmanuel Viennet 2022-10-29 09:16:14 +02:00
parent 26096c09f3
commit 0291669255
3 changed files with 194 additions and 63 deletions

View File

@ -5,6 +5,7 @@ Documentation (Web) de ScoDoc, en [MkDocs](https://www.mkdocs.org/).
Version en ligne sur [scodoc.org](https://scodoc.org). Version en ligne sur [scodoc.org](https://scodoc.org).
## Historique ## Historique
L'ancienne documentation de ScoDoc7, hébergée au LIPN sur une plate-forme L'ancienne documentation de ScoDoc7, hébergée au LIPN sur une plate-forme
[Trac](https://trac.edgewall.org/), a été traduite en [Trac](https://trac.edgewall.org/), a été traduite en
[Markdown](https://www.markdownguide.org/basic-syntax/) en septembre [Markdown](https://www.markdownguide.org/basic-syntax/) en septembre
@ -12,6 +13,26 @@ L'ancienne documentation de ScoDoc7, hébergée au LIPN sur une plate-forme
Le site est depuis hébergé sur [https://scodoc.org]. Le site est depuis hébergé sur [https://scodoc.org].
## Installation mkdocs
Il est recommandé de créer un virtualenv:
```bash
python3.11 -m venv venv
source venv/bin/activate
```
puis d'y installer les composants suivants:
```bash
pip install mkdocs
pip install pymdown-extensions
pip install mkdocs-material
pip install mkdocs-plugin-inline-svg
```
Pour générer le site:
```bash
mkdocs build
```

View File

@ -309,6 +309,7 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
| _date_creation_ | string | date ISO | | _date_creation_ | string | date ISO |
#### **departements** #### **departements**
* **Méthode:** GET * **Méthode:** GET
* **Routes:** `/departements` * **Routes:** `/departements`
* **Exemple d'utilisation:** `/api/departements` * **Exemple d'utilisation:** `/api/departements`
@ -316,6 +317,7 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
* **Exemple de résultat:** [departements.json](samples/sample_departements.json.md) * **Exemple de résultat:** [departements.json](samples/sample_departements.json.md)
#### **departements-ids** #### **departements-ids**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Routes:** `/departements_ids` * **Routes:** `/departements_ids`
@ -324,6 +326,7 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
* **Exemple de résultat:** [departements-ids.json](samples/sample_departements-ids.json.md) * **Exemple de résultat:** [departements-ids.json](samples/sample_departements-ids.json.md)
#### **departement** #### **departement**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Routes:** * **Routes:**
@ -333,13 +336,16 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
* **Exemple de résultat:** [departement.json](samples/sample_departement.json.md) * **Exemple de résultat:** [departement.json](samples/sample_departement.json.md)
#### **`departement-create`** #### **`departement-create`**
* **Méthode: POST** * **Méthode: POST**
* **Permission: `ScoSuperAdmin`** * **Permission: `ScoSuperAdmin`**
* **Paramètres:** aucun * **Paramètres:** aucun
* **Data:** `{ "acronym": str, "visible":bool }` * **Data:** `{ "acronym": str, "visible":bool }`
* **Routes:** `/departement/create` * **Routes:** `/departement/create`
* **Exemple d'utilisation:** `/departement/create` * **Exemple d'utilisation:** `/departement/create`
>`{ "acronym": "QLIO", "visible": true }` >`{ "acronym": "QLIO", "visible": true }`
* **Résultat:** Crée un nouveau département. L'acronyme du département (RT, * **Résultat:** Crée un nouveau département. L'acronyme du département (RT,
GEII, ...) doit être unique (il est d'usage de le mettre en majuscules, mais GEII, ...) doit être unique (il est d'usage de le mettre en majuscules, mais
ce n'est pas obligatoire). Le paramètre optionnel `visible`indique si le ce n'est pas obligatoire). Le paramètre optionnel `visible`indique si le
@ -349,19 +355,23 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
* **Exemple de résultat:** [departements-create.json](samples/sample_departement-create.json.md) * **Exemple de résultat:** [departements-create.json](samples/sample_departement-create.json.md)
#### **`departement-edit`** #### **`departement-edit`**
* **Méthode: POST** * **Méthode: POST**
* **Permission: `ScoSuperAdmin`** * **Permission: `ScoSuperAdmin`**
* **Paramètres:** `dept_acronym` * **Paramètres:** `dept_acronym`
* **Data:** `{ "visible":bool }` * **Data:** `{ "visible":bool }`
* **Routes:** `/departement/<string:dept_acronym>/edit` * **Routes:** `/departement/<string:dept_acronym>/edit`
* **Exemple d'utilisation:** `/departement/edit` * **Exemple d'utilisation:** `/departement/edit`
>`{ "visible": false }` >`{ "visible": false }`
* **Résultat:** Modifie un département. Seul le champs `visible` peut être * **Résultat:** Modifie un département. Seul le champs `visible` peut être
modifié. L'acronyme ne peut pas être changé car il peut être mentionné dans de modifié. L'acronyme ne peut pas être changé car il peut être mentionné dans de
nombreux objets et documents, y compris à l'extérieur de ScoDoc. nombreux objets et documents, y compris à l'extérieur de ScoDoc.
* **Exemple de résultat:** [departements-edit.json](samples/sample_departement-edit.json.md) * **Exemple de résultat:** [departements-edit.json](samples/sample_departement-edit.json.md)
#### **`departement-delete`** #### **`departement-delete`**
* **Méthode: POST** * **Méthode: POST**
* **Permission: `ScoSuperAdmin`** * **Permission: `ScoSuperAdmin`**
* **Paramètres:** `dept_acronym` * **Paramètres:** `dept_acronym`
@ -372,6 +382,7 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
* **Exemple de résultat:** [departements-delete.json](samples/sample_departement-delete.json.md) * **Exemple de résultat:** [departements-delete.json](samples/sample_departement-delete.json.md)
### **API Etudiant** ### **API Etudiant**
#### Structure Etudiant #### Structure Etudiant
| attribut | type | commentaire | | attribut | type | commentaire |
@ -401,6 +412,7 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
| _statut_ | string | 'I', 'D' ou 'X' | | _statut_ | string | 'I', 'D' ou 'X' |
#### **`etudiants`** (supprimé) #### **`etudiants`** (supprimé)
* **Méthode:** GET * **Méthode:** GET
* **Routes:** `/etudiants * **Routes:** `/etudiants
* **Exemple d'utilisation:** `/api/etudiants` * **Exemple d'utilisation:** `/api/etudiants`
@ -409,6 +421,7 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
* **Exemple de résultat:** [etudiants.json] (samples/sample_etudiants.json.md) * **Exemple de résultat:** [etudiants.json] (samples/sample_etudiants.json.md)
#### **`etudiants-courants`** #### **`etudiants-courants`**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Routes:** * **Routes:**
@ -421,6 +434,7 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
* **Exemple de résultat:** [etudiants-courants.json](samples/sample_etudiants-courants.json.md) * **Exemple de résultat:** [etudiants-courants.json](samples/sample_etudiants-courants.json.md)
#### **`etudiants-clef`** #### **`etudiants-clef`**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Paramètres:** `etudid`, `nip`, `ine` * **Paramètres:** `etudid`, `nip`, `ine`
@ -435,6 +449,7 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
* **Exemple de résultat:** [etudiants-clef.json](samples/sample_etudiants-clef.json.md) * **Exemple de résultat:** [etudiants-clef.json](samples/sample_etudiants-clef.json.md)
#### **departement-etudiants** #### **departement-etudiants**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Paramètres:** `dept`, `dept_id` * **Paramètres:** `dept`, `dept_id`
@ -448,6 +463,7 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
* **Exemple de résultat:** [departement-etudiants.json](samples/sample_departement-etudiants.json.md) * **Exemple de résultat:** [departement-etudiants.json](samples/sample_departement-etudiants.json.md)
#### **`formsemestre-etudiants[-long][-query]`** #### **`formsemestre-etudiants[-long][-query]`**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Paramètres:** `formsemestre_id` * **Paramètres:** `formsemestre_id`
@ -469,6 +485,7 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
* [formsemestre-etudiants-query.json](samples/sample_formsemestre-etudiants-query.json.md) * [formsemestre-etudiants-query.json](samples/sample_formsemestre-etudiants-query.json.md)
#### **`group-etudiants[-query]`** #### **`group-etudiants[-query]`**
* **Méthode: GET** * **Méthode: GET**
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Paramètres:** `group_id` * **Paramètres:** `group_id`
@ -487,6 +504,7 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
* [group-etudiants-query.json](samples/sample_group-etudiants-query.json.md) * [group-etudiants-query.json](samples/sample_group-etudiants-query.json.md)
#### **`etudiant`** #### **`etudiant`**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Paramètres:** `etudid`, `nip`, `ine` * **Paramètres:** `etudid`, `nip`, `ine`
@ -530,6 +548,7 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
* **Exemple de résultat:** [formations.json](samples/sample_formations.json.md) * **Exemple de résultat:** [formations.json](samples/sample_formations.json.md)
#### **`formations_ids`** #### **`formations_ids`**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Routes:** `/formations_ids` * **Routes:** `/formations_ids`
@ -539,6 +558,7 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
* **Exemple de résultat:** [formations_ids.json](samples/sample_formations_ids.json.md) * **Exemple de résultat:** [formations_ids.json](samples/sample_formations_ids.json.md)
#### **`formation`** #### **`formation`**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Paramètres:** `formation_id` * **Paramètres:** `formation_id`
@ -552,6 +572,7 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
Les sessions de formation (qu'elles durent une année ou un mois) sont représentées par les `formsemestre`. Les sessions de formation (qu'elles durent une année ou un mois) sont représentées par les `formsemestre`.
#### Note sur les identifiants de formsemestre #### Note sur les identifiants de formsemestre
Le `session_id` peut être utilisé pour identifier de façon prévisible et Le `session_id` peut être utilisé pour identifier de façon prévisible et
(presque) unique un formsemestre dans un établissement, ce qui est utile (presque) unique un formsemestre dans un établissement, ce qui est utile
notamment pour interfacer ScoDoc à d'autres logiciels (par exemple gestion notamment pour interfacer ScoDoc à d'autres logiciels (par exemple gestion
@ -568,7 +589,6 @@ des informations suivantes:
une session appartenant à l'année scolaire 2014-2015, même si elle une session appartenant à l'année scolaire 2014-2015, même si elle
commence en mars 2015). commence en mars 2015).
**Exemple:** `INFO-DUT-FI-S1-2014` équivaut à un semestre S1 d'un DUT **Exemple:** `INFO-DUT-FI-S1-2014` équivaut à un semestre S1 d'un DUT
informatique de 2014 en formation initiale (FI). informatique de 2014 en formation initiale (FI).
@ -610,6 +630,7 @@ informatique de 2014 en formation initiale (FI).
| _**responsables**_ | int* | liste des ids des enseignants responsables | | _**responsables**_ | int* | liste des ids des enseignants responsables |
#### **departement-formsemestres_ids** #### **departement-formsemestres_ids**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Paramètres:** `dept` * **Paramètres:** `dept`
@ -622,6 +643,7 @@ informatique de 2014 en formation initiale (FI).
* **Exemple de résultat:** [departement-formsemestres_ids.json](samples/sample_departement-formsemestres_ids.json.md) * **Exemple de résultat:** [departement-formsemestres_ids.json](samples/sample_departement-formsemestres_ids.json.md)
#### **departement-formsemestres-courants** #### **departement-formsemestres-courants**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Paramètres:** `dept_id` * **Paramètres:** `dept_id`
@ -633,13 +655,14 @@ informatique de 2014 en formation initiale (FI).
* **Exemple de résultat:** [departement-formsemestres-courants.json](samples/sample_departement-formsemestres-courants.json.md) * **Exemple de résultat:** [departement-formsemestres-courants.json](samples/sample_departement-formsemestres-courants.json.md)
#### **formsemestres-query** #### **formsemestres-query**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Paramètres:** aucun * **Paramètres:** aucun
* **Query string:** `annee_scolaire`, `dept_acronym`, `dept_id`, `etape_apo`, `ine`, `nip` * **Query string:** `annee_scolaire`, `dept_acronym`, `dept_id`, `etape_apo`, `ine`, `nip`
* **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:** Description de formsemestres. Si plusieurs * **Résultat:** Description de formsemestresg. Si plusieurs
paramètres sont donnés, c'est la conjonction (ET) des critères qui est 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 recherchée. Si aucun formsemestre ne satisfait la requête, une liste vide est
retournée. Si `ine`ou `nip`sont spécifiés, cherche les formsemestres dans retournée. Si `ine`ou `nip`sont spécifiés, cherche les formsemestres dans
@ -647,6 +670,7 @@ informatique de 2014 en formation initiale (FI).
* **Exemple de résultat:** [formsemestres-query.json](samples/sample_formsemestres-query.json.md) * **Exemple de résultat:** [formsemestres-query.json](samples/sample_formsemestres-query.json.md)
#### **etudiant-formsemestres** #### **etudiant-formsemestres**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Paramètres:** `etudid`, `nip`, `ine` * **Paramètres:** `etudid`, `nip`, `ine`
@ -660,6 +684,7 @@ informatique de 2014 en formation initiale (FI).
* **Exemple de résultat:** [etudiant-formsemestres.json](samples/sample_etudiant-formsemestres.json.md) * **Exemple de résultat:** [etudiant-formsemestres.json](samples/sample_etudiant-formsemestres.json.md)
#### **formsemestre** #### **formsemestre**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Paramètres:** `formsemestre_id` * **Paramètres:** `formsemestre_id`
@ -671,39 +696,49 @@ informatique de 2014 en formation initiale (FI).
### **API Groupe** ### **API Groupe**
#### **`partition-group-create`** #### **`partition-group-create`**
* **Méthode: POST** * **Méthode: POST**
* **Permission: `ScoEtudChangeGroups`** * **Permission: `ScoEtudChangeGroups`**
* **Paramètres:** `partition_id` * **Paramètres:** `partition_id`
* **Data:** `{ group_name : <string> }` * **Data:** `{ group_name : <string> }`
* **Routes:** `/partition/<int:partition_id>/create` * **Routes:** `/partition/<int:partition_id>/create`
* **Exemple d'utilisation:** `/ScoDoc/api/partition/1962/create` * **Exemple d'utilisation:** `/ScoDoc/api/partition/1962/create`
>`{ "group_name" : "A" }` >`{ "group_name" : "A" }`
* **Résultat:** Crée un groupe dans une partition. * **Résultat:** Crée un groupe dans une partition.
* **Exemple de résultat:** [partition-create.json](samples/sample_formsemestre-partition-create.json.md) * **Exemple de résultat:** [partition-create.json](samples/sample_formsemestre-partition-create.json.md)
#### **`group-edit`** #### **`group-edit`**
* **Méthode: POST** * **Méthode: POST**
* **Permission: `ScoEtudChangeGroups`** * **Permission: `ScoEtudChangeGroups`**
* **Paramètres:** `group_id` * **Paramètres:** `group_id`
* **Data:** `{ group_name : <string> }` * **Data:** `{ group_name : <string> }`
* **Routes:** `/group/<int:group_id>/edit` * **Routes:** `/group/<int:group_id>/edit`
* **Exemple d'utilisation:** `/ScoDoc/api/group/4581/edit` * **Exemple d'utilisation:** `/ScoDoc/api/group/4581/edit`
>`{ "group_name" : "nouveau" }` >`{ "group_name" : "nouveau" }`
* **Résultat:** Renomme un groupe. * **Résultat:** Renomme un groupe.
* **Exemple de résultat:** [group-edit.json](samples/sample_group-edit.json.md) * **Exemple de résultat:** [group-edit.json](samples/sample_group-edit.json.md)
#### **`partition-groups-order`** #### **`partition-groups-order`**
* **Méthode: POST** * **Méthode: POST**
* **Permission: `ScoEtudChangeGroups`** * **Permission: `ScoEtudChangeGroups`**
* **Paramètres:** `partition_id` * **Paramètres:** `partition_id`
* **Data:** `[ <int:group_id1>, <int:group_id2>, ... ]` * **Data:** `[ <int:group_id1>, <int:group_id2>, ... ]`
* **Routes:** `/partition/<int:partition_id>/groups/order` * **Routes:** `/partition/<int:partition_id>/groups/order`
* **Exemple d'utilisation:** `/ScoDoc/api/partition/1962/groups/order` * **Exemple d'utilisation:** `/ScoDoc/api/partition/1962/groups/order`
>`[ 4383, 4379, 4380, 4381, 4382, 4384 ]` >`[ 4383, 4379, 4380, 4381, 4382, 4384 ]`
* **Résultat:** Spécifie l'ordre des groupes d'une partition. * **Résultat:** Spécifie l'ordre des groupes d'une partition.
* **Exemple de résultat:** [partition-groups-order.json](samples/sample_partition-groups-order.json.md) * **Exemple de résultat:** [partition-groups-order.json](samples/sample_partition-groups-order.json.md)
#### **`group-delete`** #### **`group-delete`**
* **Méthode: POST** * **Méthode: POST**
* **Permission: `ScoEtudChangeGroups`** * **Permission: `ScoEtudChangeGroups`**
* **Paramètres:** `group_id` * **Paramètres:** `group_id`
@ -713,6 +748,7 @@ informatique de 2014 en formation initiale (FI).
* **Exemple de résultat:** [group-delete.json](samples/sample_group-delete.json.md) * **Exemple de résultat:** [group-delete.json](samples/sample_group-delete.json.md)
#### **etudiant-formsemestre-groups** #### **etudiant-formsemestre-groups**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Paramètres:** `formsemestre_id`, `etudid`, `nip`, `ine` * **Paramètres:** `formsemestre_id`, `etudid`, `nip`, `ine`
@ -725,6 +761,7 @@ informatique de 2014 en formation initiale (FI).
* **Exemple de résultat:** [etudiant-formsemestres-groups.json](samples/sample_etudiant-formsemestre-groups.json.md) * **Exemple de résultat:** [etudiant-formsemestres-groups.json](samples/sample_etudiant-formsemestre-groups.json.md)
#### **`group-set_etudiant`** #### **`group-set_etudiant`**
* **Méthode: POST** * **Méthode: POST**
* **Permission: `ScoEtudChangeGroups`** * **Permission: `ScoEtudChangeGroups`**
* **Paramètres:** `group_id`, `etudid` * **Paramètres:** `group_id`, `etudid`
@ -734,6 +771,7 @@ informatique de 2014 en formation initiale (FI).
* **Exemple de résultat:** [groupes-set_etudiant.json](samples/sample_group-set_etudiant.json.md) * **Exemple de résultat:** [groupes-set_etudiant.json](samples/sample_group-set_etudiant.json.md)
#### **`group-remove_etudiant`** #### **`group-remove_etudiant`**
* **Méthode: POST** * **Méthode: POST**
* **Permission: `ScoEtudChangeGroups`** * **Permission: `ScoEtudChangeGroups`**
* **Paramètres:** `group_id`, `etudid` * **Paramètres:** `group_id`, `etudid`
@ -743,7 +781,9 @@ informatique de 2014 en formation initiale (FI).
* **Exemple de résultat:** [groupes-remove_etudiant.json](samples/sample_group-remove_etudiant.json.md) * **Exemple de résultat:** [groupes-remove_etudiant.json](samples/sample_group-remove_etudiant.json.md)
### **API Jury** ### **API Jury**
#### **`formsemestre-decisions_jury`** #### **`formsemestre-decisions_jury`**
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Méthode:** GET * **Méthode:** GET
* **Paramètres:** `formsemestre_id` * **Paramètres:** `formsemestre_id`
@ -772,6 +812,7 @@ responsable et ses enseignants). La liste des moduleimpl d'un formsemestre peut
| _**module**_ | Module | | | _**module**_ | Module | |
#### **`moduleimpl`** #### **`moduleimpl`**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Paramètres:** `moduleimpl_id` * **Paramètres:** `moduleimpl_id`
@ -781,6 +822,7 @@ responsable et ses enseignants). La liste des moduleimpl d'un formsemestre peut
* **Exemple de résultat:** [moduleimpl.json](samples/sample_moduleimpl.json.md) * **Exemple de résultat:** [moduleimpl.json](samples/sample_moduleimpl.json.md)
### **API Partition** ### **API Partition**
#### Structure Partition #### Structure Partition
L'ensemble des étudiants d'un semestre peut être réparti selon une ou L'ensemble des étudiants d'un semestre peut être réparti selon une ou
@ -799,6 +841,7 @@ d'un nombre quelconque de groupes d'étudiants.
| _**groups**_ | Group* | liste des groupes de la partition | | _**groups**_ | Group* | liste des groupes de la partition |
#### **`formsemestre-partitions`** #### **`formsemestre-partitions`**
* **Méthode: GET** * **Méthode: GET**
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Paramètres:** `formsemestre_id` * **Paramètres:** `formsemestre_id`
@ -808,6 +851,7 @@ d'un nombre quelconque de groupes d'étudiants.
* **Exemple de résultat:** [formsemestre-partitions.json](samples/sample_formsemestre-partitions.json.md) * **Exemple de résultat:** [formsemestre-partitions.json](samples/sample_formsemestre-partitions.json.md)
#### **`partition`** #### **`partition`**
* **Méthode: GET** * **Méthode: GET**
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Paramètres:** `partition_id` * **Paramètres:** `partition_id`
@ -817,39 +861,49 @@ d'un nombre quelconque de groupes d'étudiants.
* **Exemple de résultat:** [partition.json](samples/sample_partition.json.md) * **Exemple de résultat:** [partition.json](samples/sample_partition.json.md)
#### **`formsemestre-partition-create`** #### **`formsemestre-partition-create`**
* **Méthode: POST** * **Méthode: POST**
* **Permission: `ScoEtudsChangeGroups`** * **Permission: `ScoEtudsChangeGroups`**
* **Paramètres:** `formsemestre_id` * **Paramètres:** `formsemestre_id`
* **Data:** `{ "partition_name" : <string> }` * **Data:** `{ "partition_name" : <string> }`
* **Routes:** `/formsemestre/<int:formsemestre_id>/partition/create` * **Routes:** `/formsemestre/<int:formsemestre_id>/partition/create`
>`{ "partition_name" : "PART" }` >`{ "partition_name" : "PART" }`
* **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/944/partition/create` * **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/944/partition/create`
* **Résultat:** Crée une nouvelle partition dans un formsemestre. * **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) * **Exemple de résultat:** [formsemestre-partition-create.json](samples/sample_formsemestre-partition-create.json.md)
#### **`partition-edit`** #### **`partition-edit`**
* **Méthode: POST** * **Méthode: POST**
* **Permission: `ScoEtudsChangeGroups`** * **Permission: `ScoEtudsChangeGroups`**
* **Paramètres:** `partition_id` * **Paramètres:** `partition_id`
* **Data:** `{ partition_name : <string> }` * **Data:** `{ partition_name : <string> }`
* **Routes:** `/partition/<int:partition_id>/edit` * **Routes:** `/partition/<int:partition_id>/edit`
* **Exemple d'utilisation:** `/ScoDoc/api/partition/2047/edit` * **Exemple d'utilisation:** `/ScoDoc/api/partition/2047/edit`
>`{ "partition_name" : "PART4" }` >`{ "partition_name" : "PART4" }`
* **Résultat:** Renomme une partition * **Résultat:** Renomme une partition
* **Exemple de résultat:** [partition-edit.json](samples/sample_partition-edit.json.md) * **Exemple de résultat:** [partition-edit.json](samples/sample_partition-edit.json.md)
#### **`formsemestre-partitions-order`** #### **`formsemestre-partitions-order`**
* **Méthode: POST** * **Méthode: POST**
* **Permission: `ScoEtudsChangeGroups`** * **Permission: `ScoEtudsChangeGroups`**
* **Paramètres:** `formsemestre_id` * **Paramètres:** `formsemestre_id`
* **Data:** `[ <int:partition_id1>, <int:partition_id2>, ... ]` * **Data:** `[ <int:partition_id1>, <int:partition_id2>, ... ]`
* **Routes:** `/formsemestre/<int:formsemestre_id>/partitions/order` * **Routes:** `/formsemestre/<int:formsemestre_id>/partitions/order`
* **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/944/partitions/order` * **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/944/partitions/order`
>`[ 2048, 2054 ]` >`[ 2048, 2054 ]`
* **Résultat:** Spécifie l'ordre des partitions d'un formsemestre. * **Résultat:** Spécifie l'ordre des partitions d'un formsemestre.
* **Exemple de résultat:** [formsemestre-partitions-order.json](samples/sample_formsemestre-partitions-order.json.md) * **Exemple de résultat:** [formsemestre-partitions-order.json](samples/sample_formsemestre-partitions-order.json.md)
#### **`partition-delete`** #### **`partition-delete`**
* **Méthode: POST** * **Méthode: POST**
* **Permission: `ScoEtudsChangeGroups`** * **Permission: `ScoEtudsChangeGroups`**
* **Paramètres:** `partition_id` * **Paramètres:** `partition_id`
@ -859,6 +913,7 @@ d'un nombre quelconque de groupes d'étudiants.
* **Exemple de résultat:** [partition-delete.json](samples/sample_partition-delete.json.md) * **Exemple de résultat:** [partition-delete.json](samples/sample_partition-delete.json.md)
#### **`partition-remove_etudiant`** #### **`partition-remove_etudiant`**
* **Méthode: POST** * **Méthode: POST**
* **Permission: `ScoEtudsChangeGroups`** * **Permission: `ScoEtudsChangeGroups`**
* **Permission: `ScoEtudChangeGroups`** * **Permission: `ScoEtudChangeGroups`**
@ -876,6 +931,7 @@ utilisateur pourra être associé à un ou plusieurs rôles dans chaque départe
d'un autre). d'un autre).
#### **roles** #### **roles**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoUsersView`** * **Permission: `ScoUsersView`**
* **Routes:** `/roles` * **Routes:** `/roles`
@ -884,6 +940,7 @@ d'un autre).
* **Exemple de résultat:** [roles.json](samples/sample_roles.json.md) * **Exemple de résultat:** [roles.json](samples/sample_roles.json.md)
#### **role** #### **role**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoUsersView`** * **Permission: `ScoUsersView`**
* **Routes:** `/role/<str:role_name>` * **Routes:** `/role/<str:role_name>`
@ -892,6 +949,7 @@ d'un autre).
* **Exemple de résultat:** [role.json](samples/sample_role.json.md) * **Exemple de résultat:** [role.json](samples/sample_role.json.md)
#### **role-add_permission** #### **role-add_permission**
* **Méthode: POST** * **Méthode: POST**
* **Permission: `ScoSuperAdmin`** * **Permission: `ScoSuperAdmin`**
* **Routes:** `/role/<str:role_name>/add_permission/<str:perm_name>` * **Routes:** `/role/<str:role_name>/add_permission/<str:perm_name>`
@ -901,6 +959,7 @@ d'un autre).
* **Exemple de résultat:** [role-add_permission.json](samples/sample_role-add_permission.json.md) * **Exemple de résultat:** [role-add_permission.json](samples/sample_role-add_permission.json.md)
#### **role-remove_permission** #### **role-remove_permission**
* **Méthode: POST** * **Méthode: POST**
* **Permission: `ScoSuperAdmin`** * **Permission: `ScoSuperAdmin`**
* **Routes:** `/role/<str:role_name>/remove_permission/<str:perm_name>` * **Routes:** `/role/<str:role_name>/remove_permission/<str:perm_name>`
@ -910,16 +969,20 @@ d'un autre).
* **Exemple de résultat:** [role-remove_permission.json](samples/sample_role-remove_permission.json.md) * **Exemple de résultat:** [role-remove_permission.json](samples/sample_role-remove_permission.json.md)
#### **role-create** #### **role-create**
* **Méthode: POST** * **Méthode: POST**
* **Permission: `ScoSuperAdmin`** * **Permission: `ScoSuperAdmin`**
* **Data:** `{ "permissions" : [ permission, ... ] }` * **Data:** `{ "permissions" : [ permission, ... ] }`
* **Routes:** `/role/create/<str:role_name>` * **Routes:** `/role/create/<str:role_name>`
* **Exemple d'utilisation:** `/role/create/LaveurDecarreaux` * **Exemple d'utilisation:** `/role/create/LaveurDecarreaux`
> `{ "permissions" : [ 'ScoView', 'ScoUsersView' ] }` > `{ "permissions" : [ 'ScoView', 'ScoUsersView' ] }`
* **Résultat:** Crée un nouveau rôle, avec les permissions indiquées. * **Résultat:** Crée un nouveau rôle, avec les permissions indiquées.
* **Exemple de résultat:** [role-create.json](samples/sample_role-create.json.md) * **Exemple de résultat:** [role-create.json](samples/sample_role-create.json.md)
#### **role-delete** #### **role-delete**
* **Méthode: POST** * **Méthode: POST**
* **Permission: `ScoSuperAdmin`** * **Permission: `ScoSuperAdmin`**
* **Routes:** `/role/<str:role_name>/delete` * **Routes:** `/role/<str:role_name>/delete`
@ -928,17 +991,22 @@ d'un autre).
* **Exemple de résultat:** [role-delete.json](samples/sample_role-delete.json.md) * **Exemple de résultat:** [role-delete.json](samples/sample_role-delete.json.md)
#### **role-edit** #### **role-edit**
* **Méthode: POST** * **Méthode: POST**
* **Permission: `ScoSuperAdmin`** * **Permission: `ScoSuperAdmin`**
* **Data:** `{ "permissions" : [ permission, ... ] }` * **Data:** `{ "permissions" : [ permission, ... ] }`
* **Routes:** `/role/edit/<str:role_name>` * **Routes:** `/role/edit/<str:role_name>`
* **Exemple d'utilisation:** `/role/create/LaveurDecarreaux` * **Exemple d'utilisation:** `/role/create/LaveurDecarreaux`
> `{ "name" : "LaveurDeVitres", "permissions" : [ 'ScoView' ] }` > `{ "name" : "LaveurDeVitres", "permissions" : [ 'ScoView' ] }`
* **Résultat:** Modifie le rôle: son nom et/ou ses permissions. * **Résultat:** Modifie le rôle: son nom et/ou ses permissions.
* **Exemple de résultat:** [role-edit.json](samples/sample_role-edit.json.md) * **Exemple de résultat:** [role-edit.json](samples/sample_role-edit.json.md)
### **API User, Permissions** ### **API User, Permissions**
#### **user** #### **user**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoUsersView`** * **Permission: `ScoUsersView`**
* **Paramètres:** `user_id` * **Paramètres:** `user_id`
@ -948,9 +1016,11 @@ d'un autre).
* **Exemple de résultat:** [user.json](samples/sample_user.json.md) * **Exemple de résultat:** [user.json](samples/sample_user.json.md)
#### **`user-create`** #### **`user-create`**
* **Méthode: POST** * **Méthode: POST**
* **Permission: `ScoUsersAdmin`** * **Permission: `ScoUsersAdmin`**
* **Data:** * **Data:**
```json ```json
{ {
"user_name": str, "user_name": str,
@ -960,6 +1030,7 @@ d'un autre).
"active":bool (default True) "active":bool (default True)
} }
``` ```
* **Routes:** `/user/create` * **Routes:** `/user/create`
* **Résultat:** Crée un nouvel utilisateur. `user_name`est le login, unique et * **Résultat:** Crée un nouvel utilisateur. `user_name`est le login, unique et
non modifiable. L'utilisateur est normalement rattaché à un département, sauf non modifiable. L'utilisateur est normalement rattaché à un département, sauf
@ -967,19 +1038,24 @@ d'un autre).
* **Exemple de résultat:** [user-create.json](samples/sample_user-create.json.md) * **Exemple de résultat:** [user-create.json](samples/sample_user-create.json.md)
#### **`users-query`** #### **`users-query`**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoUsersView`** * **Permission: `ScoUsersView`**
* **Routes:** * **Routes:**
* `/users/query?departement=dept_acronym&active=1&starts_with=<str:nom>` * `/users/query?departement=dept_acronym&active=1&starts_with=<str:nom>`
* **Résultat:** Liste d'utilisateurs, filtrés par département, statut, début de * **Résultat:** Liste d'utilisateurs, filtrés par département, statut, début de
nom (paramètres tous optionnels). Seuls les utilisateurs que l'on a la nom (paramètres tous optionnels). Seuls les utilisateurs que l'on a la
permission de voir sont listés. permission de voir sont listés.
* **Exemple de résultat:** [users-query.json](samples/sample_users-query.json.md) * **Exemple de résultat:** [users-query.json](samples/sample_users-query.json.md)
#### **`user-edit`** #### **`user-edit`**
* **Méthode: POST** * **Méthode: POST**
* **Permission: `ScoUsersAdmin`** * **Permission: `ScoUsersAdmin`**
* **Data:** * **Data:**
```json ```json
{ {
"dept": str or null, "dept": str or null,
@ -988,21 +1064,24 @@ d'un autre).
"active":bool (default True) "active":bool (default True)
} }
``` ```
* **Routes:** `/user/<int:uid>/edit` * **Routes:** `/user/<int:uid>/edit`
* **Résultat:** Modifie l'utilisateur d'UID indiqué. * **Résultat:** Modifie l'utilisateur d'UID indiqué.
* **Exemple de résultat:** [user-edit.json](samples/sample_user-edit.json.md) * **Exemple de résultat:** [user-edit.json](samples/sample_user-edit.json.md)
#### **`user-password`** #### **`user-password`**
* **Méthode: POST** * **Méthode: POST**
* **Permission: `ScoUsersAdmin`** * **Permission: `ScoUsersAdmin`**
* **Data:** `{ "password": str }` * **Data:** `{ "password": str }`
* **Routes:** `/user/<int:uid>/password` * **Routes:** `/user/<int:uid>/password`
* **Exemple d'utilisation:** `/user/3/password` * **Exemple d'utilisation:** `/user/3/password`
>`{ "password": "averycomplicatedpassaword" } >`{ "password": "averycomplicatedpassaword" }
* **Résultat:** Modifie le mot de passe de l'utilisateur désigné par son UID. * **Résultat:** Modifie le mot de passe de l'utilisateur désigné par son UID.
L'opération peut être rejetée si le mot de passe ne satisfait pas les conditions requises (trop simple par exemple), avec le retour suivant: L'opération peut être rejetée si le mot de passe ne satisfait pas les conditions requises (trop simple par exemple), avec le retour suivant:
>
> ```json > ```json
{ {
"error": "Bad Request", "error": "Bad Request",
@ -1014,6 +1093,7 @@ d'un autre).
* **Exemple de résultat:** [user-password.json](samples/sample_user-password.json.md) * **Exemple de résultat:** [user-password.json](samples/sample_user-password.json.md)
#### **`user-role-add`** #### **`user-role-add`**
* **Méthode: POST** * **Méthode: POST**
* **Permission: `ScoSuperAdmin`** * **Permission: `ScoSuperAdmin`**
* **Routes:** `/user/<int:uid>/role/<str:role_name>/add[/departement/<string:dept_acronym>]` * **Routes:** `/user/<int:uid>/role/<str:role_name>/add[/departement/<string:dept_acronym>]`
@ -1022,6 +1102,7 @@ d'un autre).
* **Exemple de résultat:** [user-role-add.json](samples/sample_user-role-add.json.md) * **Exemple de résultat:** [user-role-add.json](samples/sample_user-role-add.json.md)
#### **`user-role-remove`** #### **`user-role-remove`**
* **Méthode: POST** * **Méthode: POST**
* **Permission: `ScoUsersAdmin`** * **Permission: `ScoUsersAdmin`**
* **Routes:** `/user/<int:uid>/role/<str:role_name>/remove[/departement/<string:dept_acronym>]` * **Routes:** `/user/<int:uid>/role/<str:role_name>/remove[/departement/<string:dept_acronym>]`
@ -1029,6 +1110,7 @@ d'un autre).
* **Exemple de résultat:** [user-role-remove.json](samples/sample_user-role-remove.json.md) * **Exemple de résultat:** [user-role-remove.json](samples/sample_user-role-remove.json.md)
#### **`permissions`** #### **`permissions`**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoUsersView`** * **Permission: `ScoUsersView`**
* **Routes:** `/permissions` * **Routes:** `/permissions`
@ -1038,7 +1120,9 @@ d'un autre).
* **Exemple de résultat:** [permissions.json](samples/sample_permissions.json.md) * **Exemple de résultat:** [permissions.json](samples/sample_permissions.json.md)
### ** API Bulletin, Evaluations, Notes** ### ** API Bulletin, Evaluations, Notes**
#### **formsemestre-bulletins** #### **formsemestre-bulletins**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Paramètres:** `formsemestre_id` * **Paramètres:** `formsemestre_id`
@ -1048,10 +1132,11 @@ d'un autre).
* **Exemple de résultat:** [formsemestre-bulletins.json](samples/sample_formsemestre-bulletins.json.md) * **Exemple de résultat:** [formsemestre-bulletins.json](samples/sample_formsemestre-bulletins.json.md)
#### **etudiant-formsemestre-bulletin** #### **etudiant-formsemestre-bulletin**
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.
Par défaut les valeurs numériques sont formattées en chaînes. Si format=raw, valeurs numériques 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_. mais pas JSON compliant à cause des `NaN`.
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoView`** * **Permission: `ScoView`**
@ -1063,26 +1148,33 @@ mais pas JSON compliant à cause des _NaN_.
ou `/etudiant/ine/<string:ine>/formsemestre/<int:formsemestre_id>/bulletin[/short][/pdf]` ou `/etudiant/ine/<string:ine>/formsemestre/<int:formsemestre_id>/bulletin[/short][/pdf]`
* **Exemple d'utilisation:** `/etudiant/nip/1/formsemestre/1/bulletin` * **Exemple d'utilisation:** `/etudiant/nip/1/formsemestre/1/bulletin`
* **Résultat:** Bulletin de l'étudiant dans le formsemestre. * **Résultat:** Bulletin de l'étudiant dans le formsemestre.
Deux types de variantes possibles: Deux variantes possibles:
* versions `long` et `short` (`long`par défaut, ajoutez `/short` pour la version plus courte). * 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) * 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) * **Exemple de résultat:** [etudiant-formsemestre-bulletin.json](samples/sample_etudiant-formsemestre-bulletin.json.md)
#### **formsemestre-programme** #### **formsemestre-programme**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Paramètres:** `dept`, `formsemestre_id` * **Paramètres:** `dept`, `formsemestre_id`
* **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 struture d'un formsemestre sous 5 entrées d'un dictionnaire: * **Résultat:** Retourne la struture d'un formsemestre sous 5 entrées d'un dictionnaire:
* **`ues`**: liste des UEs, * **`ues`**: liste des UEs,
* **`ressources`**: liste des ressources (BUT), * **`ressources`**: liste des ressources (BUT),
* **`saes`**: liste des saes (BUT), * **`saes`**: liste des saes (BUT),
* **`modules`**: liste des modules classiques (DUT ou sport/culture) * **`modules`**: liste des modules classiques (DUT ou sport/culture)
* **`malus`**: listes des modules de type bonus/malus. * **`malus`**: listes des modules de type bonus/malus.
* **Exemple de résultat:** [formsemestre-programme.json](samples/sample_formsemestre-programme.json.md) * **Exemple de résultat:** [formsemestre-programme.json](samples/sample_formsemestre-programme.json.md)
#### **formsemestre-resultats** #### **formsemestre-resultats**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Paramètres:** `formsemestre_id` * **Paramètres:** `formsemestre_id`
@ -1094,11 +1186,12 @@ mais pas JSON compliant à cause des _NaN_.
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.
Par défaut les valeurs numériques sont formatées en chaînes. Si format=raw, Par défaut les valeurs numériques sont formatées en chaînes. Si format=raw,
valeurs numériques mais pas JSON compliant à cause des _NaN_. valeurs numériques mais pas JSON compliant à cause des `NaN`.
* **Exemple de résultat:** * **Exemple de résultat:**
#### **`moduleimpl-evaluations`** #### **`moduleimpl-evaluations`**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Paramètres:** `moduleimpl_id` * **Paramètres:** `moduleimpl_id`
@ -1109,6 +1202,7 @@ valeurs numériques mais pas JSON compliant à cause des _NaN_.
* **Exemple de résultat:** [moduleimpl-evaluations.json](samples/sample_moduleimpl-evaluations.json.md) * **Exemple de résultat:** [moduleimpl-evaluations.json](samples/sample_moduleimpl-evaluations.json.md)
#### **`evaluations-notes`** #### **`evaluations-notes`**
* **Méthode**: GET * **Méthode**: GET
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Paramètres**: `evaluation_id` * **Paramètres**: `evaluation_id`
@ -1120,6 +1214,7 @@ valeurs numériques mais pas JSON compliant à cause des _NaN_.
* **Exemple de résultat:** [evaluation-notes.json](samples/sample_evaluation-notes.json.md) * **Exemple de résultat:** [evaluation-notes.json](samples/sample_evaluation-notes.json.md)
#### **formsemestre-etat_evals** #### **formsemestre-etat_evals**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Paramètres:** `formsemestre_id` * **Paramètres:** `formsemestre_id`
@ -1131,6 +1226,7 @@ valeurs numériques mais pas JSON compliant à cause des _NaN_.
### **API Export, Référentiel** ### **API Export, Référentiel**
#### **`formation-export`** #### **`formation-export`**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Paramètres:** `formation_id`, `export_ids` (False par défaut. Ajouter `/with_ids` pour le passer à True) * **Paramètres:** `formation_id`, `export_ids` (False par défaut. Ajouter `/with_ids` pour le passer à True)
@ -1142,16 +1238,19 @@ valeurs numériques mais pas JSON compliant à cause des _NaN_.
* **Exemple de résultat:** [formation-export.json](samples/sample_formation-export.json.md) * **Exemple de résultat:** [formation-export.json](samples/sample_formation-export.json.md)
#### **`formation-referentiel_competences`** #### **`formation-referentiel_competences`**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Paramètres:** `formation_id` * **Paramètres:** `formation_id`
* **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) * **Exemple de résultat:** [formation-referentiel_competences.json](samples/sample_formation-referentiel_competences.json.md)
### **API Logos** ### **API Logos**
#### **`logos`** #### **`logos`**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoSuperAdmin`** * **Permission: `ScoSuperAdmin`**
* **Paramètres :** Aucun * **Paramètres :** Aucun
@ -1161,6 +1260,7 @@ valeurs numériques mais pas JSON compliant à cause des _NaN_.
* **Exemple de résultat:** [logos.json](samples/sample_logos.json.md) * **Exemple de résultat:** [logos.json](samples/sample_logos.json.md)
#### **`logo`** #### **`logo`**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoSuperAdmin`** * **Permission: `ScoSuperAdmin`**
* **Paramètres :** Aucun * **Paramètres :** Aucun
@ -1170,19 +1270,25 @@ valeurs numériques mais pas JSON compliant à cause des _NaN_.
* **Exemple de résultat:** [logo.json](samples/sample_logo.json.md) * **Exemple de résultat:** [logo.json](samples/sample_logo.json.md)
#### **`departement-logos`** #### **`departement-logos`**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoSuperAdmin`** * **Permission: `ScoSuperAdmin`**
* **Paramètres:** Aucun * **Paramètres:** Aucun
* **Route :** * **Route :**
* `/departement/<string:dept>/logos` * `/departement/<string:dept>/logos`
* `/departement/id/<int:departement_id>/logos` * `/departement/id/<int:departement_id>/logos`
* **Exemple d'utilisation :** * **Exemple d'utilisation :**
* `/departement/<string:dept>/logos` * `/departement/<string:dept>/logos`
* `/departement/id/<int:departement_id>/logos` * `/departement/id/<int:departement_id>/logos`
* **Résultat :** Liste des noms des logos définis pour le département visé qui peut être désigné par son id ou par son acronyme (selon la forme de la route). * **Résultat :** Liste des noms des logos définis pour le département visé qui peut être désigné par son id ou par son acronyme (selon la forme de la route).
* **Exemple de résultat:** [departement-logos.json](samples/sample_departement-logos.json.md) * **Exemple de résultat:** [departement-logos.json](samples/sample_departement-logos.json.md)
#### **`departement-logo`** #### **`departement-logo`**
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoSuperAdmin`** * **Permission: `ScoSuperAdmin`**
* **Paramètres :** Aucun * **Paramètres :** Aucun
@ -1190,14 +1296,17 @@ valeurs numériques mais pas JSON compliant à cause des _NaN_.
* `/departement/<string:dept>/logo/<string:nom>` * `/departement/<string:dept>/logo/<string:nom>`
* `/departement/id/<int:departement_id>/logo/<string:nom>` * `/departement/id/<int:departement_id>/logo/<string:nom>`
* **Exemple d'utilisation:** * **Exemple d'utilisation:**
* `/ScoDoc/api/departement/MMI/logo/header` * `/ScoDoc/api/departement/MMI/logo/header`
* `/ScoDoc/api/departement/id/3/logo/header` * `/ScoDoc/api/departement/id/3/logo/header`
* **Résultat :** l'image (format png ou jpg) * **Résultat :** l'image (format png ou jpg)
* **Exemple de résultat:** [departement-logo.json](samples/sample_departement-logo.json.md) * **Exemple de résultat:** [departement-logo.json](samples/sample_departement-logo.json.md)
------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------
### En savoir plus ### En savoir plus
Voir exemples d'utilisation de l'API en Python, dans `tests/api/`. Voir exemples d'utilisation de l'API en Python, dans `tests/api/`.
## Fonctions de l'API ScoDoc 7 portées en ScoDoc 9 ## Fonctions de l'API ScoDoc 7 portées en ScoDoc 9
@ -1211,19 +1320,20 @@ disparaitront en juillet 2022.
Certaines ont plusieurs "routes" (URl), car ScoDoc 7 tolérait divers accès. Certaines ont plusieurs "routes" (URl), car ScoDoc 7 tolérait divers accès.
- `Absences/XMLgetBilletsEtud` (deviendra `api/absences/billets/etud/ etudid>`) * `Absences/XMLgetBilletsEtud` (deviendra `api/absences/billets/etud/ etudid>`)
- `Absences/AddBilletAbsence` (deviendra `api/absences/billet/add`) * `Absences/AddBilletAbsence` (deviendra `api/absences/billet/add`)
- `Absences/XMLgetAbsEtud` (deviendra `api/absences/ etudid>`, en json) * `Absences/XMLgetAbsEtud` (deviendra `api/absences/ etudid>`, en json)
- `Notes/evaluation_listenotes` (non existante en ScoDoc9, trop complexe) * `Notes/evaluation_listenotes` (non existante en ScoDoc9, trop complexe)
- `Notes/formsemestre_id` (deviendra `api/formsemestre`) * `Notes/formsemestre_id` (deviendra `api/formsemestre`)
- `Notes/formsemestre_bulletinetud` (deviendra `api/etud/<etudid>/bul/<formsemestre_id>`) * `Notes/formsemestre_bulletinetud` (deviendra `api/etud/<etudid>/bul/<formsemestre_id>`)
- `Notes/XMLgetFormsemestres` (non existante en ScoDoc9, redondant avec `api/formsemestre` ?) * `Notes/XMLgetFormsemestres` (non existante en ScoDoc9, redondant avec `api/formsemestre` ?)
- `etud_info` ou `XMLgetEtudInfos` ou `Absences/XMLgetEtudInfos` ou `Notes/XMLgetEtudInfos` (deviendra `/api/etud/<etudid>`) * `etud_info` ou `XMLgetEtudInfos` ou `Absences/XMLgetEtudInfos` ou `Notes/XMLgetEtudInfos` (deviendra `/api/etud/<etudid>`)
- `groups_view` (deviendra `groups`) * `groups_view` (deviendra `groups`)
Les routes ci-dessus s'entendent à partir de l'URL de base de votre ScoDoc, c'est Les routes ci-dessus s'entendent à partir de l'URL de base de votre ScoDoc, c'est
à dire `https://votre.site.fr/ScoDoc/<dept>/Scolarite/`, et répondent en GET et à dire `https://votre.site.fr/ScoDoc/<dept>/Scolarite/`, et répondent en GET et
en POST. en POST.
Note: Note:
- `Absences/listeBillets` est un formulaire et ne fait pas partie de l'API. - `Absences/listeBillets` est un formulaire et ne fait pas partie de l'API.

View File

@ -11,10 +11,10 @@ fi
# --- Build # --- Build
if [ "$1" = "-b" ] if [ "$1" = "-b" ]
then then
if [ "${CONDA_DEFAULT_ENV}" != "mkdocs" ] if ! command -v mkdocs &> /dev/null
then then
echo "Please active mkdocs :" echo "Please active mkdocs :"
echo " conda activate mkdocs" echo " source venv/bin/activate"
exit 1 exit 1
fi fi
mkdocs build mkdocs build