Documention future API REST
This commit is contained in:
parent
e42bd3b0f5
commit
2e44ff4f51
194
.gitignore
vendored
194
.gitignore
vendored
@ -1 +1,193 @@
|
|||||||
.idea
|
# ---> Emacs
|
||||||
|
# -*- mode: gitignore; -*-
|
||||||
|
*~
|
||||||
|
\#*\#
|
||||||
|
/.emacs.desktop
|
||||||
|
/.emacs.desktop.lock
|
||||||
|
*.elc
|
||||||
|
auto-save-list
|
||||||
|
tramp
|
||||||
|
.\#*
|
||||||
|
|
||||||
|
# Org-mode
|
||||||
|
.org-id-locations
|
||||||
|
*_archive
|
||||||
|
|
||||||
|
# flymake-mode
|
||||||
|
*_flymake.*
|
||||||
|
|
||||||
|
# eshell files
|
||||||
|
/eshell/history
|
||||||
|
/eshell/lastdir
|
||||||
|
|
||||||
|
# elpa packages
|
||||||
|
/elpa/
|
||||||
|
|
||||||
|
# reftex files
|
||||||
|
*.rel
|
||||||
|
|
||||||
|
# AUCTeX auto folder
|
||||||
|
/auto/
|
||||||
|
|
||||||
|
# cask packages
|
||||||
|
.cask/
|
||||||
|
dist/
|
||||||
|
|
||||||
|
# Flycheck
|
||||||
|
flycheck_*.el
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ---> Python
|
||||||
|
# Byte-compiled / optimized / DLL files
|
||||||
|
__pycache__/
|
||||||
|
*.py[cod]
|
||||||
|
*$py.class
|
||||||
|
|
||||||
|
# C extensions
|
||||||
|
*.so
|
||||||
|
|
||||||
|
# Distribution / packaging
|
||||||
|
.Python
|
||||||
|
build/
|
||||||
|
develop-eggs/
|
||||||
|
dist/
|
||||||
|
downloads/
|
||||||
|
eggs/
|
||||||
|
.eggs/
|
||||||
|
lib/
|
||||||
|
lib64/
|
||||||
|
parts/
|
||||||
|
sdist/
|
||||||
|
var/
|
||||||
|
wheels/
|
||||||
|
share/python-wheels/
|
||||||
|
*.egg-info/
|
||||||
|
.installed.cfg
|
||||||
|
*.egg
|
||||||
|
MANIFEST
|
||||||
|
|
||||||
|
# PyInstaller
|
||||||
|
# Usually these files are written by a python script from a template
|
||||||
|
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||||
|
*.manifest
|
||||||
|
*.spec
|
||||||
|
|
||||||
|
# Installer logs
|
||||||
|
pip-log.txt
|
||||||
|
pip-delete-this-directory.txt
|
||||||
|
|
||||||
|
# Unit test / coverage reports
|
||||||
|
htmlcov/
|
||||||
|
.tox/
|
||||||
|
.nox/
|
||||||
|
.coverage
|
||||||
|
.coverage.*
|
||||||
|
.cache
|
||||||
|
nosetests.xml
|
||||||
|
coverage.xml
|
||||||
|
*.cover
|
||||||
|
*.py,cover
|
||||||
|
.hypothesis/
|
||||||
|
.pytest_cache/
|
||||||
|
cover/
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
*.mo
|
||||||
|
*.pot
|
||||||
|
|
||||||
|
# Django stuff:
|
||||||
|
*.log
|
||||||
|
local_settings.py
|
||||||
|
db.sqlite3
|
||||||
|
db.sqlite3-journal
|
||||||
|
|
||||||
|
# Flask stuff:
|
||||||
|
instance/
|
||||||
|
.webassets-cache
|
||||||
|
|
||||||
|
# Scrapy stuff:
|
||||||
|
.scrapy
|
||||||
|
|
||||||
|
# Sphinx documentation
|
||||||
|
docs/_build/
|
||||||
|
|
||||||
|
# PyBuilder
|
||||||
|
.pybuilder/
|
||||||
|
target/
|
||||||
|
|
||||||
|
# Jupyter Notebook
|
||||||
|
.ipynb_checkpoints
|
||||||
|
|
||||||
|
# IPython
|
||||||
|
profile_default/
|
||||||
|
ipython_config.py
|
||||||
|
|
||||||
|
# pyenv
|
||||||
|
# For a library or package, you might want to ignore these files since the code is
|
||||||
|
# intended to run in multiple environments; otherwise, check them in:
|
||||||
|
# .python-version
|
||||||
|
|
||||||
|
# pipenv
|
||||||
|
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
||||||
|
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
||||||
|
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
||||||
|
# install all needed dependencies.
|
||||||
|
#Pipfile.lock
|
||||||
|
|
||||||
|
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
|
||||||
|
__pypackages__/
|
||||||
|
|
||||||
|
# Celery stuff
|
||||||
|
celerybeat-schedule
|
||||||
|
celerybeat.pid
|
||||||
|
|
||||||
|
# SageMath parsed files
|
||||||
|
*.sage.py
|
||||||
|
|
||||||
|
# Environments
|
||||||
|
.env
|
||||||
|
.venv
|
||||||
|
env/
|
||||||
|
venv/
|
||||||
|
ENV/
|
||||||
|
env.bak/
|
||||||
|
venv.bak/
|
||||||
|
|
||||||
|
# Spyder project settings
|
||||||
|
.spyderproject
|
||||||
|
.spyproject
|
||||||
|
|
||||||
|
# Rope project settings
|
||||||
|
.ropeproject
|
||||||
|
|
||||||
|
# mkdocs documentation
|
||||||
|
/site
|
||||||
|
|
||||||
|
# mypy
|
||||||
|
.mypy_cache/
|
||||||
|
.dmypy.json
|
||||||
|
dmypy.json
|
||||||
|
|
||||||
|
# Pyre type checker
|
||||||
|
.pyre/
|
||||||
|
|
||||||
|
# pytype static type analyzer
|
||||||
|
.pytype/
|
||||||
|
|
||||||
|
# Cython debug symbols
|
||||||
|
cython_debug/
|
||||||
|
|
||||||
|
# Mac OSX OS generated files
|
||||||
|
.DS_Store?
|
||||||
|
Thumbs.db
|
||||||
|
*.DS_Store
|
||||||
|
|
||||||
|
# Other source repository archive directories (protects when importing)
|
||||||
|
.hg
|
||||||
|
.svn
|
||||||
|
CVS
|
||||||
|
|
||||||
|
# MkDocs ScoDoc
|
||||||
|
site/
|
||||||
|
@ -12,14 +12,14 @@ L'API fournit des données JSON, sauf exception (bulletins).
|
|||||||
Les objets ScoDoc manipulables sont identifiés par des id:
|
Les objets ScoDoc manipulables sont identifiés par des id:
|
||||||
|
|
||||||
* etudid: étudiant
|
* etudid: étudiant
|
||||||
* form_id: un programme de formation (page "programmes");
|
* formation_id: un programme de formation (page "programmes");
|
||||||
* ue_id: une UE dans un programme;
|
* ue_id: une UE dans un programme;
|
||||||
* matiere_id: une matière dans un programme;
|
* matiere_id: une matière dans un programme;
|
||||||
* module_id: un module dans un programme.
|
* module_id: un module dans un programme.
|
||||||
* formsmestre_id: un "semestre" de formation.
|
* formsemestre_id: un "semestre" de formation.
|
||||||
|
|
||||||
|
|
||||||
L'URL complète est de la forme: `https://scodoc.example.com/ScoDoc/api/fonction
|
L'URL complète est de la forme: `https://scodoc.example.com/ScoDoc/api/fonction`.
|
||||||
|
|
||||||
# Fonctions de l'API ScoDoc 7 portées en ScoDoc 9
|
# Fonctions de l'API ScoDoc 7 portées en ScoDoc 9
|
||||||
|
|
||||||
@ -37,10 +37,10 @@ Certaines ont plusieurs "routes" (URl), car ScoDoc 7 tolérait divers accès.
|
|||||||
- `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/formsemestre_bulletinetud`)
|
- `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`
|
- `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
|
||||||
@ -49,16 +49,20 @@ 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.
|
||||||
|
|
||||||
# Résumé des fonctions d'API ScoDoc 9 (work in progress)
|
# Fonctions d'API ScoDoc 9 (work in progress)
|
||||||
|
|
||||||
Basé sur le ticket [#149](https://scodoc.org/git/viennet/ScoDoc/issues/149)
|
Basé sur le ticket [#149](https://scodoc.org/git/viennet/ScoDoc/issues/149)
|
||||||
## Définition des points d'accès à l'API REST (jwt):
|
|
||||||
|
|
||||||
**Note: à reformatter: le tableau n'est pas lisible et exploitable**
|
La documentation ci-dessous concerne la **future** version De ScoDoc.
|
||||||
|
|
||||||
|
## Accès à l'API REST
|
||||||
|
|
||||||
Elle sera accessible à l'adresse: https://scodoc.monsite.tld/ScoDoc/api/fonction
|
Elle sera accessible à l'adresse: https://scodoc.monsite.tld/ScoDoc/api/fonction
|
||||||
|
|
||||||
# Codes HTTP
|
### Authentification
|
||||||
|
TODO décrire procédure d'authentification et tokens jwt.
|
||||||
|
|
||||||
|
### Codes HTTP
|
||||||
Chaque appel à l'API donne lieu à une réponse retournant un code spécifique en fonction du résultat obtenu. L'analyse de ce code vous permet de vous assurer que la requête a été traitée avec succès.
|
Chaque appel à l'API donne lieu à une réponse retournant un code spécifique en fonction du résultat obtenu. L'analyse de ce code vous permet de vous assurer que la requête a été traitée avec succès.
|
||||||
|
|
||||||
Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succès par nos serveurs.
|
Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succès par nos serveurs.
|
||||||
@ -74,8 +78,6 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ
|
|||||||
* [503](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/503) : L'API est momentanément indisponible, réessayez dans quelques minutes.
|
* [503](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/503) : L'API est momentanément indisponible, réessayez dans quelques minutes.
|
||||||
|
|
||||||
|
|
||||||
# Description d'accès aux données
|
|
||||||
|
|
||||||
## Départements
|
## Départements
|
||||||
* **`departement`**
|
* **`departement`**
|
||||||
* **Méthode:** GET
|
* **Méthode:** GET
|
||||||
@ -134,7 +136,7 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ
|
|||||||
"date_debut": "2008-09-01"
|
"date_debut": "2008-09-01"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"etudid": "EID8768",
|
"etudid": "8768",
|
||||||
"domicile": "2 Rue Madame",
|
"domicile": "2 Rue Madame",
|
||||||
"villedomicile": "Paris",
|
"villedomicile": "Paris",
|
||||||
"telephonemobile": ""
|
"telephonemobile": ""
|
||||||
@ -142,7 +144,7 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ
|
|||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
* **`etud_bul`**
|
* **`etud//bul`**
|
||||||
* **Méthode:** GET
|
* **Méthode:** GET
|
||||||
* **Paramètres:** `etudid`, `sem_id`
|
* **Paramètres:** `etudid`, `sem_id`
|
||||||
* **Format URL:** `/api/etud/<int:etudid>/bul/<int:sem_id>`
|
* **Format URL:** `/api/etud/<int:etudid>/bul/<int:sem_id>`
|
||||||
@ -152,7 +154,7 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
* **`etud_photo`**
|
* **`etud//photo`**
|
||||||
* **Méthode:** GET
|
* **Méthode:** GET
|
||||||
* **Paramètres:** `etudid`, `small`
|
* **Paramètres:** `etudid`, `small`
|
||||||
* **Format URL:** `/api/etud/<int:etudid>/photo` **OU** `/api/etud/<int:etudid>/photo/small` (_ajout du paramètre **small** pour la version small_)
|
* **Format URL:** `/api/etud/<int:etudid>/photo` **OU** `/api/etud/<int:etudid>/photo/small` (_ajout du paramètre **small** pour la version small_)
|
||||||
@ -160,49 +162,23 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ
|
|||||||
* **Résultat:** Image en JPEG ou PNG.
|
* **Résultat:** Image en JPEG ou PNG.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Semestres
|
|
||||||
* **`sem_info`**
|
|
||||||
* **Méthode:** GET
|
|
||||||
* **Paramètres:** `sem_id`
|
|
||||||
* **Format URL:** `/api/sem_info/<int:sem_id>`
|
|
||||||
* **Exemple d'utilisation:** `/api/sem_info/12`
|
|
||||||
* **Résultat:** Une liste avec les informations du semestre correspondant à l'id passé en paramètres.
|
|
||||||
* **Exemple de résultat:**
|
|
||||||
```
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"titre": "DUT Génie Electrique et Informatique Industrielle",
|
|
||||||
"date_debut": "2021-09-01",
|
|
||||||
"date_fin": "2022-02-02",
|
|
||||||
"modalite": "FI",
|
|
||||||
"sem_id_txt": "S3",
|
|
||||||
"titre_num": "DUT Génie Electrique et Informatique Industrielle semestre 3",
|
|
||||||
"anneescolaire": "2021 - 2022",
|
|
||||||
"periode": 1,
|
|
||||||
"titreannee": "DUT Génie Electrique et Informatique Industrielle semestre 3 FI 2021-2022"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Programmes de formations
|
## Programmes de formations
|
||||||
* **`formation`**
|
* **`formation`**
|
||||||
* **Méthode:** GET
|
* **Méthode:** GET
|
||||||
* **Paramètres:** `form_id` (_optionnel, si absent liste toutes les formations_)
|
* **Paramètres:** `formation_id` (_optionnel, si absent liste toutes les formations_)
|
||||||
* **Format URL:** `/api/formation` **ou** `/api/formation/<int:form_id>`
|
* **Format URL:** `/api/formation` **ou** `/api/formation/<int:formation_id>`
|
||||||
* **Exemple d'utilisation:** `/api/formation` **ou** `̀/api/formation/1`
|
* **Exemple d'utilisation:** `/api/formation` **ou** `/api/formation/1`
|
||||||
* **Résultat:** Liste des formations.
|
* **Résultat:** Liste des formations.
|
||||||
* **Exemple de résultat:** `[formation_1, formation_2, formation_3, ...]`
|
* **Exemple de résultat:** `[formation_1, formation_2, formation_3, ...]`
|
||||||
|
* TODO: détailler le contenu publié
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
* **`formation_export`**
|
* **`formation_export`**
|
||||||
* **Méthode:** GET
|
* **Méthode:** GET
|
||||||
* **Paramètres:** `form_id`, `export_ids` (_par défaut "faux"_)
|
* **Paramètres:** `formation_id`, `export_ids` (_par défaut "faux"_)
|
||||||
* **Format URL:** `/api/formation_export/<int:form_id>`
|
* **Format URL:** `/api/formation_export/<int:formation_id>`
|
||||||
* **Exemple d'utilisation:** `/api/formation_export/596`
|
* **Exemple d'utilisation:** `/api/formation_export/596` **ou** `/api/formation_export/596?format=xml&export_ids=1`
|
||||||
* **Résultat:** La formation, avec UE, matières, modules (_un arbre_).
|
* **Résultat:** La formation, avec UE, matières, modules (_un arbre_).
|
||||||
* **Exemple de résultat:**
|
* **Exemple de résultat:**
|
||||||
```
|
```
|
||||||
@ -214,119 +190,135 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ
|
|||||||
"matiere_2": "anglais",
|
"matiere_2": "anglais",
|
||||||
...
|
...
|
||||||
],
|
],
|
||||||
"modules": "module"
|
"modules": ...
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## UE
|
## UE
|
||||||
|
|
||||||
...
|
... TODO
|
||||||
|
|
||||||
|
|
||||||
## Modules de formation
|
|
||||||
* **`Notes/do_moduleimpl_list`**
|
|
||||||
* **Paramètres**: `formsemestre_id, moduleimpl_id, module_id]`
|
|
||||||
* **Résultat:** liste de moduleimpl
|
|
||||||
|
|
||||||
|
|
||||||
* **`Notes/do_moduleimpl_withmodule_list`**
|
|
||||||
* **Paramètres**: `formsemestre_id, moduleimpl_id, module_id]`
|
|
||||||
* **Résultat:** liste triée de moduleimpl, avec l'attribut `module`
|
|
||||||
|
|
||||||
|
|
||||||
## Semestres de formation
|
## Semestres de formation
|
||||||
Les sessions de formation (dénommées "semestres" même si elles durent une année ou un mois) sont représentées par les `formsemestre_id`.
|
Les sessions de formation (dénommées "semestres" même si elles durent une année ou un mois) sont représentées par les `formsemestre`.
|
||||||
|
|
||||||
* **`formsemestre_id`**
|
* **`formsemestre`**
|
||||||
* **Méthode:** GET
|
* **Méthode:** GET
|
||||||
* **Paramètres (_tous optionnels_):** `formsemestre_id`, `form_id`, `etape_apo`, `etape_apo2`
|
* **Paramètres:** `formsemestre_id` ou `etape_apo`, `format`(json ou xml)
|
||||||
* **Format URL:** `/api/formsemestre_id?form_id=1&etape_apo=V1RT`
|
* **Format URL:** `/api/formsemestre/<int:formsemestre_id>`, `/api/formsemestre/apo/<etape_apo>`
|
||||||
* **Exemple d'utilisation:** `/api/formsemestre_id?format=xml&etape_apo=V1RT`
|
* **Exemple d'utilisation:** `/api/formsemestre/12`
|
||||||
* **Résultat:** Liste des semestres correspondant.
|
* **Résultat:** Informations sur le(s) formsemestre(s).
|
||||||
* **Exemple de résultat:** `[sem_1, sem_2, sem_3, ...]`
|
* **Exemple de résultat:**
|
||||||
|
```
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"annee_scolaire": "2022 - 2023",
|
||||||
|
"date_debut": "2022-09-01",
|
||||||
|
"date_fin": "2023-02-02",
|
||||||
|
"modalite": "FI",
|
||||||
|
"periode": 1,
|
||||||
|
"semestre_idx_txt": "S3",
|
||||||
|
"semestre_idx" : 3,
|
||||||
|
"session_id" : "GEII-BUT-FI-S3-2022",
|
||||||
|
"titre_annee": "BUT Génie Electrique et Informatique Industrielle semestre 3 FI 2021-2022"
|
||||||
|
"titre_num": "BUT Génie Electrique et Informatique Industrielle semestre 3",
|
||||||
|
"titre": "BUT Génie Electrique et Informatique Industrielle",
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Note sur les identifiants de sessions
|
||||||
|
Le `session_id` peut être utilisé pour identifier de façon prévisible et
|
||||||
|
(presque) unique une session dans un établissement, ce qui est utile
|
||||||
|
notamment pour interfacer ScoDoc à d'autres logiciels (par exemple gestion d'emplois
|
||||||
|
du temps ou de services d'enseignement). Cet identifiant est constitué des
|
||||||
## Note sur les identifiants de sessions
|
informations suivantes:
|
||||||
Le `session_id` peut être utilisé pour identifier de façon prévisible et (presque) unique une session dans un établissement, ce qui est utile notamment pour interfacer ScoDoc à d'autres logiciels (eg gestion d'emplois du temps ou de services d'enseignement). Cet identifiant est constitué des informations suivantes:
|
|
||||||
|
|
||||||
* **Département** (RT, GEII, INFO...) (= paramètre `DeptName`, en majuscules)
|
* **Département** (RT, GEII, INFO...) (= paramètre `DeptName`, en majuscules)
|
||||||
* **Nom parcours:** DUT, LP, ... (défini au niveau du parcours dans ScoDoc = NAME)
|
* **Nom parcours:** BUT, LP, ... (défini au niveau du parcours dans ScoDoc = NAME)
|
||||||
* **Modalité:** FI, FC, FA
|
* **Modalité:** FI, FC, FA
|
||||||
* **"Spécialité":** S1 (ou S1D pour les sem. décalés), ou le `code_specialite` si pas de semestres. Le code spécialité est un champ (libre) nouveau dans la "formation" (programme pédagogique).
|
* **"Spécialité":** S1 (ou S1D pour les semestres décalés), ou le
|
||||||
* **Année:** année de début de l'année scolaire correspondante (eg 2014 pour une session appartenant à l'année scolaire 2014-2015, même si elle commence en mars 2015).
|
`code_specialite` si pas de semestres. Le code spécialité est un champ
|
||||||
|
(libre) nouveau dans la "formation" (programme pédagogique).
|
||||||
|
* **Année:** année de début de l'année scolaire correspondante (2014 pour
|
||||||
|
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)
|
**Exemple:** `INFO-DUT-FI-S1-2014` équivaut à un semestre S1 d'un DUT informatique de 2014 en formation initiale (FI)
|
||||||
|
|
||||||
|
|
||||||
|
## Modules de formation
|
||||||
|
Les moduleimpl sont les modules d'un semestre, ou les ressources, ou les SAÉs.
|
||||||
|
On peut récupérer soit un module par son id, soit la listes des modules d'un semestre.
|
||||||
|
* **`moduleimpl`**
|
||||||
|
* **Méthode:** GET
|
||||||
|
* **Paramètres**: `formsemestre_id` ou `moduleimpl_id`
|
||||||
|
* **Format URL:** `/api/moduleimpl/<int:moduleimpl_id>`, `/api/<int:moduleimpl_id>/formsemestre/<int:formsemestre_id>`
|
||||||
|
* **Résultat:** liste de moduleimpl
|
||||||
|
* **Exemple de résultat:**
|
||||||
|
TODO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Groupes et partitions
|
## Groupes et partitions
|
||||||
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.
|
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.
|
||||||
|
|
||||||
* **`formsemestre_id_partition`**
|
* **`partition`**
|
||||||
* **Méthode: GET**
|
* **Méthode: GET**
|
||||||
* **Paramètres:** `formsemestre_id`
|
* **Paramètres:** `formsemestre_id`
|
||||||
* **Format URL:** `/api/formsemestre_id_partition/<int:formsemestre_id>`
|
* **Format URL:** `/api/partition/<int:formsemestre_id>`
|
||||||
* **Exemple d'utilisation:** `/api/formsemestre_id_partition/48`
|
* **Exemple d'utilisation:** `/api/partition/48`
|
||||||
* **Résultat:** La liste de toutes les partitions selon un `formsemestre_id` donné.
|
* **Résultat:** La liste de toutes les partitions d'un formsemestre.
|
||||||
* **Exemple de résultat:** ici au format JSON
|
* **Exemple de résultat:**
|
||||||
```
|
```
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"formsemestre_id": "SEM12781",
|
"formsemestre_id": "12781",
|
||||||
"partition_id": "P23840",
|
"partition_id": "23840",
|
||||||
"partition_name": "TD"
|
"partition_name": "TD"
|
||||||
"group": [
|
"group": [
|
||||||
{
|
{
|
||||||
"formsemestre_id": "SEM12781",
|
"formsemestre_id": "12781",
|
||||||
"partition_id": "P23840",
|
"partition_id": "23840",
|
||||||
"group_name": "A",
|
"group_name": "A",
|
||||||
"group_id": "G23841",
|
"group_id": "23841",
|
||||||
"partition_name": "TD"
|
"partition_name": "TD"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"formsemestre_id": "SEM12781",
|
"formsemestre_id": "12781",
|
||||||
"partition_id": "P23840",
|
"partition_id": "23840",
|
||||||
"group_name": "B",
|
"group_name": "B",
|
||||||
"group_id": "G23843",
|
"group_id": "23843",
|
||||||
"partition_name": "TD"
|
"partition_name": "TD"
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"formsemestre_id": "SEM12781",
|
"formsemestre_id": "12781",
|
||||||
"partition_id": "P23941",
|
"partition_id": "23941",
|
||||||
"partition_name": "TP"
|
"partition_name": "TP"
|
||||||
"group": [
|
"group": [
|
||||||
{
|
{
|
||||||
"formsemestre_id": "SEM12781",
|
...
|
||||||
"partition_id": "P23941",
|
|
||||||
"group_name": "A1",
|
|
||||||
"group_id": "G23942",
|
|
||||||
"partition_name": "TP"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"formsemestre_id": "SEM12781",
|
|
||||||
"partition_id": "P23941",
|
|
||||||
"group_name": "A2",
|
|
||||||
"group_id": "G23943",
|
|
||||||
"partition_name": "TP"
|
|
||||||
},
|
},
|
||||||
|
...
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"formsemestre_id": "SEM12781",
|
"formsemestre_id": "12781",
|
||||||
"partition_id": "P22833",
|
"partition_id": "22833",
|
||||||
"partition_name": null
|
"partition_name": null
|
||||||
"group": [
|
"group": [
|
||||||
{
|
{
|
||||||
"formsemestre_id": "SEM12781",
|
"formsemestre_id": "12781",
|
||||||
"partition_id": "P22833",
|
"partition_id": "22833",
|
||||||
"group_name": null,
|
"group_name": null,
|
||||||
"group_id": "G22834",
|
"group_id": "G22834",
|
||||||
"partition_name": null
|
"partition_name": null
|
||||||
@ -337,7 +329,7 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
|
|||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
* **`groups_view`**
|
* **`groups`**
|
||||||
* **Méthode:** GET
|
* **Méthode:** GET
|
||||||
* **Paramètres:** `formsemestre_id` ou `group_ids` (_peut être répété_), `with_codes=0|1`, `all_groups=0|1`, `etat=None|I`
|
* **Paramètres:** `formsemestre_id` ou `group_ids` (_peut être répété_), `with_codes=0|1`, `all_groups=0|1`, `etat=None|I`
|
||||||
* **Format URL:**
|
* **Format URL:**
|
||||||
@ -352,7 +344,7 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
|
|||||||
<prenom value="Marc"/>
|
<prenom value="Marc"/>
|
||||||
<etat value="I"/>
|
<etat value="I"/>
|
||||||
<email value="toto@example.com"/>
|
<email value="toto@example.com"/>
|
||||||
<etudid value="EID9876"/>
|
<etudid value="9876"/>
|
||||||
<code_nip value="987654"/>
|
<code_nip value="987654"/>
|
||||||
<code_ine value=""/>
|
<code_ine value=""/>
|
||||||
</etud>
|
</etud>
|
||||||
@ -362,7 +354,7 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
|
|||||||
<prenom value="NATHALIE"/>
|
<prenom value="NATHALIE"/>
|
||||||
<etat value="I"/>
|
<etat value="I"/>
|
||||||
<email value="xxx@example.com"/>
|
<email value="xxx@example.com"/>
|
||||||
<etudid value="EID12345"/>
|
<etudid value="12345"/>
|
||||||
<code_nip value="12345678"/>
|
<code_nip value="12345678"/>
|
||||||
<code_ine value=""/>
|
<code_ine value=""/>
|
||||||
</etud>
|
</etud>
|
||||||
@ -377,10 +369,10 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
|
|||||||
"prenom":"Dalil",
|
"prenom":"Dalil",
|
||||||
"nom_disp":"CLINTO",
|
"nom_disp":"CLINTO",
|
||||||
"email":"xxx@example.com",
|
"email":"xxx@example.com",
|
||||||
"P62029":"A",
|
"62029":"A",
|
||||||
"P62032":null,
|
"62032":null,
|
||||||
"P62031":"G1",
|
"62031":"G1",
|
||||||
"P62030":"A1"
|
"62030":"A1"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"etat":"I",
|
"etat":"I",
|
||||||
@ -388,10 +380,10 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
|
|||||||
"prenom":"Georges",
|
"prenom":"Georges",
|
||||||
"nom_disp":"BUSH",
|
"nom_disp":"BUSH",
|
||||||
"email":"bush@example.com",
|
"email":"bush@example.com",
|
||||||
"P62029":"A",
|
"62029":"A",
|
||||||
"P62032":null,
|
"62032":null,
|
||||||
"P62031":"G1",
|
"62031":"G1",
|
||||||
"P62030":"A1"
|
"62030":"A1"
|
||||||
},
|
},
|
||||||
...
|
...
|
||||||
]
|
]
|
||||||
@ -403,22 +395,23 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
|
|||||||
* **Format URL:** `/api/set_groups?partition_id=<int:partition_id>&groups=<int:groups>&groups_to_delete=<int:groups_to_delete>&groups_to_create=<int:groups_to_create>`
|
* **Format URL:** `/api/set_groups?partition_id=<int:partition_id>&groups=<int:groups>&groups_to_delete=<int:groups_to_delete>&groups_to_create=<int:groups_to_create>`
|
||||||
* **Exemple d'utilisation:** `/api/set_groups?partition_id=65&groups=77&groups_to_delete=8&groups_to_create=4`
|
* **Exemple d'utilisation:** `/api/set_groups?partition_id=65&groups=77&groups_to_delete=8&groups_to_create=4`
|
||||||
* **Résultat:** Set les groups.
|
* **Résultat:** Set les groups.
|
||||||
|
TODO: à changer, passer les paramètres dans le corps de la requete
|
||||||
|
|
||||||
|
|
||||||
## Bulletins de notes
|
## Bulletins de notes
|
||||||
* **`evaluations`**
|
* **`evaluations`**
|
||||||
* **Méthode:** GET
|
* **Méthode:** GET
|
||||||
* **Paramètres:** `module_id`
|
* **Paramètres:** `moduleimpl_id`
|
||||||
* **Format URL:** `/api/evaluations/<int:module_id>`
|
* **Format URL:** `/api/evaluations/<int:moduleimpl_id>`
|
||||||
* **Exemple d'utilisation:** `/api/evaluations/54`
|
* **Exemple d'utilisation:** `/api/evaluations/54`
|
||||||
* **Résultat:** Liste des evaluations à partir de l'id d'un module.
|
* **Résultat:** Liste des évaluations à partir de l'id d'un moduleimpl.
|
||||||
* **Exemple de résultat:** `[eval_1, eval_2, eval_3, ...]`
|
* **Exemple de résultat:** `[eval_1, eval_2, eval_3, ...]`
|
||||||
|
|
||||||
|
|
||||||
* **`eval_notes`**
|
* **`evaluation_notes`**
|
||||||
* **Méthode**: GET
|
* **Méthode**: GET
|
||||||
* **Paramètres**: `eval_id`
|
* **Paramètres**: `evaluation_id`
|
||||||
* **Format URL:** `/api/eval_notes/<int:eval_id>`
|
* **Format URL:** `/api/eval_notes/<int:evaluation_id>`
|
||||||
* **Exemple d'utilisation:** `/api/eval_notes/24`
|
* **Exemple d'utilisation:** `/api/eval_notes/24`
|
||||||
* **Résultat:** Liste des notes à partir de l'id d'une évaluation donnée.
|
* **Résultat:** Liste des notes à partir de l'id d'une évaluation donnée.
|
||||||
* **Exemple de résultat:**
|
* **Exemple de résultat:**
|
||||||
@ -434,15 +427,16 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
|
|||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
* **`eval_set_notes`**
|
* **`evaluation_set_notes`**
|
||||||
* **Méthode:** POST
|
* **Méthode:** POST
|
||||||
* **Paramètres:** `eval_id`, `etudid`, `note`
|
* **Paramètres:** `eval_id`, `etudid`, `note`
|
||||||
* **Format URL:** `/api/eval_set_notes?eval_id=<int:eval_id> etudid=<int etudid>¬e=<int:note>`
|
* **Format URL:** `/api/eval_set_notes?eval_id=<int:eval_id> etudid=<int etudid>¬e=<int:note>`
|
||||||
* **Exemple d'utilisation:** `/api/eval_set_notes?eval_id=6 etudid=456¬e=15`
|
* **Exemple d'utilisation:** `/api/eval_set_notes?eval_id=6 etudid=456¬e=15`
|
||||||
* **Résultat:** Set les notes d'une évaluation pour un étudiant donné.
|
* **Résultat:** Set les notes d'une évaluation pour un étudiant donné.
|
||||||
|
TODO vérifier et passer les valeurs dans le corps.
|
||||||
|
|
||||||
|
|
||||||
* **`Notes/formsemestre_bulletinetud`**
|
* **`etud//bul`**
|
||||||
* **Méthode:** GET
|
* **Méthode:** GET
|
||||||
* **Paramètres:** `formsemestre_id`, `etudid`, `format` (`xml`ou `json`), `version` (`short`, `selectedevals` ou `long`)
|
* **Paramètres:** `formsemestre_id`, `etudid`, `format` (`xml`ou `json`), `version` (`short`, `selectedevals` ou `long`)
|
||||||
* **Format URL:**
|
* **Format URL:**
|
||||||
@ -463,10 +457,10 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
|
|||||||
"prenom": "Roberto",
|
"prenom": "Roberto",
|
||||||
"sexe": "M.",
|
"sexe": "M.",
|
||||||
"code_ine": "",
|
"code_ine": "",
|
||||||
etudid": "EID9860",
|
etudid": "9860",
|
||||||
"code_nip": "123456789",
|
"code_nip": "123456789",
|
||||||
"email": "roberto@santateresa.mx",
|
"email": "roberto@santateresa.mx",
|
||||||
"photo_url": "\/ScoDoc\/static\/photos\/F68\/RT_EID29960.h90.jpg"
|
"photo_url": "\/ScoDoc\/static\/photos\/F68\/RT_29960.h90.jpg"
|
||||||
},
|
},
|
||||||
"bonus_sport_culture": {
|
"bonus_sport_culture": {
|
||||||
"value": 0
|
"value": 0
|
||||||
@ -486,7 +480,7 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
|
|||||||
"value": "15.51",
|
"value": "15.51",
|
||||||
"min": "07.29"
|
"min": "07.29"
|
||||||
},
|
},
|
||||||
etudid": "EID9860",
|
etudid": "9860",
|
||||||
"decision_ue": [
|
"decision_ue": [
|
||||||
{
|
{
|
||||||
"acronyme": "UE11",
|
"acronyme": "UE11",
|
||||||
@ -599,7 +593,7 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
|
|||||||
"evaluation": [
|
"evaluation": [
|
||||||
|
|
||||||
],
|
],
|
||||||
"id": "MIP27427"
|
"id": "27427"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coefficient": 2,
|
"coefficient": 2,
|
||||||
@ -626,7 +620,7 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
|
|||||||
"evaluation": [
|
"evaluation": [
|
||||||
|
|
||||||
],
|
],
|
||||||
"id": "MIP27437"
|
"id": "27437"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coefficient": 1.5,
|
"coefficient": 1.5,
|
||||||
@ -653,7 +647,7 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
|
|||||||
"evaluation": [
|
"evaluation": [
|
||||||
|
|
||||||
],
|
],
|
||||||
"id": "MIP27451"
|
"id": "27451"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coefficient": 2,
|
"coefficient": 2,
|
||||||
@ -680,7 +674,7 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
|
|||||||
"evaluation": [
|
"evaluation": [
|
||||||
|
|
||||||
],
|
],
|
||||||
"id": "MIP27431"
|
"id": "27431"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coefficient": 2,
|
"coefficient": 2,
|
||||||
@ -707,7 +701,7 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
|
|||||||
"evaluation": [
|
"evaluation": [
|
||||||
|
|
||||||
],
|
],
|
||||||
"id": "MIP27433"
|
"id": "27433"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coefficient": 1.5,
|
"coefficient": 1.5,
|
||||||
@ -734,7 +728,7 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
|
|||||||
"evaluation": [
|
"evaluation": [
|
||||||
|
|
||||||
],
|
],
|
||||||
"id": "MIP27449"
|
"id": "27449"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coefficient": 1.5,
|
"coefficient": 1.5,
|
||||||
@ -761,7 +755,7 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
|
|||||||
"evaluation": [
|
"evaluation": [
|
||||||
|
|
||||||
],
|
],
|
||||||
"id": "MIP27440"
|
"id": "27440"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coefficient": 1.5,
|
"coefficient": 1.5,
|
||||||
@ -788,14 +782,14 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
|
|||||||
"evaluation": [
|
"evaluation": [
|
||||||
|
|
||||||
],
|
],
|
||||||
"id": "MIP27453"
|
"id": "27453"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coefficient": 1,
|
"coefficient": 1,
|
||||||
"rang": {
|
"rang": {
|
||||||
"value": "4 ex"
|
"value": "4 ex"
|
||||||
},
|
},
|
||||||
"code": "M1109",
|
"code": "1109",
|
||||||
"code_apogee": "VRT1109",
|
"code_apogee": "VRT1109",
|
||||||
"numero": 1109,
|
"numero": 1109,
|
||||||
"note": {
|
"note": {
|
||||||
@ -815,7 +809,7 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
|
|||||||
"evaluation": [
|
"evaluation": [
|
||||||
|
|
||||||
],
|
],
|
||||||
"id": "MIP27444"
|
"id": "27444"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"effectif": "51",
|
"effectif": "51",
|
||||||
@ -859,7 +853,7 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
|
|||||||
"evaluation": [
|
"evaluation": [
|
||||||
|
|
||||||
],
|
],
|
||||||
"id": "MIP27430"
|
"id": "27430"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coefficient": 2,
|
"coefficient": 2,
|
||||||
@ -886,7 +880,7 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
|
|||||||
"evaluation": [
|
"evaluation": [
|
||||||
|
|
||||||
],
|
],
|
||||||
"id": "MIP27439"
|
"id": "27439"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coefficient": 1,
|
"coefficient": 1,
|
||||||
@ -913,7 +907,7 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
|
|||||||
"evaluation": [
|
"evaluation": [
|
||||||
|
|
||||||
],
|
],
|
||||||
"id": "MIP27436"
|
"id": "27436"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coefficient": 2,
|
"coefficient": 2,
|
||||||
@ -940,7 +934,7 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
|
|||||||
"evaluation": [
|
"evaluation": [
|
||||||
|
|
||||||
],
|
],
|
||||||
"id": "MIP27454"
|
"id": "27454"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coefficient": 2,
|
"coefficient": 2,
|
||||||
@ -967,7 +961,7 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
|
|||||||
"evaluation": [
|
"evaluation": [
|
||||||
|
|
||||||
],
|
],
|
||||||
"id": "MIP27432"
|
"id": "27432"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coefficient": 2,
|
"coefficient": 2,
|
||||||
@ -994,7 +988,7 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
|
|||||||
"evaluation": [
|
"evaluation": [
|
||||||
|
|
||||||
],
|
],
|
||||||
"id": "MIP27435"
|
"id": "27435"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coefficient": 2,
|
"coefficient": 2,
|
||||||
@ -1021,7 +1015,7 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
|
|||||||
"evaluation": [
|
"evaluation": [
|
||||||
|
|
||||||
],
|
],
|
||||||
"id": "MIP27445"
|
"id": "27445"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coefficient": 1,
|
"coefficient": 1,
|
||||||
@ -1048,7 +1042,7 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
|
|||||||
"evaluation": [
|
"evaluation": [
|
||||||
|
|
||||||
],
|
],
|
||||||
"id": "MIP27434"
|
"id": "27434"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"effectif": "51",
|
"effectif": "51",
|
||||||
@ -1135,7 +1129,7 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
|
|||||||
"nbabsnonjust": "7",
|
"nbabsnonjust": "7",
|
||||||
"nbjustifs_noabs": "0",
|
"nbjustifs_noabs": "0",
|
||||||
"nomprenom": "Mme Poisson Dodouce",
|
"nomprenom": "Mme Poisson Dodouce",
|
||||||
"etudid": "EID12345"
|
"etudid": "12345"
|
||||||
},
|
},
|
||||||
...
|
...
|
||||||
]
|
]
|
||||||
|
Loading…
Reference in New Issue
Block a user