forked from ScoDoc/DocScoDoc
Formattage doc API
This commit is contained in:
parent
d2becdc962
commit
4f76da6a29
21
README.md
21
README.md
@ -5,6 +5,7 @@ Documentation (Web) de ScoDoc, en [MkDocs](https://www.mkdocs.org/).
|
||||
Version en ligne sur [scodoc.org](https://scodoc.org).
|
||||
|
||||
## Historique
|
||||
|
||||
L'ancienne documentation de ScoDoc7, hébergée au LIPN sur une plate-forme
|
||||
[Trac](https://trac.edgewall.org/), a été traduite en
|
||||
[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].
|
||||
|
||||
## 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
|
||||
```
|
||||
|
@ -186,9 +186,9 @@ par le serveur ScoDoc.
|
||||
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 objet n'est
|
||||
trouvé, retourne une collection vide.
|
||||
* 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 objet 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 dans la base car un étudiant de même
|
||||
@ -309,6 +309,7 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
|
||||
| _date_creation_ | string | date ISO |
|
||||
|
||||
#### **departements**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Routes:** `/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)
|
||||
|
||||
#### **departements-ids**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoView`**
|
||||
* **Routes:** `/departements_ids`
|
||||
@ -324,22 +326,26 @@ 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)
|
||||
|
||||
#### **departement**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoView`**
|
||||
* **Routes:**
|
||||
* `/departement/id/<int:dept_id>`
|
||||
* `/departement/<string:dept>`
|
||||
* `/departement/id/<int:dept_id>`
|
||||
* `/departement/<string:dept>`
|
||||
* **Résultat:** Un département
|
||||
* **Exemple de résultat:** [departement.json](samples/sample_departement.json.md)
|
||||
|
||||
#### **`departement-create`**
|
||||
|
||||
* **Méthode: POST**
|
||||
* **Permission: `ScoSuperAdmin`**
|
||||
* **Paramètres:** aucun
|
||||
* **Data:** `{ "acronym": str, "visible":bool }`
|
||||
* **Routes:** `/departement/create`
|
||||
* **Exemple d'utilisation:** `/departement/create`
|
||||
|
||||
>`{ "acronym": "QLIO", "visible": true }`
|
||||
|
||||
* **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
|
||||
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)
|
||||
|
||||
#### **`departement-edit`**
|
||||
|
||||
* **Méthode: POST**
|
||||
* **Permission: `ScoSuperAdmin`**
|
||||
* **Paramètres:** `dept_acronym`
|
||||
* **Data:** `{ "visible":bool }`
|
||||
* **Routes:** `/departement/<string:dept_acronym>/edit`
|
||||
* **Exemple d'utilisation:** `/departement/edit`
|
||||
|
||||
>`{ "visible": false }`
|
||||
|
||||
* **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
|
||||
nombreux objets et documents, y compris à l'extérieur de ScoDoc.
|
||||
* **Exemple de résultat:** [departements-edit.json](samples/sample_departement-edit.json.md)
|
||||
|
||||
#### **`departement-delete`**
|
||||
|
||||
* **Méthode: POST**
|
||||
* **Permission: `ScoSuperAdmin`**
|
||||
* **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)
|
||||
|
||||
### **API Etudiant**
|
||||
|
||||
#### Structure Etudiant
|
||||
|
||||
| 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' |
|
||||
|
||||
#### **`etudiants`** (supprimé)
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Routes:** `/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)
|
||||
|
||||
#### **`etudiants-courants`**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoView`**
|
||||
* **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)
|
||||
|
||||
#### **`etudiants-clef`**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoView`**
|
||||
* **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)
|
||||
|
||||
#### **departement-etudiants**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoView`**
|
||||
* **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)
|
||||
|
||||
#### **`formsemestre-etudiants[-long][-query]`**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoView`**
|
||||
* **Paramètres:** `formsemestre_id`
|
||||
@ -458,35 +474,37 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
|
||||
* `/formsemestre/<int:formsemestre_id>/etudiants/long`
|
||||
* `/formsemestre/<int:formsemestre_id>/etudiants/long/query?etat=I,D,DEF`
|
||||
* **Exemple d'utilisation:**
|
||||
* `/api/formsemestre/1/etudiants/long`
|
||||
* `/api/formsemestre/1/etudiants/query?etat=D`
|
||||
* `/api/formsemestre/1/etudiants/long`
|
||||
* `/api/formsemestre/1/etudiants/query?etat=D`
|
||||
* **Résultat:** Etudiants d'un formsemestre spécifié par son id.
|
||||
Une clé (`sort_key`) reproduit [ nom, prenom ] sous forme ASCII, permettant le tri des étudiants.
|
||||
Avec `query`, La liste est restreinte aux étudiants inscrits (`I`), démissionnaires (`D`) ou défaillants (`DEF`) si l'état est indiqué.
|
||||
Avec `long`, ajoute la date de naissance entre autre
|
||||
* **Exemple de résultat:**
|
||||
* [formsemestre-etudiants.json](samples/sample_formsemestre-etudiants.json.md)
|
||||
* [formsemestre-etudiants-query.json](samples/sample_formsemestre-etudiants-query.json.md)
|
||||
* [formsemestre-etudiants.json](samples/sample_formsemestre-etudiants.json.md)
|
||||
* [formsemestre-etudiants-query.json](samples/sample_formsemestre-etudiants-query.json.md)
|
||||
|
||||
#### **`group-etudiants[-query]`**
|
||||
|
||||
* **Méthode: GET**
|
||||
* **Permission: `ScoView`**
|
||||
* **Paramètres:** `group_id`
|
||||
* **Query string:** `etat` ('I', 'D' ou 'DEF')
|
||||
* **Routes:**
|
||||
* `/group/<int:group_id>/etudiants`
|
||||
* `/group/<int:group_id>/etudiants/query`
|
||||
* `/group/<int:group_id>/etudiants`
|
||||
* `/group/<int:group_id>/etudiants/query`
|
||||
* **Exemple d'utilisation:**
|
||||
* `/ScoDoc/api/group/1/etudiants`
|
||||
* `/ScoDoc/api/group/1/etudiants/query?etat=I`
|
||||
* `/ScoDoc/api/group/1/etudiants`
|
||||
* `/ScoDoc/api/group/1/etudiants/query?etat=I`
|
||||
* **Résultat:** Etudiants d'un groupe spécifié par son id. Liste
|
||||
restreinte aux étudiants inscrits (I), démissionnaires (D) ou défaillants
|
||||
(DEF) si l'état est indiqué.
|
||||
* **Exemple de résultat:**
|
||||
* [group-etudiants.json](samples/sample_group-etudiants.json.md)
|
||||
* [group-etudiants-query.json](samples/sample_group-etudiants-query.json.md)
|
||||
* [group-etudiants.json](samples/sample_group-etudiants.json.md)
|
||||
* [group-etudiants-query.json](samples/sample_group-etudiants-query.json.md)
|
||||
|
||||
#### **`etudiant`**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoView`**
|
||||
* **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)
|
||||
|
||||
#### **`formations_ids`**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoView`**
|
||||
* **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)
|
||||
|
||||
#### **`formation`**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoView`**
|
||||
* **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`.
|
||||
|
||||
#### Note sur les identifiants de formsemestre
|
||||
|
||||
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
|
||||
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
|
||||
commence en mars 2015).
|
||||
|
||||
|
||||
**Exemple:** `INFO-DUT-FI-S1-2014` équivaut à un semestre S1 d'un DUT
|
||||
informatique de 2014 en formation initiale (FI).
|
||||
|
||||
@ -610,18 +630,20 @@ informatique de 2014 en formation initiale (FI).
|
||||
| _**responsables**_ | int* | liste des ids des enseignants responsables |
|
||||
|
||||
#### **departement-formsemestres_ids**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoView`**
|
||||
* **Paramètres:** `dept`
|
||||
* **Routes:**
|
||||
* `/departement/id/<int:dept_id>/formsemestres_ids`
|
||||
* `/departement/<string:dept>/formsemestres_ids`
|
||||
* `/departement/id/<int:dept_id>/formsemestres_ids`
|
||||
* `/departement/<string:dept>/formsemestres_ids`
|
||||
* **Exemple d'utilisation:** `/api/departement/MMI/formsemestres_ids`
|
||||
* **Résultat:** Liste des id des formsemestres (passés ou présents) d'un
|
||||
département donné.
|
||||
* **Exemple de résultat:** [departement-formsemestres_ids.json](samples/sample_departement-formsemestres_ids.json.md)
|
||||
|
||||
#### **departement-formsemestres-courants**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoView`**
|
||||
* **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)
|
||||
|
||||
#### **formsemestres-query**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoView`**
|
||||
* **Paramètres:** aucun
|
||||
* **Query string:** `annee_scolaire`, `dept_acronym`, `dept_id`, `etape_apo`, `ine`, `nip`
|
||||
* **Route:** `/formsemestres/query
|
||||
* **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
|
||||
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
|
||||
@ -647,19 +670,21 @@ informatique de 2014 en formation initiale (FI).
|
||||
* **Exemple de résultat:** [formsemestres-query.json](samples/sample_formsemestres-query.json.md)
|
||||
|
||||
#### **etudiant-formsemestres**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoView`**
|
||||
* **Paramètres:** `etudid`, `nip`, `ine`
|
||||
* **Routes:** :
|
||||
* `/etudiant/etudid/<int:etudid>/formsemestres` ou
|
||||
* `/etudiant/nip/<string:nip>/formsemestres` ou
|
||||
* `/etudiant/ine/<string:ine>/formsemestres`
|
||||
* `/etudiant/etudid/<int:etudid>/formsemestres` ou
|
||||
* `/etudiant/nip/<string:nip>/formsemestres` ou
|
||||
* `/etudiant/ine/<string:ine>/formsemestres`
|
||||
* **Exemple d'utilisation:** `/etudiant/ine/1/formsemestres`
|
||||
* **Résultat:** Liste des semestres qu'un étudiant a suivi, triés
|
||||
par ordre chronologique.
|
||||
* **Exemple de résultat:** [etudiant-formsemestres.json](samples/sample_etudiant-formsemestres.json.md)
|
||||
|
||||
#### **formsemestre**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoView`**
|
||||
* **Paramètres:** `formsemestre_id`
|
||||
@ -671,39 +696,49 @@ informatique de 2014 en formation initiale (FI).
|
||||
### **API Groupe**
|
||||
|
||||
#### **`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:** [partition-create.json](samples/sample_formsemestre-partition-create.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:** [group-edit.json](samples/sample_group-edit.json.md)
|
||||
|
||||
#### **`partition-groups-order`**
|
||||
|
||||
* **Méthode: POST**
|
||||
* **Permission: `ScoEtudChangeGroups`**
|
||||
* **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:** [partition-groups-order.json](samples/sample_partition-groups-order.json.md)
|
||||
|
||||
#### **`group-delete`**
|
||||
|
||||
* **Méthode: POST**
|
||||
* **Permission: `ScoEtudChangeGroups`**
|
||||
* **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)
|
||||
|
||||
#### **etudiant-formsemestre-groups**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoView`**
|
||||
* **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)
|
||||
|
||||
#### **`group-set_etudiant`**
|
||||
|
||||
* **Méthode: POST**
|
||||
* **Permission: `ScoEtudChangeGroups`**
|
||||
* **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)
|
||||
|
||||
#### **`group-remove_etudiant`**
|
||||
|
||||
* **Méthode: POST**
|
||||
* **Permission: `ScoEtudChangeGroups`**
|
||||
* **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)
|
||||
|
||||
### **API Jury**
|
||||
|
||||
#### **`formsemestre-decisions_jury`**
|
||||
|
||||
* **Permission: `ScoView`**
|
||||
* **Méthode:** GET
|
||||
* **Paramètres:** `formsemestre_id`
|
||||
@ -772,6 +812,7 @@ responsable et ses enseignants). La liste des moduleimpl d'un formsemestre peut
|
||||
| _**module**_ | Module | |
|
||||
|
||||
#### **`moduleimpl`**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoView`**
|
||||
* **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)
|
||||
|
||||
### **API Partition**
|
||||
|
||||
#### Structure Partition
|
||||
|
||||
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 |
|
||||
|
||||
#### **`formsemestre-partitions`**
|
||||
|
||||
* **Méthode: GET**
|
||||
* **Permission: `ScoView`**
|
||||
* **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)
|
||||
|
||||
#### **`partition`**
|
||||
|
||||
* **Méthode: GET**
|
||||
* **Permission: `ScoView`**
|
||||
* **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)
|
||||
|
||||
#### **`formsemestre-partition-create`**
|
||||
|
||||
* **Méthode: POST**
|
||||
* **Permission: `ScoEtudsChangeGroups`**
|
||||
* **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:** [formsemestre-partition-create.json](samples/sample_formsemestre-partition-create.json.md)
|
||||
|
||||
#### **`partition-edit`**
|
||||
|
||||
* **Méthode: POST**
|
||||
* **Permission: `ScoEtudsChangeGroups`**
|
||||
* **Paramètres:** `partition_id`
|
||||
* **Data:** `{ partition_name : <string> }`
|
||||
* **Routes:** `/partition/<int:partition_id>/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)
|
||||
|
||||
#### **`formsemestre-partitions-order`**
|
||||
|
||||
* **Méthode: POST**
|
||||
* **Permission: `ScoEtudsChangeGroups`**
|
||||
* **Paramètres:** `formsemestre_id`
|
||||
* **Data:** `[ <int:partition_id1>, <int:partition_id2>, ... ]`
|
||||
* **Routes:** `/formsemestre/<int:formsemestre_id>/partitions/order`
|
||||
* **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/944/partitions/order`
|
||||
|
||||
>`[ 2048, 2054 ]`
|
||||
|
||||
* **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)
|
||||
|
||||
#### **`partition-delete`**
|
||||
|
||||
* **Méthode: POST**
|
||||
* **Permission: `ScoEtudsChangeGroups`**
|
||||
* **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)
|
||||
|
||||
#### **`partition-remove_etudiant`**
|
||||
|
||||
* **Méthode: POST**
|
||||
* **Permission: `ScoEtudsChangeGroups`**
|
||||
* **Permission: `ScoEtudChangeGroups`**
|
||||
@ -876,6 +931,7 @@ utilisateur pourra être associé à un ou plusieurs rôles dans chaque départe
|
||||
d'un autre).
|
||||
|
||||
#### **roles**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoUsersView`**
|
||||
* **Routes:** `/roles`
|
||||
@ -884,6 +940,7 @@ d'un autre).
|
||||
* **Exemple de résultat:** [roles.json](samples/sample_roles.json.md)
|
||||
|
||||
#### **role**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoUsersView`**
|
||||
* **Routes:** `/role/<str:role_name>`
|
||||
@ -892,6 +949,7 @@ d'un autre).
|
||||
* **Exemple de résultat:** [role.json](samples/sample_role.json.md)
|
||||
|
||||
#### **role-add_permission**
|
||||
|
||||
* **Méthode: POST**
|
||||
* **Permission: `ScoSuperAdmin`**
|
||||
* **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)
|
||||
|
||||
#### **role-remove_permission**
|
||||
|
||||
* **Méthode: POST**
|
||||
* **Permission: `ScoSuperAdmin`**
|
||||
* **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)
|
||||
|
||||
#### **role-create**
|
||||
|
||||
* **Méthode: POST**
|
||||
* **Permission: `ScoSuperAdmin`**
|
||||
* **Data:** `{ "permissions" : [ permission, ... ] }`
|
||||
* **Routes:** `/role/create/<str:role_name>`
|
||||
* **Exemple d'utilisation:** `/role/create/LaveurDecarreaux`
|
||||
|
||||
> `{ "permissions" : [ 'ScoView', 'ScoUsersView' ] }`
|
||||
|
||||
* **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)
|
||||
|
||||
#### **role-delete**
|
||||
|
||||
* **Méthode: POST**
|
||||
* **Permission: `ScoSuperAdmin`**
|
||||
* **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)
|
||||
|
||||
#### **role-edit**
|
||||
|
||||
* **Méthode: POST**
|
||||
* **Permission: `ScoSuperAdmin`**
|
||||
* **Data:** `{ "permissions" : [ permission, ... ] }`
|
||||
* **Routes:** `/role/edit/<str:role_name>`
|
||||
* **Exemple d'utilisation:** `/role/create/LaveurDecarreaux`
|
||||
|
||||
> `{ "name" : "LaveurDeVitres", "permissions" : [ 'ScoView' ] }`
|
||||
|
||||
* **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)
|
||||
|
||||
### **API User, Permissions**
|
||||
|
||||
#### **user**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoUsersView`**
|
||||
* **Paramètres:** `user_id`
|
||||
@ -948,9 +1016,11 @@ d'un autre).
|
||||
* **Exemple de résultat:** [user.json](samples/sample_user.json.md)
|
||||
|
||||
#### **`user-create`**
|
||||
|
||||
* **Méthode: POST**
|
||||
* **Permission: `ScoUsersAdmin`**
|
||||
* **Data:**
|
||||
|
||||
```json
|
||||
{
|
||||
"user_name": str,
|
||||
@ -960,6 +1030,7 @@ d'un autre).
|
||||
"active":bool (default True)
|
||||
}
|
||||
```
|
||||
|
||||
* **Routes:** `/user/create`
|
||||
* **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
|
||||
@ -967,19 +1038,24 @@ d'un autre).
|
||||
* **Exemple de résultat:** [user-create.json](samples/sample_user-create.json.md)
|
||||
|
||||
#### **`users-query`**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoUsersView`**
|
||||
* **Routes:**
|
||||
|
||||
* `/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
|
||||
nom (paramètres tous optionnels). Seuls les utilisateurs que l'on a la
|
||||
permission de voir sont listés.
|
||||
* **Exemple de résultat:** [users-query.json](samples/sample_users-query.json.md)
|
||||
|
||||
#### **`user-edit`**
|
||||
|
||||
* **Méthode: POST**
|
||||
* **Permission: `ScoUsersAdmin`**
|
||||
* **Data:**
|
||||
|
||||
```json
|
||||
{
|
||||
"dept": str or null,
|
||||
@ -988,21 +1064,24 @@ d'un autre).
|
||||
"active":bool (default True)
|
||||
}
|
||||
```
|
||||
|
||||
* **Routes:** `/user/<int:uid>/edit`
|
||||
* **Résultat:** Modifie l'utilisateur d'UID indiqué.
|
||||
* **Exemple de résultat:** [user-edit.json](samples/sample_user-edit.json.md)
|
||||
|
||||
#### **`user-password`**
|
||||
|
||||
* **Méthode: POST**
|
||||
* **Permission: `ScoUsersAdmin`**
|
||||
* **Data:** `{ "password": str }`
|
||||
* **Routes:** `/user/<int:uid>/password`
|
||||
* **Exemple d'utilisation:** `/user/3/password`
|
||||
|
||||
>`{ "password": "averycomplicatedpassaword" }
|
||||
|
||||
* **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:
|
||||
|
||||
>
|
||||
> ```json
|
||||
{
|
||||
"error": "Bad Request",
|
||||
@ -1014,6 +1093,7 @@ d'un autre).
|
||||
* **Exemple de résultat:** [user-password.json](samples/sample_user-password.json.md)
|
||||
|
||||
#### **`user-role-add`**
|
||||
|
||||
* **Méthode: POST**
|
||||
* **Permission: `ScoSuperAdmin`**
|
||||
* **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)
|
||||
|
||||
#### **`user-role-remove`**
|
||||
|
||||
* **Méthode: POST**
|
||||
* **Permission: `ScoUsersAdmin`**
|
||||
* **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)
|
||||
|
||||
#### **`permissions`**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoUsersView`**
|
||||
* **Routes:** `/permissions`
|
||||
@ -1038,7 +1120,9 @@ d'un autre).
|
||||
* **Exemple de résultat:** [permissions.json](samples/sample_permissions.json.md)
|
||||
|
||||
### ** API Bulletin, Evaluations, Notes**
|
||||
|
||||
#### **formsemestre-bulletins**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoView`**
|
||||
* **Paramètres:** `formsemestre_id`
|
||||
@ -1048,10 +1132,11 @@ d'un autre).
|
||||
* **Exemple de résultat:** [formsemestre-bulletins.json](samples/sample_formsemestre-bulletins.json.md)
|
||||
|
||||
#### **etudiant-formsemestre-bulletin**
|
||||
|
||||
Récapitulatif par étudiant (état, groupe(s), moyennes d'UEs et de modules
|
||||
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_.
|
||||
mais pas JSON compliant à cause des `NaN`.
|
||||
|
||||
* **Méthode:** GET
|
||||
* **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]`
|
||||
* **Exemple d'utilisation:** `/etudiant/nip/1/formsemestre/1/bulletin`
|
||||
* **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).
|
||||
* 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)
|
||||
|
||||
#### **formsemestre-programme**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoView`**
|
||||
* **Paramètres:** `dept`, `formsemestre_id`
|
||||
* **Routes:** `/formsemestre/<int:formsemestre_id>/programme`
|
||||
* **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/1/programme`
|
||||
* **Résultat:** Retourne la struture d'un formsemestre sous 5 entrées d'un dictionnaire:
|
||||
* **`ues`**: liste des UEs,
|
||||
* **`ressources`**: liste des ressources (BUT),
|
||||
* **`saes`**: liste des saes (BUT),
|
||||
* **`modules`**: liste des modules classiques (DUT ou sport/culture)
|
||||
* **`malus`**: listes des modules de type bonus/malus.
|
||||
|
||||
* **`ues`**: liste des UEs,
|
||||
* **`ressources`**: liste des ressources (BUT),
|
||||
* **`saes`**: liste des saes (BUT),
|
||||
* **`modules`**: liste des modules classiques (DUT ou sport/culture)
|
||||
* **`malus`**: listes des modules de type bonus/malus.
|
||||
|
||||
* **Exemple de résultat:** [formsemestre-programme.json](samples/sample_formsemestre-programme.json.md)
|
||||
|
||||
#### **formsemestre-resultats**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoView`**
|
||||
* **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
|
||||
pour un formsemestre spécifié par son id.
|
||||
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:**
|
||||
|
||||
#### **`moduleimpl-evaluations`**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoView`**
|
||||
* **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)
|
||||
|
||||
#### **`evaluations-notes`**
|
||||
|
||||
* **Méthode**: GET
|
||||
* **Permission: `ScoView`**
|
||||
* **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)
|
||||
|
||||
#### **formsemestre-etat_evals**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoView`**
|
||||
* **Paramètres:** `formsemestre_id`
|
||||
@ -1131,6 +1226,7 @@ valeurs numériques mais pas JSON compliant à cause des _NaN_.
|
||||
### **API Export, Référentiel**
|
||||
|
||||
#### **`formation-export`**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoView`**
|
||||
* **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)
|
||||
|
||||
#### **`formation-referentiel_competences`**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoView`**
|
||||
* **Paramètres:** `formation_id`
|
||||
* **Routes:** `/formation/<int:formation_id>/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)
|
||||
|
||||
### **API Logos**
|
||||
|
||||
#### **`logos`**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoSuperAdmin`**
|
||||
* **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)
|
||||
|
||||
#### **`logo`**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoSuperAdmin`**
|
||||
* **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)
|
||||
|
||||
#### **`departement-logos`**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoSuperAdmin`**
|
||||
* **Paramètres:** Aucun
|
||||
* **Route :**
|
||||
* `/departement/<string:dept>/logos`
|
||||
* `/departement/id/<int:departement_id>/logos`
|
||||
|
||||
* `/departement/<string:dept>/logos`
|
||||
* `/departement/id/<int:departement_id>/logos`
|
||||
|
||||
* **Exemple d'utilisation :**
|
||||
* `/departement/<string:dept>/logos`
|
||||
* `/departement/id/<int:departement_id>/logos`
|
||||
|
||||
* `/departement/<string:dept>/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).
|
||||
* **Exemple de résultat:** [departement-logos.json](samples/sample_departement-logos.json.md)
|
||||
|
||||
#### **`departement-logo`**
|
||||
|
||||
* **Méthode:** GET
|
||||
* **Permission: `ScoSuperAdmin`**
|
||||
* **Paramètres :** Aucun
|
||||
@ -1190,14 +1296,17 @@ valeurs numériques mais pas JSON compliant à cause des _NaN_.
|
||||
* `/departement/<string:dept>/logo/<string:nom>`
|
||||
* `/departement/id/<int:departement_id>/logo/<string:nom>`
|
||||
* **Exemple d'utilisation:**
|
||||
|
||||
* `/ScoDoc/api/departement/MMI/logo/header`
|
||||
* `/ScoDoc/api/departement/id/3/logo/header`
|
||||
|
||||
* **Résultat :** l'image (format png ou jpg)
|
||||
* **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/`.
|
||||
|
||||
## 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.
|
||||
|
||||
- `Absences/XMLgetBilletsEtud` (deviendra `api/absences/billets/etud/ etudid>`)
|
||||
- `Absences/AddBilletAbsence` (deviendra `api/absences/billet/add`)
|
||||
- `Absences/XMLgetAbsEtud` (deviendra `api/absences/ etudid>`, en json)
|
||||
- `Notes/evaluation_listenotes` (non existante en ScoDoc9, trop complexe)
|
||||
- `Notes/formsemestre_id` (deviendra `api/formsemestre`)
|
||||
- `Notes/formsemestre_bulletinetud` (deviendra `api/etud/<etudid>/bul/<formsemestre_id>`)
|
||||
- `Notes/XMLgetFormsemestres` (non existante en ScoDoc9, redondant avec `api/formsemestre` ?)
|
||||
- `etud_info` ou `XMLgetEtudInfos` ou `Absences/XMLgetEtudInfos` ou `Notes/XMLgetEtudInfos` (deviendra `/api/etud/<etudid>`)
|
||||
- `groups_view` (deviendra `groups`)
|
||||
* `Absences/XMLgetBilletsEtud` (deviendra `api/absences/billets/etud/ etudid>`)
|
||||
* `Absences/AddBilletAbsence` (deviendra `api/absences/billet/add`)
|
||||
* `Absences/XMLgetAbsEtud` (deviendra `api/absences/ etudid>`, en json)
|
||||
* `Notes/evaluation_listenotes` (non existante en ScoDoc9, trop complexe)
|
||||
* `Notes/formsemestre_id` (deviendra `api/formsemestre`)
|
||||
* `Notes/formsemestre_bulletinetud` (deviendra `api/etud/<etudid>/bul/<formsemestre_id>`)
|
||||
* `Notes/XMLgetFormsemestres` (non existante en ScoDoc9, redondant avec `api/formsemestre` ?)
|
||||
* `etud_info` ou `XMLgetEtudInfos` ou `Absences/XMLgetEtudInfos` ou `Notes/XMLgetEtudInfos` (deviendra `/api/etud/<etudid>`)
|
||||
* `groups_view` (deviendra `groups`)
|
||||
|
||||
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
|
||||
en POST.
|
||||
|
||||
Note:
|
||||
|
||||
- `Absences/listeBillets` est un formulaire et ne fait pas partie de l'API.
|
||||
|
@ -11,10 +11,10 @@ fi
|
||||
# --- Build
|
||||
if [ "$1" = "-b" ]
|
||||
then
|
||||
if [ "${CONDA_DEFAULT_ENV}" != "mkdocs" ]
|
||||
if ! command -v mkdocs &> /dev/null
|
||||
then
|
||||
echo "Please active mkdocs :"
|
||||
echo " conda activate mkdocs"
|
||||
echo " source venv/bin/activate"
|
||||
exit 1
|
||||
fi
|
||||
mkdocs build
|
||||
|
Loading…
Reference in New Issue
Block a user