API: modif structure

This commit is contained in:
Emmanuel Viennet 2022-07-25 10:13:57 +03:00
parent e32095e114
commit 5f97c42dae
2 changed files with 1124 additions and 1077 deletions

View File

@ -95,7 +95,11 @@ Ajoute ou retire une permission.
flask user-role username [-d departement] [-a RoleAAjouter] [-r RoleARetirer]
Exemple:
Exemples:
flask user-role dupont
affiche les rôles de l'utilisateur `dupont`.
flask user-role dupont -d MMI -a Observateur
@ -146,6 +150,7 @@ Commands:
delete-dept Delete existing departement
delete-role Delete a role
dumphelp
list-roles List roles
edit-role Add [-a] and/or remove [-r] a permission...
import-scodoc7-dept Import département ScoDoc 7: dept:...
import-scodoc7-users Import users defined in ScoDoc7...
@ -161,7 +166,7 @@ Commands:
user-db-clear Erase all users and roles from the...
user-delete Try to delete this user.
user-password Set (or change) users password
user-role Add or remove a role to the given user...
user-role Display roles, or add or remove a role to the given user...
Usage: app sco-db-init [OPTIONS]

View File

@ -163,7 +163,8 @@ par le serveur ScoDoc.
## Départements
* **`departements_ids`**
#### **`departements_ids`**
* **Méthode:** GET
* **Routes:** `/departements_ids`
* **Résultat:** Liste des id départements (visibles ou non).
@ -171,7 +172,8 @@ par le serveur ScoDoc.
```
[ 1888, 999, 165 ]
```
* **`departement`**
#### **`departement`**
* **Méthode:** GET
* **Routes:** `/departement/<dept_id>`
* **Résultat:** Un département
@ -186,7 +188,8 @@ par le serveur ScoDoc.
},
```
* **`departements`**
#### **`departements`**
* **Méthode:** GET
* **Routes:** `/departements`
* **Exemple d'utilisation:** `/api/departements`
@ -199,8 +202,8 @@ par le serveur ScoDoc.
]
```
#### **Étudiants d'un département**
* **Étudiants d'un département**
* **Méthode:** GET
* **Paramètres:** `dept`, `formsemestre_id`
* **Routes:** `/departement/<string:dept>/etudiants`
@ -227,8 +230,10 @@ par le serveur ScoDoc.
]
```
#### Semestres
* **Formsemestres**
### Semestres
#### **Formsemestres**
* **Méthode:** GET
* **Paramètres:** `dept`
* **Routes:** `/departement/<string:dept>/formsemestres_ids`
@ -237,7 +242,8 @@ par le serveur ScoDoc.
* **Exemple de résultat:**
```[ 28, 99, 3 ]```
* **Formsemestres en cours**
#### **Formsemestres en cours**
* **Méthode:** GET
* **Paramètres:** `dept`
* **Routes:** `/departement/<string:dept>/formsemestres_courants`
@ -286,7 +292,8 @@ Le `titre`est celui donné par l'utilisateur dans le formsemestre, tandis que le
## Étudiants
* **`etudiants_courant`**
#### **`etudiants_courant`**
* **Méthode:** GET
* **Routes:** `/etudiants/courant` ou `/etudiants/courant/long`
* **Exemple d'utilisation:** `/api/etudiants/courant`
@ -313,7 +320,8 @@ Le `titre`est celui donné par l'utilisateur dans le formsemestre, tandis que le
]
```
* **`etudiant`**
#### **`etudiant`**
* **Méthode:** GET
* **Paramètres:** `etudid`, `nip`, `ine`
* **Routes:** `/etudiant/etudid/<int:etudid>` ou `/etudiant/nip/<string:nip>` ou `/etudiant/ine/<string:ine>`
@ -353,7 +361,9 @@ Le `titre`est celui donné par l'utilisateur dans le formsemestre, tandis que le
"description": ""
}
```
* **`etudiants`**
#### **`etudiants`**
* **Méthode:** GET
* **Paramètres:** `etudid`, `nip`, `ine`
* **Routes:** `/etudiants/etudid/<int:etudid>` ou `/etudiants/nip/<string:nip>` ou `/etudiants/ine/<string:ine>`
@ -364,7 +374,6 @@ Le `titre`est celui donné par l'utilisateur dans le formsemestre, tandis que le
Dans 99% des cas, la liste contient un seul étudiant, mais si l'étudiant a
été inscrit dans plusieurs départements, on a plusieurs objets (1 par
dept.).
* **Exemple de résultat:**
```
[
@ -399,8 +408,9 @@ Le `titre`est celui donné par l'utilisateur dans le formsemestre, tandis que le
]
```
#### Cursus
* **`etudiant_formsemestres`**
### Cursus
#### **`etudiant_formsemestres`**
* **Méthode:** GET
* **Paramètres:** `etudid`, `nip`, `ine`
* **Routes:** : `/etudiant/etudid/<int:etudid>/formsemestres` ou `/etudiant/nip/<string:nip>/formsemestres` ou `/etudiant/ine/<string:ine>/formsemestres`
@ -444,8 +454,10 @@ Le `titre`est celui donné par l'utilisateur dans le formsemestre, tandis que le
]
```
#### Bulletin
* **`etudiant_bulletin_semestre`**
### Bulletin
#### **`etudiant_bulletin_semestre`**
* **Méthode:** GET
* **Paramètres:** `formsemestre_id`, `etudid`, `nip`, `ine`
* **Routes:**
@ -633,7 +645,8 @@ Le `titre`est celui donné par l'utilisateur dans le formsemestre, tandis que le
```
* **`etudiant_groups`**
#### **`etudiant_groups`**
* **Méthode:** GET
* **Paramètres:** `formsemestre_id`, `etudid`, `nip`, `ine`
* **Routes:** `/etudiant/etudid/<int:etudid>/semestre/<int:formsemestre_id>/groups` ou `/etudiant/nip/<string:nip>/semestre/<int:formsemestre_id>/groups` ou `/etudiant/ine/<string:ine>/semestre/<int:formsemestre_id>/groups`
@ -672,7 +685,8 @@ Le `titre`est celui donné par l'utilisateur dans le formsemestre, tandis que le
## Programmes de formations
* **`formation`**
#### **`formation`**
* **Méthode:** GET
* **Paramètres:** `formation_id`
* **Routes:** `/formation/<int:formation_id>`
@ -695,22 +709,26 @@ Le `titre`est celui donné par l'utilisateur dans le formsemestre, tandis que le
}
```
* **`formations_ids`**
#### **`formations_ids`**
* **Méthode:** GET
* **Routes:** `/formations_ids`
* **Exemple d'utilisation:** `/ScoDoc/api/formations_ids`
* **Résultat:** Retourne la liste des ids de toutes les formations (tous départements)
* **Exemple de résultat:** `[17, 99, 32]`
* **`formations`**
#### **`formations`**
* **Méthode:** GET
* **Routes:** `/formations`
* **Exemple d'utilisation:** `/ScoDoc/api/formations`
* **Résultat:** Retourne la liste de toutes les formations (tous
départements)
#### Export programme
* **`formation_export`**
### Export programme
#### **`formation_export`**
* **Méthode:** GET
* **Paramètres:** `formation_id`, `export_ids` (False par défaut. Ajouter `/with_ids` pour le passer à True)
* **Routes:** `/formation/formation_export/<int:formation_id>`
@ -807,20 +825,23 @@ Le `titre`est celui donné par l'utilisateur dans le formsemestre, tandis que le
#### Référentiel de compétences
* **`referentiel_competences`**
#### **`referentiel_competences`**
* **Méthode:** GET
* **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_)
* XXX obtenir la liste des référentiels
XXX obtenir la liste des référentiels ?
## Formsemestres
Les sessions de formation (qu'elles durent une année ou un mois) sont représentées par les `formsemestre`.
* **`formsemestre`**
#### **`formsemestre`**
* **Méthode:** GET
* **Paramètres:** `formsemestre_id`
* **Routes:** `/formsemestre/<int:formsemestre_id>`
@ -862,7 +883,9 @@ Les sessions de formation (qu'elles durent une année ou un mois) sont représen
"session_id": "MMI-BUT-FI-S1-2021",
}
```
* **`formsemestre_apo`**
#### **`formsemestre_apo`**
* **Méthode:** GET
* **Paramètres:** `etape_apo`
* **Routes:** `/formsemestre/apo/<string:etape_apo>`
@ -874,7 +897,7 @@ Les sessions de formation (qu'elles durent une année ou un mois) sont représen
```
#### 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
(presque) unique un formsemestre) dans un établissement, ce qui est utile
notamment pour interfacer ScoDoc à d'autres logiciels (par exemple gestion
@ -894,8 +917,8 @@ des informations suivantes:
**Exemple:** `INFO-DUT-FI-S1-2014` équivaut à un semestre S1 d'un DUT informatique de 2014 en formation initiale (FI)
#### Étudiants inscrits
* **etudiants**
### Étudiants inscrits et bulletins
#### **etudiants**
* **Méthode:** GET
* **Paramètres:** `formsemestre_id`, `etat` (par défaut égal à "I" pour les étudiants inscrits)
* **Routes:** `/formsemestre/<int:formsemestre_id>/etudiants` XXX voir si
@ -903,8 +926,8 @@ des informations suivantes:
* **Résultat:** les étudiants inscrits à ce semestres XXX préciser état
(DEM, DEF))
#### Bulletins
* **`bulletins`**
#### * **`bulletins`**
* **Méthode:** GET
* **Paramètres:** `formsemestre_id`
* **Routes:** `/formsemestre/<int:formsemestre_id>/bulletins`
@ -1083,7 +1106,9 @@ des informations suivantes:
}
]
```
* **etat_evals**
#### **etat_evals**
* **Méthode:** GET
* **Paramètres:** `formsemestre_id`
* **Routes:** `/formsemestre/<int:formsemestre_id>/etat_evals`
@ -1139,7 +1164,8 @@ des informations suivantes:
* **`jury`** (**non implémentée**)
#### **`jury`** (**non implémentée**)
* **Méthode:** GET
* **Paramètres:** `formsemestre_id`
* **Routes:** `/formsemestre/<int:formsemestre_id>/jury`
@ -1150,8 +1176,10 @@ des informations suivantes:
XXX A COMPLETER
```
#### Programme d'un formsemestre
* **UE et modules**
### Programme d'un formsemestre
#### **UE et modules**
* **Méthode:** GET
* **Paramètres:** `dept`, `formsemestre_id`
* **Routes:** `/formsemestre/<int:formsemestre_id>/programme`
@ -1224,7 +1252,8 @@ des informations suivantes:
Le moduleimpl est la mise en place d'un module dans un formsemestre (avec son
responsable et ses enseignants).
* **`moduleimpl`**
#### **`moduleimpl`**
* **Méthode:** GET
* **Paramètres:** `moduleimpl_id`
* **Routes:** `/formation/moduleimpl/<int:moduleimpl_id>`
@ -1268,7 +1297,8 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou
plusieurs partitions (types de groupes). Chaque partition est constituée
d'un nombre quelconque de groupes d'étudiants.
* **`partition`**
#### **`partition`**
* **Méthode: GET**
* **Paramètres:** `formsemestre_id`
* **Routes:** `/partitions/<int:formsemestre_id>`
@ -1298,7 +1328,8 @@ d'un nombre quelconque de groupes d'étudiants.
]
```
* **`groups`**
#### **`groups`**
* **Méthode: GET**
* **Paramètres:** `group_id`, `etat`
* **Routes:** `/partitions/groups/<int:group_id>` ou `/partitions/groups/<int:group_id>/etat/<string:etat>`
@ -1349,7 +1380,9 @@ d'un nombre quelconque de groupes d'étudiants.
### Évaluations
* **`evaluations`**
#### **`evaluations`**
* **Méthode:** GET
* **Paramètres:** `moduleimpl_id`
* **Routes:** `/evaluations/<int:moduleimpl_id>`
@ -1381,7 +1414,8 @@ d'un nombre quelconque de groupes d'étudiants.
```
* **`evaluations/notes`**
#### **`evaluations/notes`**
* **Méthode**: GET
* **Paramètres**: `evaluation_id`
* **Routes:** `/evaluations/eval_notes/<int:evaluation_id>`
@ -1395,7 +1429,8 @@ d'un nombre quelconque de groupes d'étudiants.
**Remarques**, les dates sont au format iso `yyyy-mm-dd`. Les dates de fin ne sont pas incluses. Et `demi_journee`= 2 si journée complète, =1 si uniquement le matin, =0 si uniquement l'après-midi.
* **`absences`**
#### **`absences`**
* **Méthode:** GET
* **Paramètres:** `etudid`, `nip`, `ine`
* **Routes:** `/absences/etudid/<int:etudid>`
@ -1419,7 +1454,8 @@ d'un nombre quelconque de groupes d'étudiants.
]
```
* **`absences/just`**
#### **`absences/just`**
* **Méthode:** GET
* **Paramètres:** `etudid`
* **Routes:** `/absences/etudid/<int:etudid>/just`
@ -1444,7 +1480,8 @@ d'un nombre quelconque de groupes d'étudiants.
```
* **`abs_groupe_etat`**
#### **`abs_groupe_etat`**
* **Méthode:** GET
* **Paramètres:** `group_ids`, `date_debut`, `date_fin`,
* **Routes:** `/absences/abs_group_etat/<int:group_id>` ou `/absences/abs_group_etat/group_id/<in:group_id>/date_debut/<date:date_debut>/date_fin/<date:date_fin>`
@ -1460,7 +1497,8 @@ d'un nombre quelconque de groupes d'étudiants.
### Jury
* **`jury_preparation`**
#### **`jury_preparation`**
* **Méthode:** GET
* **Paramètres:** `formsemestre_id`
* **Routes:** `/jury/formsemestre/<int:formsemestre_id>/preparation_jury`
@ -1471,7 +1509,8 @@ d'un nombre quelconque de groupes d'étudiants.
XXX A COMPLETER
```
* **`jury_decisions`**
#### **`jury_decisions`**
* **Méthode:** GET
* **Paramètres:** `formsemestre_id`
* **Routes:** `/jury/formsemestre/<int:formsemestre_id>/decisions_jury`
@ -1484,7 +1523,8 @@ d'un nombre quelconque de groupes d'étudiants.
### Logos
* **`liste des logos globaux`**
#### **`liste des logos globaux`**
* **Méthode:** GET
* **Paramètres:** `format` (json, xml), json par défaut
* **Route :** `/ScoDoc/api/logos`
@ -1494,7 +1534,7 @@ d'un nombre quelconque de groupes d'étudiants.
XXX vérifier si on supporte XML et pour qui ?
* **`récupération d'un logo global`**
#### **`récupération d'un logo global`**
* **Méthode:** GET
* **Paramètres :** Aucun
* **Route:** `/logos/<string:nom>`
@ -1502,7 +1542,8 @@ d'un nombre quelconque de groupes d'étudiants.
* **Résultat :** l'image (format png ou jpg)
* **`logo d'un département`**
#### **`logo d'un département`**
* **Méthode:** GET
* **Paramètres:** `format` (json, xml)
* **Route :** `/departements/<string:dept>/logos`
@ -1511,7 +1552,8 @@ d'un nombre quelconque de groupes d'étudiants.
* **Exemple de résultat:** `['footer', 'signature', 'universite']`
* **`récupération d'un logo global`**
#### **`récupération d'un logo global`**
* **Méthode:** GET
* **Paramètres :** Aucun
* **Route:** `/departements/<string:dept>/logos/<string:nom>`