Merge branch 'master' into bonus-malus

This commit is contained in:
Jean-Marie Place 2023-07-29 08:14:11 +02:00
commit 042c80387f
19 changed files with 398 additions and 208 deletions

View File

@ -1434,7 +1434,6 @@ valeurs numériques mais pas JSON compliant à cause des `NaN`.
Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences. Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
<!-- TODO: faire les samples -->
#### Structure Assiduité #### Structure Assiduité
| attribut | type | commentaire | | attribut | type | commentaire |
@ -1467,7 +1466,10 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Paramètres:** `etudid` * **Paramètres:**
* `etudid`
* `nip`
* `ine`
* **Query string:** * **Query string:**
* `etat` ('present','retard','absent) * `etat` ('present','retard','absent)
* `moduleimpl_id` (X : id du moduleimpl concerné) * `moduleimpl_id` (X : id du moduleimpl concerné)
@ -1479,6 +1481,12 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* **Routes:** * **Routes:**
* `/assiduites/<int:etudid>` * `/assiduites/<int:etudid>`
* `/assiduites/<int:etudid>/query?` * `/assiduites/<int:etudid>/query?`
* `/assiduites/etudid/<int:etudid>`
* `/assiduites/etudid/<int:etudid>/query?`
* `/assiduites/nip/<nip>`
* `/assiduites/nip/<nip>/query?`
* `/assiduites/ine/<ine>`
* `/assiduites/ine/<ine>/query?`
* **Exemple d'utilisation:** * **Exemple d'utilisation:**
* `/api/assiduites/1` * `/api/assiduites/1`
* `/api/assiduites/1/query?etat=retard` * `/api/assiduites/1/query?etat=retard`
@ -1490,7 +1498,10 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Paramètres:** `etudid` * **Paramètres:**
* `etudid`
* `nip`
* `ine`
* **Query string:** * **Query string:**
* `etat` ('present','retard','absent) * `etat` ('present','retard','absent)
* `moduleimpl_id` (X : id du moduleimpl concerné) * `moduleimpl_id` (X : id du moduleimpl concerné)
@ -1503,6 +1514,12 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* **Routes:** * **Routes:**
* `/assiduites/<int:etudid>/count` * `/assiduites/<int:etudid>/count`
* `/assiduites/<int:etudid>/count/query?` * `/assiduites/<int:etudid>/count/query?`
* `/assiduites/etudid/<int:etudid>/count`
* `/assiduites/etudid/<int:etudid>/count/query?`
* `/assiduites/nip/<nip>/count`
* `/assiduites/nip/<nip>/count/query?`
* `/assiduites/ine/<ine>/count`
* `/assiduites/ine/<ine>/count/query?`
* **Exemple d'utilisation:** * **Exemple d'utilisation:**
* `/api/assiduites/1` * `/api/assiduites/1`
* `/api/assiduites/1/count/query?etat=retard` * `/api/assiduites/1/count/query?etat=retard`
@ -1515,7 +1532,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Paramètres:** `etudid` * **Paramètres:** `formsemestre_id`
* **Query string:** * **Query string:**
* `etat` ('present','retard','absent) * `etat` ('present','retard','absent)
* `moduleimpl_id` (X : id du moduleimpl concerné) * `moduleimpl_id` (X : id du moduleimpl concerné)
@ -1537,7 +1554,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Paramètres:** `etudid` * **Paramètres:** `formsemestre_id`
* **Query string:** * **Query string:**
* `etat` ('present','retard','absent) * `etat` ('present','retard','absent)
* `moduleimpl_id` (X : id du moduleimpl concerné) * `moduleimpl_id` (X : id du moduleimpl concerné)
@ -1585,7 +1602,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
#### **assiduites-create** #### **assiduites-create**
* **Méthode:** POST * **Méthode:** POST
* **Permission: `ScoAssiduiteChange`** * **Permission: `ScoAbsChange`**
* **Data:** * **Data:**
```json ```json
@ -1607,7 +1624,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* `/assiduites/create` * `/assiduites/create`
* **Exemple d'utilisation:** `/api/assiduites/create` * **Exemple d'utilisation:** `/api/assiduites/create`
> `[{date_debut: "2022-10-27T08:00",date_fin: "2022-10-27T10:00",etat: "absent",etudid:1}]` > `[{"date_debut": "2022-10-27T08:00","date_fin": "2022-10-27T10:00","etat": "absent","etudid":1}]`
* **Résultat:** Retourne un objet en deux parties (errors et success) contenant le retour de chaque objet donné dans la requête POST. * **Résultat:** Retourne un objet en deux parties (errors et success) contenant le retour de chaque objet donné dans la requête POST.
@ -1615,8 +1632,11 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
#### **assiduite-create** #### **assiduite-create**
* **Méthode:** POST * **Méthode:** POST
* **Permission: `ScoAssiduiteChange`** * **Permission: `ScoAbsChange`**
* **Paramètres:** `etudid` * **Paramètres:**
* `etudid`
* `nip`
* `ine`
* **Data:** * **Data:**
```json ```json
@ -1634,9 +1654,12 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* **Routes:** * **Routes:**
* `/assiduite/<int:etudid>/create` * `/assiduite/<int:etudid>/create`
* `/assiduites/etudid/<int:etudid>/create`
* `/assiduites/nip/<nip>/create`
* `/assiduites/ine/<ine>/create`
* **Exemple d'utilisation:** `/api/assiduite/1/create` * **Exemple d'utilisation:** `/api/assiduite/1/create`
> `[{date_debut: "2022-10-27T08:00",date_fin: "2022-10-27T10:00",etat: "absent"}]` > `[{"date_debut": "2022-10-27T08:00","date_fin": "2022-10-27T10:00","etat": "absent"}]`
* **Résultat:** Retourne un objet en deux parties (errors et success) contenant le retour de chaque objet donné dans la requête POST. * **Résultat:** Retourne un objet en deux parties (errors et success) contenant le retour de chaque objet donné dans la requête POST.
* **Exemple de résultat:** [assiduite_create.json](samples/sample_assiduite_create.json.md) * **Exemple de résultat:** [assiduite_create.json](samples/sample_assiduite_create.json.md)
@ -1644,7 +1667,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
#### **assiduite-edit** #### **assiduite-edit**
* **Méthode:** POST * **Méthode:** POST
* **Permission: `ScoAssiduiteChange`** * **Permission: `ScoAbsChange`**
* **Paramètres:** `assiduite_id` * **Paramètres:** `assiduite_id`
* **Data:** * **Data:**
@ -1659,7 +1682,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* **Routes:** `/assiduite/<int:assiduite_id>/edit` * **Routes:** `/assiduite/<int:assiduite_id>/edit`
* **Exemple d'utilisation:** `/api/assiduite/1/edit` * **Exemple d'utilisation:** `/api/assiduite/1/edit`
> `{etat: "absent"}` > `{"etat": "absent"}`
* **Résultat:** Modifie l'assiduité désignée. Renvoie une erreur si la * **Résultat:** Modifie l'assiduité désignée. Renvoie une erreur si la
modification rend incompatible la plage de l'assiduité par rapport aux autres modification rend incompatible la plage de l'assiduité par rapport aux autres
@ -1669,16 +1692,16 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
#### **assiduites-edit** #### **assiduites-edit**
* **Méthode:** POST * **Méthode:** POST
* **Permission: `ScoAssiduiteChange`** * **Permission: `ScoAbsChange`**
* **Data:** * **Data:**
```json ```json
[ [
{ {
"etudid":<int> "etudid":<int>,
"etat"?: <string>, "etat"?: <string>,
"moduleimpl_id"?: <int> "moduleimpl_id"?: <int>,
"desc"?:<string> "desc"?:<string>,
}, },
... ...
] ]
@ -1688,14 +1711,14 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* `/assiduites/edit` * `/assiduites/edit`
* **Exemple d'utilisation:** `/api/assiduites/edit` * **Exemple d'utilisation:** `/api/assiduites/edit`
> `[{etat: "absent",assiduite_id:1},{etat: "retard",moduleimpl_id:12,assiduite_id:2}]` > `[{"etat": "absent","assiduite_id":1},{"etat": "retard","moduleimpl_id":12,"assiduite_id":2}]`
* **Résultat:** Retourne un objet en deux parties (errors et success) contenant le retour de chaque objet donné dans la requête POST. * **Résultat:** Retourne un objet en deux parties (errors et success) contenant le retour de chaque objet donné dans la requête POST.
#### **assiduite-delete** #### **assiduite-delete**
* **Méthode:** POST * **Méthode:** POST
* **Permission: `ScoAssiduiteChange`** * **Permission: `ScoAbsChange`**
* **Data:** * **Data:**
```json ```json
@ -1718,14 +1741,15 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
| attribut | type | commentaire | | attribut | type | commentaire |
| :----------- | :------------- | :------------------------------------------------------------ | | :----------- | :------------- | :------------------------------------------------------------ |
| *justif_id* | int | identifiant unique | | *justif_id* | int | identifiant unique |
| *etudid* | int | identifiant unique de l'étudiant concerné par le justificatif | | *etudid* | int | identifiant unique de l'étudiant concerné par le justificatif |
| *date_debut* | string | date ISO du début de la période du justificatif | | *date_debut* | string | date ISO du début de la période du justificatif |
| *date_fin* | string | date ISO de la fin de la période du justificatif | | *date_fin* | string | date ISO de la fin de la période du justificatif |
| *etat* | string | état du justificatif ( attente, valide, non_valide, modifie) | | *etat* | string | état du justificatif ( attente, valide, non_valide, modifie) |
| *raison* | string ou null | explication du justificatif si présente | | *raison* | string ou null | explication du justificatif si présente |
| *fichier* | string | identifiant de l'archivage des fichiers | | *fichier* | string | identifiant de l'archivage des fichiers |
| *entry_date* | string | date ISO de l'entrée du justificatif | |*user_id* | int or null | identifiant de l'utilisateur ayant créé le justificatif |
| *entry_date* | string | date ISO de l'entrée du justificatif |
#### **justificatif** #### **justificatif**
@ -1741,14 +1765,23 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* **Méthode:** GET * **Méthode:** GET
* **Permission: `ScoView`** * **Permission: `ScoView`**
* **Paramètres:** `etudid` * **Paramètres:**
* `etudid`
* `nip`
* `ine`
* **Query string:** * **Query string:**
* `etat` ( attente, valide, non_valide, modifie) * `etat` ( attente, valide, non_valide, modifie)
* `date_debut` (X : date format ISO) * `date_debut` (X : date format ISO)
* `date_fin` (X : date format ISO) * `date_fin` (X : date format ISO)
* **Routes:** * **Routes:**
* `/justificatifs/<int:etudid>` * `/justificatifs/<int:etudid>`
* `/justificatifs/<int:etudid>/query?etat=VALIDE` * `/justificatifs/<int:etudid>/query`
* `/justificatifs/etudid/<etudid>`
* `/justificatifs/etudid/etudid>/query`
* `/justificatifs/nip/<nip>`
* `/justificatifs/nip/<nip>/query`
* `/justificatifs/ine/<ine>`
* `/justificatifs/ine/<ine>/query`
* **Exemple d'utilisation:** * **Exemple d'utilisation:**
* `/api/justificatifs/1` * `/api/justificatifs/1`
* `/api/justificatifs/1/query?etat=modifie` * `/api/justificatifs/1/query?etat=modifie`
@ -1759,8 +1792,11 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
#### **justificatif-create** #### **justificatif-create**
* **Méthode:** POST * **Méthode:** POST
* **Permission: `ScoJustifChange`** * **Permission: `ScoAbsChange`**
* **Paramètres:** `etudid` * **Paramètres:**
* `etudid`
* `nip`
* `ine`
* **Data:** * **Data:**
```json ```json
@ -1777,7 +1813,11 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
> Un fichier justificatif peut être importé dans scodoc après avoir créer l'objet justificatif voir [importer un justificatif](FichiersJustificatifs.md#importer-un-fichier) > Un fichier justificatif peut être importé dans scodoc après avoir créer l'objet justificatif voir [importer un justificatif](FichiersJustificatifs.md#importer-un-fichier)
* **Routes:** `/justificatif/<int:etudid>/create` * **Routes:**
* `/justificatif/<int:etudid>/create`
* `/justificatif/etudid/<etudid>/create`
* `/justificatif/nip/<nip>/create`
* `/justificatif/ine/<ine>/create`
* **Exemple d'utilisation:** `/api/justificatif/1/create` * **Exemple d'utilisation:** `/api/justificatif/1/create`
```json ```json
@ -1798,7 +1838,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
#### **justificatif-edit** #### **justificatif-edit**
* **Méthode:** POST * **Méthode:** POST
* **Permission: `ScoJustifChange`** * **Permission: `ScoAbsChange`**
* **Paramètres:** `justif_id` * **Paramètres:** `justif_id`
* **Data:** * **Data:**
@ -1814,7 +1854,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* **Routes:** `/justificatif/<int:justif_id>/edit` * **Routes:** `/justificatif/<int:justif_id>/edit`
* **Exemple d'utilisation:** `/api/justificatif/1/edit` * **Exemple d'utilisation:** `/api/justificatif/1/edit`
> `{etat: "valide"}` > `{"etat": "valide"}`
* **Résultat:** Modifie le justificatif désigné. * **Résultat:** Modifie le justificatif désigné.
* **Exemple de résultat:** [justificatif-edit.json](samples/sample_justificatif_edit.json.md) * **Exemple de résultat:** [justificatif-edit.json](samples/sample_justificatif_edit.json.md)
@ -1822,8 +1862,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
#### **justificatif-delete** #### **justificatif-delete**
* **Méthode:** POST * **Méthode:** POST
* **Permission: `ScoJustifChange`** * **Permission: `ScoAbsChange`**
* **Paramètres:** `etudid`
* **Data:** * **Data:**
```json ```json
@ -1848,7 +1887,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
#### **justificatif-import** #### **justificatif-import**
* **Méthode:** POST * **Méthode:** POST
* **Permission: `ScoJustifChange`** * **Permission: `ScoAbsChange`**
* **Paramètres:** `justif_id` * **Paramètres:** `justif_id`
> Procédure d'importation de fichier : [importer un justificatif](FichiersJustificatifs.md#importer-un-fichier) > Procédure d'importation de fichier : [importer un justificatif](FichiersJustificatifs.md#importer-un-fichier)
@ -1861,7 +1900,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
#### **justificatif-export** #### **justificatif-export**
* **Méthode:** POST * **Méthode:** POST
* **Permission: `ScoJustifChange`** * **Permission: `ScoAbsChange`**
* **Paramètres:** * **Paramètres:**
* `justif_id` * `justif_id`
* `filename` * `filename`
@ -1876,14 +1915,14 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
#### **justificatif-remove** #### **justificatif-remove**
* **Méthode:** POST * **Méthode:** POST
* **Permission: `ScoJustifChange`** * **Permission: `ScoAbsChange`**
* **Paramètres:** `justif_id` * **Paramètres:** `justif_id`
> Procédure de suppression de fichier : [supprimer un justificatif](FichiersJustificatifs.md#supprimer-un-fichier) > Procédure de suppression de fichier : [supprimer un justificatif](FichiersJustificatifs.md#supprimer-un-fichier)
* **Routes:** `/justificatif/<int:justif_id>/remove` * **Routes:** `/justificatif/<int:justif_id>/remove`
* **Résultat:** `{response:"removed"}` ou une erreur * **Résultat:** `{"response":"removed"}` ou une erreur
* **Exemple de résultat:** [justificatif-remove.json](samples/sample_justificatif_remove.json.md) * **Exemple de résultat:** [justificatif-remove.json](samples/sample_justificatif_remove.json.md)
#### **justificatif-list** #### **justificatif-list**

View File

@ -1,16 +1,18 @@
### assiduite ### assiduite
#### GET /assiduite/1 #### GET /assiduite/1
```json ```json
{ {
"assiduite_id": 1, "assiduite_id": 1,
"date_debut": "2022-08-20T12:00:00.000000+02:00", "date_debut": "2022-09-25T08:00:00+0200",
"date_fin": "2022-08-20T12:00:00.000000+02:00", "date_fin": "2022-09-25T08:00:00+0200",
"desc": null, "desc": null,
"entry_date": "2022-08-20T12:00:00.000000+02:00", "entry_date": "2023-07-28T11:13:45+0200",
"etat": "PRESENT", "est_just": false,
"etudid": 1, "etat": "PRESENT",
"moduleimpl_id": 8 "etudid": 1,
"moduleimpl_id": 8,
"user_id": null
} }
``` ```

View File

@ -1,18 +1,21 @@
### assiduite_create ### assiduite_create
#### POST /assiduite/1/create #### POST /assiduite/1/create
> `Content-Type: application/json` > `Content-Type: application/json`
> >
> `[{"date_debut": "2022-10-27T08:00","date_fin": "2022-10-27T10:00","etat": "absent"}]` > `[{"date_debut": "2022-10-27T08:00","date_fin": "2022-10-27T10:00","etat": "absent"}]`
```json ```json
{ {
"errors": {}, "errors": [],
"success": { "success": [
"0": { {
"assiduite_id": 60 "indice": 0,
} "message": {
"assiduite_id": 60
}
} }
]
} }
``` ```

View File

@ -1,23 +1,28 @@
### assiduite_delete ### assiduite_delete
#### POST /assiduite/delete #### POST /assiduite/delete
> `Content-Type: application/json` > `Content-Type: application/json`
> >
> `[2,2,3]` > `[2,2,3]`
```json ```json
{ {
"errors": { "errors": [
"1": "Assiduite non existante" {
}, "indice": 1,
"success": { "message": "Assiduite non existante"
"0": {
"OK": true
},
"2": {
"OK": true
}
} }
],
"success": [
{
"indice": 0,
"message": "OK"
},
{
"indice": 2,
"message": "OK"
}
]
} }
``` ```

View File

@ -1,35 +1,37 @@
### assiduite_edit ### assiduite_edit
#### POST /assiduite/1/edit #### POST /assiduite/1/edit
> `Content-Type: application/json`
>
> `{"etat": "retard","moduleimpl_id":3}`
```json
{
"OK": true
}
```
#### POST /assiduite/1/edit
> `Content-Type: application/json`
>
> `{"etat":"absent"}`
```json
{
"OK": true
}
```
#### POST /assiduite/1/edit
> `Content-Type: application/json` > `Content-Type: application/json`
> >
> `{"moduleimpl_id":2}` > `{"moduleimpl_id":2}`
```json ```json
{ {
"OK": true "OK": true
} }
``` ```
#### POST /assiduite/1/edit
> `Content-Type: application/json`
>
> `{"etat": "retard","moduleimpl_id":3}`
```json
{
"OK": true
}
```
#### POST /assiduite/1/edit
> `Content-Type: application/json`
>
> `{"etat":"absent"}`
```json
{
"OK": true
}
```

View File

@ -1,63 +1,71 @@
### assiduites ### assiduites
#### GET /assiduites/1 #### GET /assiduites/1
```json ```json
[ [
{ {
"assiduite_id": 1, "assiduite_id": 1,
"date_debut": "2022-08-20T12:00:00.000000+02:00", "date_debut": "2022-09-25T08:00:00+0200",
"date_fin": "2022-08-20T12:00:00.000000+02:00", "date_fin": "2022-09-25T08:00:00+0200",
"desc": null, "desc": null,
"entry_date": "2022-08-20T12:00:00.000000+02:00", "entry_date": "2023-07-28T11:13:45+0200",
"etat": "PRESENT", "est_just": false,
"etudid": 1, "etat": "PRESENT",
"moduleimpl_id": 8 "etudid": 1,
}, "moduleimpl_id": 8,
{ "user_id": null
"assiduite_id": 2, },
"date_debut": "2022-08-20T12:00:00.000000+02:00", {
"date_fin": "2022-08-20T12:00:00.000000+02:00", "assiduite_id": 2,
"desc": null, "date_debut": "2022-09-26T08:00:00+0200",
"entry_date": "2022-08-20T12:00:00.000000+02:00", "date_fin": "2022-09-26T09:00:00+0200",
"etat": "RETARD", "desc": null,
"etudid": 1, "entry_date": "2023-07-28T11:13:45+0200",
"moduleimpl_id": 13 "est_just": false,
}, "etat": "RETARD",
"..." "etudid": 1,
"moduleimpl_id": 13,
"user_id": null
},
"..."
] ]
``` ```
#### GET /assiduites/1/query?etat=retard #### GET /assiduites/1/query?etat=retard
```json ```json
[ [
{ {
"assiduite_id": 2, "assiduite_id": 2,
"date_debut": "2022-08-20T12:00:00.000000+02:00", "date_debut": "2022-09-26T08:00:00+0200",
"date_fin": "2022-08-20T12:00:00.000000+02:00", "date_fin": "2022-09-26T09:00:00+0200",
"desc": null, "desc": null,
"entry_date": "2022-08-20T12:00:00.000000+02:00", "entry_date": "2023-07-28T11:13:45+0200",
"etat": "RETARD", "est_just": false,
"etudid": 1, "etat": "RETARD",
"moduleimpl_id": 13 "etudid": 1,
}, "moduleimpl_id": 13,
{ "user_id": null
"assiduite_id": 3, },
"date_debut": "2022-08-20T12:00:00.000000+02:00", {
"date_fin": "2022-08-20T12:00:00.000000+02:00", "assiduite_id": 3,
"desc": null, "date_debut": "2022-09-27T08:00:00+0200",
"entry_date": "2022-08-20T12:00:00.000000+02:00", "date_fin": "2022-09-27T10:00:00+0200",
"etat": "RETARD", "desc": null,
"etudid": 1, "entry_date": "2023-07-28T11:13:45+0200",
"moduleimpl_id": 14 "est_just": false,
}, "etat": "RETARD",
"..." "etudid": 1,
"moduleimpl_id": 14,
"user_id": null
},
"..."
] ]
``` ```
#### GET /assiduites/1/query?moduleimpl_id=1 #### GET /assiduites/1/query?moduleimpl_id=1
```json
[
"..."
]
```
```json
["..."]
```

View File

@ -1,30 +1,32 @@
### assiduites_count ### assiduites_count
#### GET /assiduites/1/count #### GET /assiduites/1/count
```json ```json
{ {
"compte": 4, "compte": 4,
"demi": 3, "demi": 3,
"heure": 6.0, "heure": 6.0,
"journee": 4 "journee": 4
} }
``` ```
#### GET /assiduites/1/count/query?etat=present,retard&metric=compte,heure #### GET /assiduites/1/count/query?etat=present,retard&metric=compte,heure
```json ```json
{ {
"compte": 4, "compte": 4,
"heure": 6.0 "heure": 6.0
} }
``` ```
#### GET /assiduites/1/count/query?etat=retard #### GET /assiduites/1/count/query?etat=retard
```json ```json
{ {
"compte": 3, "compte": 3,
"demi": 3, "demi": 3,
"heure": 6.0, "heure": 6.0,
"journee": 3 "journee": 3
} }
``` ```

View File

@ -1,23 +1,73 @@
### assiduites_formsemestre ### assiduites_formsemestre
#### GET /assiduites/formsemestre/1 #### GET /assiduites/formsemestre/1
```json ```json
[ [
"..." {
"assiduite_id": 1,
"date_debut": "2022-09-25T08:00:00+0200",
"date_fin": "2022-09-25T08:00:00+0200",
"desc": null,
"entry_date": "2023-07-28T11:13:45+0200",
"est_just": false,
"etat": "PRESENT",
"etudid": 1,
"moduleimpl_id": 8,
"user_id": null
},
{
"assiduite_id": 2,
"date_debut": "2022-09-26T08:00:00+0200",
"date_fin": "2022-09-26T09:00:00+0200",
"desc": null,
"entry_date": "2023-07-28T11:13:45+0200",
"est_just": false,
"etat": "RETARD",
"etudid": 1,
"moduleimpl_id": 13,
"user_id": null
},
"..."
] ]
``` ```
#### GET /assiduites/formsemestre/1/query?etat=retard #### GET /assiduites/formsemestre/1/query?etat=retard
```json ```json
[ [
"..." {
"assiduite_id": 2,
"date_debut": "2022-09-26T08:00:00+0200",
"date_fin": "2022-09-26T09:00:00+0200",
"desc": null,
"entry_date": "2023-07-28T11:13:45+0200",
"est_just": false,
"etat": "RETARD",
"etudid": 1,
"moduleimpl_id": 13,
"user_id": null
},
"..."
] ]
``` ```
#### GET /assiduites/formsemestre/1/query?moduleimpl_id=1 #### GET /assiduites/formsemestre/1/query?moduleimpl_id=1
```json ```json
[ [
"..." {
"assiduite_id": 3,
"date_debut": "2022-09-27T08:00:00+0200",
"date_fin": "2022-09-27T08:00:00+0200",
"desc": null,
"entry_date": "2023-07-28T11:13:45+0200",
"est_just": false,
"etat": "PRESENT",
"etudid": 1,
"moduleimpl_id": 1,
"user_id": null
},
"..."
] ]
``` ```

View File

@ -1,30 +1,32 @@
### assiduites_formsemestre_count ### assiduites_formsemestre_count
#### GET /assiduites/formsemestre/1/count #### GET /assiduites/formsemestre/1/count
```json ```json
{ {
"compte": 0, "compte": 0,
"demi": 0, "demi": 0,
"heure": 0.0, "heure": 0.0,
"journee": 0 "journee": 0
} }
``` ```
#### GET /assiduites/formsemestre/1/count/query?etat=present,retard&metric=compte,heure #### GET /assiduites/formsemestre/1/count/query?etat=present,retard&metric=compte,heure
```json ```json
{ {
"compte": 0, "compte": 0,
"heure": 0.0 "heure": 0.0
} }
``` ```
#### GET /assiduites/formsemestre/1/count/query?etat=retard #### GET /assiduites/formsemestre/1/count/query?etat=retard
```json ```json
{ {
"compte": 0, "compte": 0,
"demi": 0, "demi": 0,
"heure": 0.0, "heure": 0.0,
"journee": 0 "journee": 0
} }
``` ```

View File

@ -3,14 +3,15 @@
#### GET /justificatif/1 #### GET /justificatif/1
```json ```json
{ {
"date_debut": "2022-08-20T12:00:00.000000+02:00", "date_debut": "2022-09-25T08:00:00+0200",
"date_fin": "2022-08-20T12:00:00.000000+02:00", "date_fin": "2022-09-25T16:00:00+0200",
"entry_date": "2022-08-20T12:00:00.000000+02:00", "entry_date": "2023-07-28T11:13:45+0200",
"etat": "VALIDE", "etat": "VALIDE",
"etudid": 1, "etudid": 1,
"fichier": null, "fichier": null,
"justif_id": 1, "justif_id": 1,
"raison": "raison" "raison": "raison",
"user_id": null
} }
``` ```

View File

@ -1,18 +1,22 @@
### justificatif_create ### justificatif_create
#### POST /justificatif/1/create #### POST /justificatif/1/create
> `Content-Type: application/json` > `Content-Type: application/json`
> >
> `[{"date_debut": "2022-10-27T08:00","date_fin": "2022-10-27T10:00","etat": "attente"}]` > `[{"date_debut": "2022-10-27T08:00","date_fin": "2022-10-27T10:00","etat": "attente"}]`
```json ```json
{ {
"errors": {}, "errors": [],
"success": { "success": [
"0": { {
"justif_id": 12 "indice": 0,
} "message": {
"couverture": [],
"justif_id": 12
}
} }
]
} }
``` ```

View File

@ -1,23 +1,28 @@
### justificatif_delete ### justificatif_delete
#### POST /justificatif/delete #### POST /justificatif/delete
> `Content-Type: application/json` > `Content-Type: application/json`
> >
> `[2,2,3]` > `[2,2,3]`
```json ```json
{ {
"errors": { "errors": [
"1": "Justificatif non existant" {
}, "indice": 1,
"success": { "message": "Justificatif non existant"
"0": {
"OK": true
},
"2": {
"OK": true
}
} }
],
"success": [
{
"indice": 0,
"message": "OK"
},
{
"indice": 2,
"message": "OK"
}
]
} }
``` ```

View File

@ -1,24 +1,31 @@
### justificatif_edit ### justificatif_edit
#### POST /justificatif/1/edit #### POST /justificatif/1/edit
> `Content-Type: application/json` > `Content-Type: application/json`
> >
> `{"etat":"valide"}` > `{"etat":"valide"}`
```json ```json
{ {
"OK": true "couverture": {
"apr\u00e8s": [26],
"avant": [1, 26, 38]
}
} }
``` ```
#### POST /justificatif/1/edit #### POST /justificatif/1/edit
> `Content-Type: application/json` > `Content-Type: application/json`
> >
> `{"raison":"MEDIC"}` > `{"raison":"MEDIC"}`
```json ```json
{ {
"OK": true "couverture": {
"apr\u00e8s": [26],
"avant": [1, 26, 38]
}
} }
``` ```

View File

@ -0,0 +1,7 @@
### justificatif_export
#### POST /justificatif/1/export/nom_fichier
```console
téléchargement du fichier
```

View File

@ -0,0 +1,11 @@
### justificatif_import
#### POST /justificatif/1/import
> `Content-Type: multipart/form-data`
>
> `binary file`
```json
{ "filename": "nom_du_fichier" }
```

View File

@ -0,0 +1,7 @@
### justificatif_justifies
#### GET /justificatif/1/justifies
```json
[1, 2, "..."]
```

View File

@ -0,0 +1,10 @@
### justificatif_list
#### GET /justificatif/1/list
```json
{
"total": 1,
"filenames": ["nom_fichier"]
}
```

View File

@ -0,0 +1,25 @@
### justificatif_remove
#### POST /justificatif/1/remove
> `Content-Type: application/json`
>
> `{"remove" : "all"}`
```json
{
"response": "remove"
}
```
#### POST /justificatif/1/remove
> `Content-Type: application/json`
>
> `{"remove" : "list", "filenames": ["nom_fichier"]}`
```json
{
"response": "remove"
}
```

View File

@ -1,26 +1,26 @@
### justificatifs ### justificatifs
#### GET /justificatifs/1 #### GET /justificatifs/1
```json ```json
[ [
{ {
"date_debut": "2022-08-20T12:00:00.000000+02:00", "date_debut": "2022-09-25T08:00:00+0200",
"date_fin": "2022-08-20T12:00:00.000000+02:00", "date_fin": "2022-09-25T16:00:00+0200",
"entry_date": "2022-08-20T12:00:00.000000+02:00", "entry_date": "2023-07-28T11:13:45+0200",
"etat": "VALIDE", "etat": "VALIDE",
"etudid": 1, "etudid": 1,
"fichier": null, "fichier": null,
"justif_id": 1, "justif_id": 1,
"raison": "raison" "raison": "raison",
}, "user_id": null
"..." },
"..."
] ]
``` ```
#### GET /justificatifs/1/query?etat=attente #### GET /justificatifs/1/query?etat=attente
```json
[
"..."
]
```
```json
["..."]
```