revision doc api scodoc9

This commit is contained in:
leonard_montalbano 2021-11-18 17:16:04 +01:00
parent f280ecf541
commit ca7a2fe546

View File

@ -36,7 +36,7 @@ Certaines ont plusieurs "routes" (URl), car ScoDoc 7 tolérait divers accès.
- `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/form_sem` (deviendra `api/formsemestre`) - `Notes/formsemestre_id` (deviendra `api/formsemestre`)
- `Notes/formsemestre_bulletinetud` (deviendra `api/formsemestre_bulletinetud`) - `Notes/formsemestre_bulletinetud` (deviendra `api/formsemestre_bulletinetud`)
- `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>`)
@ -77,11 +77,11 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ
# Description d'accès aux données # Description d'accès aux données
## Départements ## Départements
* **`departements`** * **`departement`**
* **Méthode:** GET * **Méthode:** GET
* **Paramètres:** `viewable` (optionnel, si faux liste aussi les départements non accessible à l'utilisateur courant), `format` (json, xml) * **Paramètres:** `viewable` (optionnel, si faux liste aussi les départements non accessible à l'utilisateur courant), `format` (json, xml)
* **Format URL:** `/api/departements` * **Format URL:** `/api/departement`
* **Exemple d'utilisation:** `/api/departements` * **Exemple d'utilisation:** `/api/departement`
* **Résultat:** Liste des id de départements. * **Résultat:** Liste des id de départements.
* **Exemple de résultat:** `[id_1, id_2, id_3, ...]` * **Exemple de résultat:** `[id_1, id_2, id_3, ...]`
@ -106,11 +106,11 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ
``` ```
* **`etud_info`** * **`etud`**
* **Méthode:** GET * **Méthode:** GET
* **Paramètres:** etudid * **Paramètres:** etudid
* **Format URL:** `/api/etud_info/<int etudid>` * **Format URL:** `/api/etud/<int:etudid>`
* **Exemple d'utilisation:** `/api/etud_info/987` * **Exemple d'utilisation:** `/api/etud/987`
* **Résultat:** Un dictionnaire avec les informations de l'étudiant correspondant à l'id passé en paramètres. * **Résultat:** Un dictionnaire avec les informations de l'étudiant correspondant à l'id passé en paramètres.
* **Exemple de résultat:** * **Exemple de résultat:**
``` ```
@ -123,15 +123,15 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ
"insemestre": [ "insemestre": [
{ {
"etat": "I", "etat": "I",
"form_sem_id": "SEM12781", "formsemestre_id": "SEM12781",
"date_fin": "30-07-2010", "date_fin": "2010-07-30",
"date_debut": "25-01-2010" "date_debut": "2010-01-25"
}, },
{ {
"etat": "I", "etat": "I",
"form_sem_id": "SEM8396", "formsemestre_id": "SEM8396",
"date_fin": "16-01-2009", "date_fin": "2009-01-16",
"date_debut": "01-09-2008" "date_debut": "2008-09-01"
} }
], ],
"etudid": "EID8768", "etudid": "EID8768",
@ -145,8 +145,8 @@ 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_bul/<int etudid>/<int:sem_id>` * **Format URL:** `/api/etud/<int:etudid>/bul/<int:sem_id>`
* **Exemple d'utilisation:** `/api/etud_bul/987/12` * **Exemple d'utilisation:** `/api/etud/987/bul/12`
* **Résultat:** Le bulletin d'un étudiant en fonction de son id et d'un semestre donné. * **Résultat:** Le bulletin d'un étudiant en fonction de son id et d'un semestre donné.
* **Exemple de résultat:** [Bulletins par défaut](https://scodoc.org/ParametrageBulletins/#exemple-1-bulletins-par-defaut) * **Exemple de résultat:** [Bulletins par défaut](https://scodoc.org/ParametrageBulletins/#exemple-1-bulletins-par-defaut)
@ -155,8 +155,8 @@ 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_photo/<int etudid>` **OU** `/api/etud_photo/<int etudid>/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_)
* **Exemple d'utilisation:** `/api/etud_photo/123` **OU** `/api/etud_photo/123/small` (_pour la version small_) * **Exemple d'utilisation:** `/api/etud/123/photo` **OU** `/api/etud/123/photo/small` (_pour la version small_)
* **Résultat:** Image en JPEG ou PNG. * **Résultat:** Image en JPEG ou PNG.
@ -165,7 +165,7 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ
* **`sem_info`** * **`sem_info`**
* **Méthode:** GET * **Méthode:** GET
* **Paramètres:** `sem_id` * **Paramètres:** `sem_id`
* **Format URL:** `/api/sem_id/<int:sem_id>` * **Format URL:** `/api/sem_info/<int:sem_id>`
* **Exemple d'utilisation:** `/api/sem_info/12` * **Exemple d'utilisation:** `/api/sem_info/12`
* **Résultat:** Une liste avec les informations du semestre correspondant à l'id passé en paramètres. * **Résultat:** Une liste avec les informations du semestre correspondant à l'id passé en paramètres.
* **Exemple de résultat:** * **Exemple de résultat:**
@ -173,8 +173,8 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ
[ [
{ {
"titre": "DUT Génie Electrique et Informatique Industrielle", "titre": "DUT Génie Electrique et Informatique Industrielle",
"date_debut": "01/09/2021", "date_debut": "2021-09-01",
"date_fin": "02/02/2022", "date_fin": "2022-02-02",
"modalite": "FI", "modalite": "FI",
"sem_id_txt": "S3", "sem_id_txt": "S3",
"titre_num": "DUT Génie Electrique et Informatique Industrielle semestre 3", "titre_num": "DUT Génie Electrique et Informatique Industrielle semestre 3",
@ -188,21 +188,21 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ
## Programmes de formations ## Programmes de formations
* **`formations`** * **`formation`**
* **Méthode:** GET * **Méthode:** GET
* **Paramètres:** `form_id` (_optionnel, si absent liste toutes les formations_) * **Paramètres:** `form_id` (_optionnel, si absent liste toutes les formations_)
* **Format URL:** `/api/formations` **ou** `/api/formations/<int:form_id>` * **Format URL:** `/api/formation` **ou** `/api/formation/<int:form_id>`
* **Exemple d'utilisation:** `/api/formations` **ou** `̀/api/formations/1` * **Exemple d'utilisation:** `/api/formation` **ou** `̀/api/formation/1`
* **Résultat:** Liste des formations. * **Résultat:** Liste des formations.
* **Exemple de résultat:** `[form_1, form_2, form_3, ...]` * **Exemple de résultat:** `[formation_1, formation_2, formation_3, ...]`
* **`form_export`** * **`formation_export`**
* **Méthode:** GET * **Méthode:** GET
* **Paramètres:** `form_id`, `export_ids` (_par défaut "faux"_) * **Paramètres:** `form_id`, `export_ids` (_par défaut "faux"_)
* **Format URL:** `/api/form_export/<int:form_id>` * **Format URL:** `/api/formation_export/<int:form_id>`
* **Exemple d'utilisation:** `/api/form_export/596` * **Exemple d'utilisation:** `/api/formation_export/596`
* **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:**
``` ```
@ -217,37 +217,38 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ
"modules": "module" "modules": "module"
} }
``` ```
## 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 `form_sem`.
* **`form_sem`**
* **Méthode:** GET
* **Paramètres (_tous optionnels_):** `form_sem_id`, `form_id`, `etape_apo`, `etape_apo2`
* **Format URL:** `/api/form_sem?form_id=1&etape_apo=V1RT`
* **Exemple d'utilisation:** `/api/form_sem?format=xml&etape_apo=V1RT`
* **Résultat:** Liste des semestres correspondant.
* **Exemple de résultat:** `[sem_1, sem_2, sem_3, ...]`
## UE ## UE
... ...
## '################################################################################'
## Modules de formation ## Modules de formation
* **`Notes/do_moduleimpl_list`** * **`Notes/do_moduleimpl_list`**
* **Paramètres**: `form_sem_id, moduleimpl_id, module_id]` * **Paramètres**: `formsemestre_id, moduleimpl_id, module_id]`
* **Résultat:** liste de moduleimpl * **Résultat:** liste de moduleimpl
* **`Notes/do_moduleimpl_withmodule_list`** * **`Notes/do_moduleimpl_withmodule_list`**
* **Paramètres**: `form_sem_id, moduleimpl_id, module_id]` * **Paramètres**: `formsemestre_id, moduleimpl_id, module_id]`
* **Résultat:** liste triée de moduleimpl, avec l'attribut `module` * **Résultat:** liste triée de moduleimpl, avec l'attribut `module`
## '#################################################################################'
## 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`.
* **`formsemestre_id`**
* **Méthode:** GET
* **Paramètres (_tous optionnels_):** `formsemestre_id`, `form_id`, `etape_apo`, `etape_apo2`
* **Format URL:** `/api/formsemestre_id?form_id=1&etape_apo=V1RT`
* **Exemple d'utilisation:** `/api/formsemestre_id?format=xml&etape_apo=V1RT`
* **Résultat:** Liste des semestres correspondant.
* **Exemple de résultat:** `[sem_1, sem_2, sem_3, ...]`
## Note sur les identifiants de sessions ## 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 (eg gestion d'emplois du temps ou de services d'enseignement). Cet identifiant est constitué des 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:
@ -267,29 +268,29 @@ Le `session_id` peut être utilisé pour identifier de façon prévisible et (pr
## 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.
* **`form_sem_partition`** * **`formsemestre_id_partition`**
* **Méthode: GET** * **Méthode: GET**
* **Paramètres:** `form_sem_id` * **Paramètres:** `formsemestre_id`
* **Format URL:** `/api/form_sem_partition/<int:form_sem_id>` * **Format URL:** `/api/formsemestre_id_partition/<int:formsemestre_id>`
* **Exemple d'utilisation:** `/api/form_sem_partition/48` * **Exemple d'utilisation:** `/api/formsemestre_id_partition/48`
* **Résultat:** La liste de toutes les partitions celon un `form_sem_id` donné. * **Résultat:** La liste de toutes les partitions selon un `formsemestre_id` donné.
* **Exemple de résultat:** ici au format JSON * **Exemple de résultat:** ici au format JSON
``` ```
[ [
{ {
"form_sem_id": "SEM12781", "formsemestre_id": "SEM12781",
"partition_id": "P23840", "partition_id": "P23840",
"partition_name": "TD" "partition_name": "TD"
"group": [ "group": [
{ {
"form_sem_id": "SEM12781", "formsemestre_id": "SEM12781",
"partition_id": "P23840", "partition_id": "P23840",
"group_name": "A", "group_name": "A",
"group_id": "G23841", "group_id": "G23841",
"partition_name": "TD" "partition_name": "TD"
}, },
{ {
"form_sem_id": "SEM12781", "formsemestre_id": "SEM12781",
"partition_id": "P23840", "partition_id": "P23840",
"group_name": "B", "group_name": "B",
"group_id": "G23843", "group_id": "G23843",
@ -298,19 +299,19 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
], ],
}, },
{ {
"form_sem_id": "SEM12781", "formsemestre_id": "SEM12781",
"partition_id": "P23941", "partition_id": "P23941",
"partition_name": "TP" "partition_name": "TP"
"group": [ "group": [
{ {
"form_sem_id": "SEM12781", "formsemestre_id": "SEM12781",
"partition_id": "P23941", "partition_id": "P23941",
"group_name": "A1", "group_name": "A1",
"group_id": "G23942", "group_id": "G23942",
"partition_name": "TP" "partition_name": "TP"
}, },
{ {
"form_sem_id": "SEM12781", "formsemestre_id": "SEM12781",
"partition_id": "P23941", "partition_id": "P23941",
"group_name": "A2", "group_name": "A2",
"group_id": "G23943", "group_id": "G23943",
@ -319,12 +320,12 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
], ],
}, },
{ {
"form_sem_id": "SEM12781", "formsemestre_id": "SEM12781",
"partition_id": "P22833", "partition_id": "P22833",
"partition_name": null "partition_name": null
"group": [ "group": [
{ {
"form_sem_id": "SEM12781", "formsemestre_id": "SEM12781",
"partition_id": "P22833", "partition_id": "P22833",
"group_name": null, "group_name": null,
"group_id": "G22834", "group_id": "G22834",
@ -338,7 +339,7 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
* **`groups_view`** * **`groups_view`**
* **Méthode:** GET * **Méthode:** GET
* **Paramètres:** `form_sem_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:**
* **Exemple d'utilisation:** * **Exemple d'utilisation:**
* **Résultat:** Liste des étudiants dans un groupe. * **Résultat:** Liste des étudiants dans un groupe.
@ -443,7 +444,7 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
* **`Notes/formsemestre_bulletinetud`** * **`Notes/formsemestre_bulletinetud`**
* **Méthode:** GET * **Méthode:** GET
* **Paramètres:** `form_sem_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:**
* **Exemple d'utilisation:** * **Exemple d'utilisation:**
* **Résultat:** Un bulletin de notes. * **Résultat:** Un bulletin de notes.
@ -477,7 +478,7 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
"decision": { "decision": {
"etat": "I", "etat": "I",
"code": "ADM", "code": "ADM",
"compenseform_sem_id" : "SEM12345" /* si ce semestre en compense un autre */ "compenseformsemestre_id" : "SEM12345" /* si ce semestre en compense un autre */
}, },
"note": { "note": {
"max": "15.51", "max": "15.51",
@ -558,7 +559,7 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
"group_name": "" "group_name": ""
} }
], ],
form_sem_id": "SEM12345", formsemestre_id": "SEM12345",
"etape_apo": "V1RT", "etape_apo": "V1RT",
"ue": [ "ue": [
{ {
@ -1073,12 +1074,12 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
"id": "UE23716" "id": "UE23716"
} }
], ],
"situation": "Inscrit le 02\/09\/2015. D\u00e9cision jury: Valid\u00e9. UE acquises: UE11, UE12. Autoris\u00e9 \u00e0 s&apos;inscrire en S2." "situation": "Inscrit le 2015-09-02. D\u00e9cision jury: Valid\u00e9. UE acquises: UE11, UE12. Autoris\u00e9 \u00e0 s&apos;inscrire en S2."
} }
``` ```
## Absences ## Absences
**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. **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`**
@ -1095,36 +1096,34 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
* **`abs_signale`** * **`abs_signale`**
* **Méthode:** POST * **Méthode:** POST
* **Paramètres:** `date_debut`, `date_fin`, `module_impl_id=None`, `demi_journee=2`, `estjust=False`, `description`, `etudid` * **Paramètres:** `date_debut`, `date_fin`, `module_impl_id=None`, `demi_journee=2`, `estjust=False`, `description`, `etudid`
* **Format URL:** `/api/abs_signale/?date_debut=date_debut&date_fin=date_fin&demi_journee=demi_journee&description=description&etudid=<int:etudid>` * **Body de la requête:** `date_debut=date_debut&date_fin=date_fin&demi_journee=demi_journee&description=description&etudid=<int:etudid>`
* **Exemple d'utilisation:** `/api/abs_signale/?date_debut=2015/02/01&date_fin=2015/02/03&demi_journee=4&description=""&etudid=874` * **Exemple d'utilisation:** `date_debut=2015-02-01&date_fin=2015-02-03&demi_journee=4&description=""&etudid=874`
* **Résultat:** *html* * **Résultat:** *html*
* **Remarques:** Dates au format iso `yyyy/mm/dd`. Date de fin non incluse. `demi_journee`: 2 si journée complète, 1 matin, 0 après-midi.
* **`abs_annule`** * **`abs_annule`**
* **Méthode:** POST * **Méthode:** POST
* **Paramètres:** `date_debut`, `date_fin`, `demi_journee`, `etudid` * **Paramètres:** `date_debut`, `date_fin`, `demi_journee`, `etudid`
* **Format URL:** `/api/abs_annule/?date_debut=date_debut&date_fin=date_fin&demi_journee=demi_journee&etudid=<int:etudid>` * **Body de la requête:** `date_debut=date_debut&date_fin=date_fin&demi_journee=demi_journee&etudid=<int:etudid>`
* **Exemple d'utilisation:** `/api/abs_annule/?date_debut=2004/05/03&date_fin=2004/06/07&demi_journee=2&etudid=451` * **Exemple d'utilisation:** `date_debut=2004-05-03&date_fin=2004-06-07&demi_journee=2&etudid=451`
* **Résultat:** *html* * **Résultat:** *html*
* **Remarques:** Dates au format iso `yyyy/mm/dd`. Date de fin non incluse. `demi_journee`: 2 si journée complète, 1 matin, 0 après-midi.
* **`abs_annule_justif`** * **`abs_annule_justif`**
* **Méthode:** POST * **Méthode:** POST
* **Paramètres:** `context`, `date_debut`, `date_fin`, `demi_journee` * **Paramètres:** `context`, `date_debut`, `date_fin`, `demi_journee`
* **Format URL:** `/api/abs_annule_justif/?context=context&date_debut=date_debut&date_fin=date_fin&demi_journee=demi_journee` * **Body de la requête:** `context=context&date_debut=date_debut&date_fin=date_fin&demi_journee=demi_journee`
* **Exemple d'utilisation:** `/api/abs_annule_justif/?context=malade&date_debut=2020/01/05&date_fin=2020/01/06&demi_journee=1` * **Exemple d'utilisation:** `context=malade&date_debut=2020-01-05&date_fin=2020-01-06&demi_journee=1`
* **Résultat:** *html* * **Résultat:** *html*
* **Remarques:** Dates au format iso `yyyy/mm/dd`. Date de fin non incluse. `demi_journee`: 2 si journée complète, 1 matin, 0 après-midi.
* **`abs_groupe_etat`** * **`abs_groupe_etat`**
* **Méthode:** GET * **Méthode:** GET
* **Paramètres:** `group_ids`, `date_debut`, `date_fin`, `with_boursier=True`, `format=html` * **Paramètres:** `group_ids`, `date_debut`, `date_fin`, `with_boursier=True`, `format=html`
* **Format URL:** `/api/abs_group_etat/?group_ids=group_ids&date_debut=date_debut&date_fin=date_fin` * **Format URL:** `/api/abs_group_etat/?group_ids=group_ids&date_debut=date_debut&date_fin=date_fin`
* **Exemple d'utilisation:** `/api/abs_group_etat/?group_ids=45&date_debut=2019/01/30&date_fin=2019/02/30` * **Exemple d'utilisation:** `/api/abs_group_etat/?group_ids=45&date_debut=2019-01-30&date_fin=2019-02-30`
* **Résultat:** Liste des absences d'un ou plusieurs groupes entre deux dates. * **Résultat:** Liste des absences d'un ou plusieurs groupes entre deux dates.
* **Exemple de résultat:** si `format="json"` cela donne: * **Exemple de résultat:** si `format="json"` cela donne:
``` ```
@ -1141,8 +1140,6 @@ L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieu
... ...
] ]
``` ```
* **Remarques:** Dates au format iso `yyyy/mm/dd`. Date de fin non incluse. `demi_journee`: 2 si journée complète, 1 matin, 0 après-midi.