Assiduité : ajout doc manquante + mise à jour samples

This commit is contained in:
Iziram 2024-03-29 16:17:40 +01:00
parent 56fa613fcc
commit 7ef0f108b4
17 changed files with 701 additions and 267 deletions

View File

@ -1715,10 +1715,15 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
| *user_name* | str ou null | login de l'utilisateur ayant créé l'assiduité | | *user_name* | str ou null | login de l'utilisateur ayant créé l'assiduité |
| *est_just* | boolean | l'assiduité est-elle justifiée | | *est_just* | boolean | l'assiduité est-elle justifiée |
| *entry_date* | string | la date d'entrée de l'assiduité | | *entry_date* | string | la date d'entrée de l'assiduité |
| *external_data* | objet ou null | un objet décrivant des actions non utilisée par ScoDoc |
> Rappel du format de date ISO : yyyy-mm-jjTHH:MM:SS > Rappel du format de date ISO : yyyy-mm-ddTHH:MM:SS
> Vous pouvez aussi spécifier le temps UTC en ajoutant '+HH:MM' à la fin > Vous pouvez aussi spécifier le temps UTC en ajoutant '+HH:MM' à la fin
!!! warning
Le champs `external_data` est utilisé par ScoDoc pour déterminer les assiduités utilisant n'utilisant pas de module particulier (Tout module / Autre module dans ScoDoc). Il aura alors la forme suivante : `{"module": "Autre"}`
#### **assiduite** #### **assiduite**
* **Méthode:** GET * **Méthode:** GET
@ -1728,6 +1733,20 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* **Exemple d'utilisation:** `/api/assiduite/1` * **Exemple d'utilisation:** `/api/assiduite/1`
* **Résultat:** Retourne un objet assiduité ou une erreur si l'id n'est pas connu * **Résultat:** Retourne un objet assiduité ou une erreur si l'id n'est pas connu
* **Exemple de résultat:** [assiduite.json](samples/sample_assiduite.json.md) * **Exemple de résultat:** [assiduite.json](samples/sample_assiduite.json.md)
*
#### **assiduite-justificatifs[-long]**
* **Méthode:** GET
* **Permission: `ScoView`**
* **Paramètres:** `assiduite_id`
* **Routes:**
* `/assiduite/<int:assiduite_id>/justificatifs`
* `/assiduite/<int:assiduite_id>/justificatifs/long`
* **Exemple d'utilisation:**
* `/api/assiduite/123/justificatifs`
* `/api/assiduite/123/justificatifs/long`
* **Résultat:** Retourne une liste de justificatifs. des objets en utilisant la route `long` sinon les justif_id
* **Exemple de résultat:** [assiduite-justificatifs.json](samples/sample_assiduite_justificatifs.json.md)
#### **assiduites[-query]** #### **assiduites[-query]**
@ -1745,6 +1764,9 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* `formsemestre_id` (X : id du formsemestre) * `formsemestre_id` (X : id du formsemestre)
* `est_just` (v,t,f,vrai,faux,true,false) * `est_just` (v,t,f,vrai,faux,true,false)
* `user_id` (X : id de l'utilisateur) * `user_id` (X : id de l'utilisateur)
* `order` (retour ordoné par date de début décroisante)
* `courant` (retour restreint à l'année courante)
* `with_justifs` (ajoute un champs "justificatifs" aux assiduités)
* **Routes:** * **Routes:**
* `/assiduites/<int:etudid>` * `/assiduites/<int:etudid>`
* `/assiduites/<int:etudid>/query?` * `/assiduites/<int:etudid>/query?`
@ -1778,6 +1800,8 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* `est_just` (v,t,f,vrai,faux,true,false) * `est_just` (v,t,f,vrai,faux,true,false)
* `user_id` (X : id de l'utilisateur) * `user_id` (X : id de l'utilisateur)
* `metric` ('compte', 'demi', 'journee', 'heure') * `metric` ('compte', 'demi', 'journee', 'heure')
* `courant` (retour restreint à l'année courante)
* `split` (compte pour chaque état séparément)
* **Routes:** * **Routes:**
* `/assiduites/<int:etudid>/count` * `/assiduites/<int:etudid>/count`
* `/assiduites/<int:etudid>/count/query?` * `/assiduites/<int:etudid>/count/query?`
@ -1807,6 +1831,9 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* `date_fin` (X : date format ISO) * `date_fin` (X : date format ISO)
* `est_just` (v,t,f,vrai,faux,true,false) * `est_just` (v,t,f,vrai,faux,true,false)
* `user_id` (X : id de l'utilisateur) * `user_id` (X : id de l'utilisateur)
* `order` (retour ordoné par date de début décroisante)
* `courant` (retour restreint à l'année courante)
* `with_justifs` (ajoute un champs "justificatifs" aux assiduités)
* **Routes:** * **Routes:**
* `/assiduites/formsemestre/<int:formsemestre_id>` * `/assiduites/formsemestre/<int:formsemestre_id>`
* `/assiduites/formsemestre/<int:formsemestre_id>/query?` * `/assiduites/formsemestre/<int:formsemestre_id>/query?`
@ -1829,6 +1856,9 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* `date_fin` (X : date format ISO) * `date_fin` (X : date format ISO)
* `est_just` (v,t,f,vrai,faux,true,false) * `est_just` (v,t,f,vrai,faux,true,false)
* `user_id` (X : id de l'utilisateur) * `user_id` (X : id de l'utilisateur)
* `metric` ('all', 'compte', 'heure', 'journee', 'demi')
* `courant` (retour restreint à l'année courante)
* `split` (compte pour chaque état séparément)
* **Routes:** * **Routes:**
* `/assiduites/formsemestre/<int:formsemestre_id>/count` * `/assiduites/formsemestre/<int:formsemestre_id>/count`
* `/assiduites/formsemestre/<int:formsemestre_id>/count/query?` * `/assiduites/formsemestre/<int:formsemestre_id>/count/query?`
@ -1851,6 +1881,9 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* `date_fin` (X : date format ISO) * `date_fin` (X : date format ISO)
* `est_just` (v,t,f,vrai,faux,true,false) * `est_just` (v,t,f,vrai,faux,true,false)
* `user_id` (X : id de l'utilisateur) * `user_id` (X : id de l'utilisateur)
* `order` (retour ordoné par date de début décroisante)
* `courant` (retour restreint à l'année courante)
* `with_justifs` (ajoute un champs "justificatifs" aux assiduités)
* **Routes:** * **Routes:**
* `/assiduites/group/query?etudids=` * `/assiduites/group/query?etudids=`
* **Exemple d'utilisation:** * **Exemple d'utilisation:**
@ -1876,9 +1909,6 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
[ [
{ {
"etudid":<int>, "etudid":<int>,
"date_debut": <string>,
"date_fin": <string>,
"etat": <string>, "etat": <string>,
"moduleimpl_id"?: <int>, "moduleimpl_id"?: <int>,
"desc"?:<string>, "desc"?:<string>,
@ -1909,8 +1939,6 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
```json ```json
[ [
{ {
"date_debut": <string>,
"date_fin": <string>,
"etat": <string>, "etat": <string>,
"moduleimpl_id"?: <int>, "moduleimpl_id"?: <int>,
"desc"?:<string> "desc"?:<string>
@ -1951,9 +1979,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
> `{"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.
modification rend incompatible la plage de l'assiduité par rapport aux autres
assiduités du même étudiant.
* **Exemple de résultat:** [assiduite_edit.json](samples/sample_assiduite_edit.json.md) * **Exemple de résultat:** [assiduite_edit.json](samples/sample_assiduite_edit.json.md)
#### **assiduites-edit** #### **assiduites-edit**
@ -2041,6 +2067,11 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* `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)
* `user_id` (X : l'id de l'utilisateur ayant créé l'objet)
* `formsemestre_id` (X: l'id d'un formsemestre. restreint aux date du semestre)
* `order` (retoure les justificatifs par ordre décroissant de date_debut)
* `courant` (restreint aux justificatifs de l'année courante)
* `group_id` (X : id du groupe, restreint aux justificatifs d'un group d'étudiant)
* **Routes:** * **Routes:**
* `/justificatifs/<int:etudid>` * `/justificatifs/<int:etudid>`
* `/justificatifs/<int:etudid>/query` * `/justificatifs/<int:etudid>/query`
@ -2057,6 +2088,58 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences.
* **Résultat:** Liste de toutes les objets justificatifs qui correspondent aux critères sélectionnés * **Résultat:** Liste de toutes les objets justificatifs qui correspondent aux critères sélectionnés
* **Exemple de résultat:** [justificatifs.json](samples/sample_justificatifs.json.md) * **Exemple de résultat:** [justificatifs.json](samples/sample_justificatifs.json.md)
#### **justificatifs-dept[-query]**
* **Méthode:** GET
* **Permission: `ScoView`**
* **Paramètres:**
* `dept_id`
* **Query string:**
* `etat` ( attente, valide, non_valide, modifie)
* `date_debut` (X : date format ISO)
* `date_fin` (X : date format ISO)
* `user_id` (X : l'id de l'utilisateur ayant créé l'objet)
* `formsemestre_id` (X: l'id d'un formsemestre. restreint aux date du semestre)
* `order` (retoure les justificatifs par ordre décroissant de date_debut)
* `courant` (restreint aux justificatifs de l'année courante)
* `group_id` (X : id du groupe, restreint aux justificatifs d'un group d'étudiant)
* **Routes:**
* `/justificatifs/dept/<int:dept_id>`
* `/justificatifs/dept/<int:dept_id>/query`
* **Exemple d'utilisation:**
* `/api/justificatifs/dept/3`
* `/api/justificatifs/dept/3/query?etat=valide&courant`
* **Résultat:** Liste de toutes les objets justificatifs du département donné qui correspondent aux critères sélectionnés
* **Exemple de résultat:** [justificatifs-dept.json](samples/sample_justificatifs_dept.json.md)
#### **justificatifs-formsemestre[-query]**
* **Méthode:** GET
* **Permission: `ScoView`**
* **Paramètres:**
* `formsemestre_id`
* **Query string:**
* `etat` ( attente, valide, non_valide, modifie)
* `date_debut` (X : date format ISO)
* `date_fin` (X : date format ISO)
* `user_id` (X : l'id de l'utilisateur ayant créé l'objet)
* `formsemestre_id` (X: l'id d'un formsemestre. restreint aux date du semestre)
* `order` (retoure les justificatifs par ordre décroissant de date_debut)
* `courant` (restreint aux justificatifs de l'année courante)
* `group_id` (X : id du groupe, restreint aux justificatifs d'un group d'étudiant)
* **Routes:**
* `/justificatifs/formsemestre/<int:formsemestre_id>`
* `/justificatifs/formsemestre/<int:formsemestre_id>/query`
* **Exemple d'utilisation:**
* `/api/justificatifs/formsemestre/3`
* `/api/justificatifs/formsemestre/3/query?etat=valide&courant`
* **Résultat:** Liste de toutes les objets justificatifs du formsemestre donné qui correspondent aux critères sélectionnés
* **Exemple de résultat:** [justificatifs-formsemestre.json](samples/sample_justificatifs_formsemestre.json.md)
#### **justificatif-create** #### **justificatif-create**
* **Méthode:** POST * **Méthode:** POST
@ -2168,7 +2251,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: `AbsChange`** * **Permission: `ScoView`**
* **Paramètres:** * **Paramètres:**
* `justif_id` * `justif_id`
* `filename` * `filename`

View File

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

View File

@ -1,21 +1,38 @@
### 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": "2023-10-27T08:00","date_fin": "2023-10-27T10:00","etat": "absent"}]`
```json ```json
{ {
"errors": [], "errors": [
"success": [ {
{ "indice": 0,
"indice": 0, "message": "Duplication: la p\u00e9riode rentre en conflit avec une plage enregistr\u00e9e"
"message": { }
"assiduite_id": 60 ],
} "success": []
}
]
} }
``` ```
#### POST /assiduite/1/create
> `Content-Type: application/json`
>
> `[{"date_debut": "2023-10-27T08:00","date_fin": "2023-10-27T10:00","etat": "absent"}]`
```json
{
"errors": [],
"success": [
{
"indice": 0,
"message": {
"assiduite_id": 49
}
}
]
}
```

View File

@ -1,28 +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": [
{ {
"indice": 1, "indice": 1,
"message": "Assiduite non existante" "message": "Assiduite non existante"
} }
], ],
"success": [ "success": [
{ {
"indice": 0, "indice": 0,
"message": "OK" "message": "OK"
}, },
{ {
"indice": 2, "indice": 2,
"message": "OK" "message": "OK"
} }
] ]
} }
``` ```

View File

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

View File

@ -1,71 +1,79 @@
### assiduites ### assiduites
#### GET /assiduites/1 #### GET /assiduites/1
```json ```json
[ [
{ {
"assiduite_id": 1, "assiduite_id": 1,
"date_debut": "2022-09-25T08:00:00+0200", "code_nip": "1",
"date_fin": "2022-09-25T08:00:00+0200", "date_debut": "2022-08-20T12:00:00.000000+02:00",
"desc": null, "date_fin": "2022-08-20T12:00:00.000000+02:00",
"entry_date": "2023-07-28T11:13:45+0200", "desc": null,
"est_just": false, "entry_date": "2022-08-20T12:00:00.000000+02:00",
"etat": "PRESENT", "est_just": false,
"etudid": 1, "etat": "PRESENT",
"moduleimpl_id": 8, "etudid": 1,
"user_id": null "external_data": null,
}, "moduleimpl_id": 12,
{ "user_id": null,
"assiduite_id": 2, "user_name": null,
"date_debut": "2022-09-26T08:00:00+0200", "user_nom_complet": null
"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/1/query?etat=retard #### GET /assiduites/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
},
{
"assiduite_id": 3,
"date_debut": "2022-09-27T08:00:00+0200",
"date_fin": "2022-09-27T10:00:00+0200",
"desc": null,
"entry_date": "2023-07-28T11:13:45+0200",
"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
["..."] [
"..."
]
``` ```
#### GET /assiduites/1/query?with_justifs=
```json
[
{
"assiduite_id": 1,
"code_nip": "1",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"desc": null,
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"est_just": false,
"etat": "PRESENT",
"etudid": 1,
"external_data": null,
"justificatifs": [
{
"code_nip": "1",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"etat": "MODIFIE",
"etudid": 1,
"external_data": null,
"fichier": null,
"justif_id": 1,
"raison": null,
"user_id": null,
"user_name": null,
"user_nom_complet": null
}
],
"moduleimpl_id": 12,
"user_id": null,
"user_name": null,
"user_nom_complet": null
},
"..."
]
```

View File

@ -1,32 +1,84 @@
### assiduites_count ### assiduites_count
#### GET /assiduites/1/count #### GET /assiduites/1/count
```json ```json
{ {
"compte": 4, "compte": 1,
"demi": 3, "demi": 0,
"heure": 6.0, "heure": 0.0,
"journee": 4 "journee": 1
} }
``` ```
#### 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": 1,
"heure": 6.0 "heure": 0.0
} }
``` ```
#### GET /assiduites/1/count/query?etat=retard #### GET /assiduites/1/count/query?etat=retard
```json ```json
{ {
"compte": 3, "compte": 0,
"demi": 3, "demi": 0,
"heure": 6.0, "heure": 0,
"journee": 3 "journee": 0
} }
``` ```
#### GET /assiduites/1/count/query?split
```json
{
"absent": {
"compte": 0,
"demi": 0,
"heure": 0,
"journee": 0,
"justifie": {
"compte": 0,
"demi": 0,
"heure": 0,
"journee": 0
},
"non_justifie": {
"compte": 0,
"demi": 0,
"heure": 0,
"journee": 0
}
},
"present": {
"compte": 1,
"demi": 0,
"heure": 0.0,
"journee": 1
},
"retard": {
"compte": 0,
"demi": 0,
"heure": 0,
"journee": 0,
"justifie": {
"compte": 0,
"demi": 0,
"heure": 0,
"journee": 0
},
"non_justifie": {
"compte": 0,
"demi": 0,
"heure": 0,
"journee": 0
}
},
"total": {
"compte": 1,
"demi": 0,
"heure": 0.0,
"journee": 1
}
}
```

View File

@ -0,0 +1,38 @@
### assiduites_create
#### POST /assiduites/create
> `Content-Type: application/json`
>
> `[{"etudid":-1,"date_debut": "2023-10-26T08:00","date_fin": "2023-10-26T10:00","etat": "absent"}]`
```json
{
"errors": [
{
"indice": 0,
"message": "Cet \u00e9tudiant n'existe pas."
}
],
"success": []
}
```
#### POST /assiduites/create
> `Content-Type: application/json`
>
> `[{"etudid":1,"date_debut": "2023-10-26T08:00","date_fin": "2023-10-26T10:00","etat": "absent"}]`
```json
{
"errors": [],
"success": [
{
"indice": 0,
"message": {
"assiduite_id": 50
}
}
]
}
```

View File

@ -1,73 +1,119 @@
### assiduites_formsemestre ### assiduites_formsemestre
#### GET /assiduites/formsemestre/1 #### GET /assiduites/formsemestre/1
```json ```json
[ [
{ {
"assiduite_id": 1, "assiduite_id": 1,
"date_debut": "2022-09-25T08:00:00+0200", "code_nip": "1",
"date_fin": "2022-09-25T08:00:00+0200", "date_debut": "2022-08-20T12:00:00.000000+02:00",
"desc": null, "date_fin": "2022-08-20T12:00:00.000000+02:00",
"entry_date": "2023-07-28T11:13:45+0200", "desc": null,
"est_just": false, "entry_date": "2022-08-20T12:00:00.000000+02:00",
"etat": "PRESENT", "est_just": false,
"etudid": 1, "etat": "PRESENT",
"moduleimpl_id": 8, "etudid": 1,
"user_id": null "external_data": null,
}, "moduleimpl_id": 12,
{ "user_id": null,
"assiduite_id": 2, "user_name": null,
"date_debut": "2022-09-26T08:00:00+0200", "user_nom_complet": null
"date_fin": "2022-09-26T09:00:00+0200", },
"desc": null, {
"entry_date": "2023-07-28T11:13:45+0200", "assiduite_id": 2,
"est_just": false, "code_nip": "NIP2",
"etat": "RETARD", "date_debut": "2022-08-20T12:00:00.000000+02:00",
"etudid": 1, "date_fin": "2022-08-20T12:00:00.000000+02:00",
"moduleimpl_id": 13, "desc": null,
"user_id": null "entry_date": "2022-08-20T12:00:00.000000+02:00",
}, "est_just": false,
"..." "etat": "RETARD",
"etudid": 2,
"external_data": null,
"moduleimpl_id": 4,
"user_id": null,
"user_name": null,
"user_nom_complet": null
},
"..."
] ]
``` ```
#### GET /assiduites/formsemestre/1/query?etat=retard #### GET /assiduites/formsemestre/1/query?etat=retard
```json ```json
[ [
{ {
"assiduite_id": 2, "assiduite_id": 2,
"date_debut": "2022-09-26T08:00:00+0200", "code_nip": "NIP2",
"date_fin": "2022-09-26T09:00:00+0200", "date_debut": "2022-08-20T12:00:00.000000+02:00",
"desc": null, "date_fin": "2022-08-20T12:00:00.000000+02:00",
"entry_date": "2023-07-28T11:13:45+0200", "desc": null,
"est_just": false, "entry_date": "2022-08-20T12:00:00.000000+02:00",
"etat": "RETARD", "est_just": false,
"etudid": 1, "etat": "RETARD",
"moduleimpl_id": 13, "etudid": 2,
"user_id": null "external_data": null,
}, "moduleimpl_id": 4,
"..." "user_id": null,
"user_name": null,
"user_nom_complet": null
},
{
"assiduite_id": 7,
"code_nip": "NIP4",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"desc": null,
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"est_just": false,
"etat": "RETARD",
"etudid": 4,
"external_data": null,
"moduleimpl_id": 6,
"user_id": null,
"user_name": null,
"user_nom_complet": null
},
"..."
] ]
``` ```
#### GET /assiduites/formsemestre/1/query?moduleimpl_id=1 #### GET /assiduites/formsemestre/1/query?moduleimpl_id=1
```json ```json
[ [
{ {
"assiduite_id": 3, "assiduite_id": 27,
"date_debut": "2022-09-27T08:00:00+0200", "code_nip": "NIP10",
"date_fin": "2022-09-27T08:00:00+0200", "date_debut": "2022-08-20T12:00:00.000000+02:00",
"desc": null, "date_fin": "2022-08-20T12:00:00.000000+02:00",
"entry_date": "2023-07-28T11:13:45+0200", "desc": null,
"est_just": false, "entry_date": "2022-08-20T12:00:00.000000+02:00",
"etat": "PRESENT", "est_just": false,
"etudid": 1, "etat": "PRESENT",
"moduleimpl_id": 1, "etudid": 10,
"user_id": null "external_data": null,
}, "moduleimpl_id": 1,
"..." "user_id": null,
"user_name": null,
"user_nom_complet": null
},
{
"assiduite_id": 43,
"code_nip": "NIP14",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"desc": null,
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"est_just": false,
"etat": "RETARD",
"etudid": 14,
"external_data": null,
"moduleimpl_id": 1,
"user_id": null,
"user_name": null,
"user_nom_complet": null
},
"..."
] ]
``` ```

View File

@ -1,32 +1,30 @@
### assiduites_formsemestre_count ### assiduites_formsemestre_count
#### GET /assiduites/formsemestre/1/count #### GET /assiduites/formsemestre/1/count
```json ```json
{ {
"compte": 0, "compte": 48,
"demi": 0, "demi": 14,
"heure": 0.0, "heure": 65.0,
"journee": 0 "journee": 18
} }
``` ```
#### 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": 29,
"heure": 0.0 "heure": 35.0
} }
``` ```
#### GET /assiduites/formsemestre/1/count/query?etat=retard #### GET /assiduites/formsemestre/1/count/query?etat=retard
```json ```json
{ {
"compte": 0, "compte": 14,
"demi": 0, "demi": 8,
"heure": 0.0, "heure": 19.0,
"journee": 0 "journee": 11
} }
``` ```

View File

@ -0,0 +1,62 @@
### assiduites_group
#### GET /assiduites/group/query?etudids=1,2,3
```json
{
"1": [
{
"assiduite_id": 1,
"code_nip": "1",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"desc": null,
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"est_just": false,
"etat": "PRESENT",
"etudid": 1,
"external_data": null,
"moduleimpl_id": 12,
"user_id": null,
"user_name": null,
"user_nom_complet": null
}
],
"2": [
{
"assiduite_id": 2,
"code_nip": "NIP2",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"desc": null,
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"est_just": false,
"etat": "RETARD",
"etudid": 2,
"external_data": null,
"moduleimpl_id": 4,
"user_id": null,
"user_name": null,
"user_nom_complet": null
}
],
"3": [
{
"assiduite_id": 3,
"code_nip": "3",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"desc": null,
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"est_just": false,
"etat": "PRESENT",
"etudid": 3,
"external_data": null,
"moduleimpl_id": 18,
"user_id": null,
"user_name": null,
"user_nom_complet": null
}
]
}
```

View File

@ -0,0 +1,32 @@
### assiduites_justificatifs
#### GET /assiduite/1/justificatifs
```json
[
1,
"..."
]
```
#### GET /assiduite/1/justificatifs/long
```json
[
{
"code_nip": "1",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"etat": "MODIFIE",
"etudid": 1,
"external_data": null,
"fichier": null,
"justif_id": 1,
"raison": null,
"user_id": null,
"user_name": null,
"user_nom_complet": null
},
"..."
]
```

View File

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

View File

@ -1,22 +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": "2023-10-27T08:00","date_fin": "2023-10-27T10:00","etat": "attente"}]`
```json ```json
{ {
"errors": [], "errors": [],
"success": [ "success": [
{ {
"indice": 0, "indice": 0,
"message": { "message": {
"couverture": [], "couverture": [],
"justif_id": 12 "justif_id": 25
} }
} }
] ]
} }
``` ```

View File

@ -1,28 +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": [
{ {
"indice": 1, "indice": 1,
"message": "Justificatif non existant" "message": "Justificatif non existant"
} }
], ],
"success": [ "success": [
{ {
"indice": 0, "indice": 0,
"message": "OK" "message": "OK"
}, },
{ {
"indice": 2, "indice": 2,
"message": "OK" "message": "OK"
} }
] ]
} }
``` ```

View File

@ -1,31 +1,36 @@
### 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
{ {
"couverture": { "couverture": {
"apr\u00e8s": [26], "apres": [
"avant": [1, 26, 38] 1
} ],
"avant": []
}
} }
``` ```
#### POST /justificatif/1/edit #### POST /justificatif/1/edit
> `Content-Type: application/json` > `Content-Type: application/json`
> >
> `{"raison":"MEDIC"}` > `{"raison":"MEDIC"}`
```json ```json
{ {
"couverture": { "couverture": {
"apr\u00e8s": [26], "apres": [
"avant": [1, 26, 38] 1
} ],
"avant": [
1
]
}
} }
``` ```

View File

@ -1,26 +1,113 @@
### justificatifs ### justificatifs
#### GET /justificatifs/1 #### GET /justificatifs/1
```json ```json
[ [
{ {
"date_debut": "2022-09-25T08:00:00+0200", "code_nip": "1",
"date_fin": "2022-09-25T16:00:00+0200", "date_debut": "2022-08-20T12:00:00.000000+02:00",
"entry_date": "2023-07-28T11:13:45+0200", "date_fin": "2022-08-20T12:00:00.000000+02:00",
"etat": "VALIDE", "entry_date": "2022-08-20T12:00:00.000000+02:00",
"etudid": 1, "etat": "MODIFIE",
"fichier": null, "etudid": 1,
"justif_id": 1, "external_data": null,
"raison": "raison", "fichier": null,
"user_id": null "justif_id": 1,
}, "raison": null,
"..." "user_id": null,
"user_name": null,
"user_nom_complet": null
},
"..."
] ]
``` ```
#### GET /justificatifs/1/query?etat=attente #### GET /justificatifs/1/query?etat=attente
```json ```json
["..."] [
"..."
]
``` ```
#### GET /justificatifs/dept/1
```json
[
{
"code_nip": "1",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"etat": "MODIFIE",
"etudid": 1,
"external_data": null,
"fichier": null,
"formsemestre": {
"id": 1,
"title": "TAPI-BUT-FI-S1-2021"
},
"justif_id": 1,
"raison": null,
"user_id": null,
"user_name": null,
"user_nom_complet": null
},
{
"code_nip": "NIP2",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"etat": "NON_VALIDE",
"etudid": 2,
"external_data": null,
"fichier": null,
"formsemestre": {
"id": 1,
"title": "TAPI-BUT-FI-S1-2021"
},
"justif_id": 2,
"raison": null,
"user_id": null,
"user_name": null,
"user_nom_complet": null
},
"..."
]
```
#### GET /justificatifs/formsemestre/1
```json
[
{
"code_nip": "1",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"etat": "MODIFIE",
"etudid": 1,
"external_data": null,
"fichier": null,
"justif_id": 1,
"raison": null,
"user_id": null,
"user_name": null,
"user_nom_complet": null
},
{
"code_nip": "NIP2",
"date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00",
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"etat": "NON_VALIDE",
"etudid": 2,
"external_data": null,
"fichier": null,
"justif_id": 2,
"raison": null,
"user_id": null,
"user_name": null,
"user_nom_complet": null
},
"..."
]
```