From 774c4178ce0d5aa20dc1d30592cf3df184bed5d3 Mon Sep 17 00:00:00 2001 From: iziram Date: Fri, 11 Aug 2023 16:14:29 +0200 Subject: [PATCH 1/3] Assiduites : bugfix external_data + differee --- app/api/assiduites.py | 8 +++++--- app/static/js/assiduites.js | 10 ++++++++-- app/templates/assiduites/widgets/differee.j2 | 2 +- tests/api/test_api_assiduites.py | 5 +++++ 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/app/api/assiduites.py b/app/api/assiduites.py index 48f54db67..cc55f0923 100644 --- a/app/api/assiduites.py +++ b/app/api/assiduites.py @@ -372,7 +372,9 @@ def assiduites_formsemestre(formsemestre_id: int, with_query: bool = False): if formsemestre is None: return json_error(404, "le paramètre 'formsemestre_id' n'existe pas") - assiduites_query = scass.filter_by_formsemestre(Assiduite.query,Assiduite, formsemestre) + assiduites_query = scass.filter_by_formsemestre( + Assiduite.query, Assiduite, formsemestre + ) if with_query: assiduites_query = _filter_manager(request, assiduites_query) @@ -597,8 +599,8 @@ def _create_singular( desc: str = data.get("desc", None) - external_data = data.get("external_data", False) - if external_data is not False: + external_data = data.get("external_data", None) + if external_data is not None: if not isinstance(external_data, dict): errors.append("param 'external_data' : n'est pas un objet JSON") diff --git a/app/static/js/assiduites.js b/app/static/js/assiduites.js index 5fe6bba82..eafb25892 100644 --- a/app/static/js/assiduites.js +++ b/app/static/js/assiduites.js @@ -1411,7 +1411,10 @@ function getModuleImplId() { function setModuleImplId(assiduite, module = null) { const moduleimpl = module == null ? getModuleImplId() : module; if (moduleimpl === "autre") { - if ("external_data" in assiduite && assiduite.external_data != undefined) { + if ( + "external_data" in assiduite && + assiduite.external_data instanceof Object + ) { if ("module" in assiduite.external_data) { assiduite.external_data.module = "Autre"; } else { @@ -1423,7 +1426,10 @@ function setModuleImplId(assiduite, module = null) { assiduite.moduleimpl_id = null; } else { assiduite["moduleimpl_id"] = moduleimpl; - if ("external_data" in assiduite && assiduite.external_data != undefined) { + if ( + "external_data" in assiduite && + assiduite.external_data instanceof Object + ) { if ("module" in assiduite.external_data) { delete assiduite.external_data.module; } diff --git a/app/templates/assiduites/widgets/differee.j2 b/app/templates/assiduites/widgets/differee.j2 index fcb2c5ffa..51c4de1f0 100644 --- a/app/templates/assiduites/widgets/differee.j2 +++ b/app/templates/assiduites/widgets/differee.j2 @@ -680,7 +680,7 @@ rbtn.parentElement.setAttribute('etat', etat); asyncCreateAssiduite(assiduite, (data) => { if (Object.keys(data.success).length > 0) { - const assi_id = data.success['0'].assiduite_id; + const assi_id = data.success['0'].message.assiduite_id; etudLine.setAttribute('assiduite_id', assi_id); assiduite["assiduite_id"] = assi_id; assiduites[etudid].push(assiduite); diff --git a/tests/api/test_api_assiduites.py b/tests/api/test_api_assiduites.py index c8581d745..6c346ac4e 100644 --- a/tests/api/test_api_assiduites.py +++ b/tests/api/test_api_assiduites.py @@ -269,6 +269,11 @@ def test_route_create(api_admin_headers): assert len(res["success"]) == 1 TO_REMOVE.append(res["success"][0]["message"]["assiduite_id"]) + data = GET( + path=f'/assiduite/{res["success"][0]["message"]["assiduite_id"]}', + headers=api_admin_headers, + ) + check_fields(data) data2 = create_data("absent", "02", MODULE, "desc") res = POST_JSON(f"/assiduite/{ETUDID}/create", [data2], api_admin_headers) From c08cb8c7974eb193513ae71e73966fb75cd5ed5e Mon Sep 17 00:00:00 2001 From: iziram Date: Fri, 11 Aug 2023 16:39:37 +0200 Subject: [PATCH 2/3] Assiduites : bugfix differee massAction --- app/templates/assiduites/widgets/differee.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/templates/assiduites/widgets/differee.j2 b/app/templates/assiduites/widgets/differee.j2 index 51c4de1f0..0b267b8c1 100644 --- a/app/templates/assiduites/widgets/differee.j2 +++ b/app/templates/assiduites/widgets/differee.j2 @@ -917,7 +917,7 @@ ).done((c, e) => { Object.keys(c[0].success).forEach((k) => { const assiduite = createList[Number.parseInt(k)]; - assiduite["assiduite_id"] = c[0].success[k].assiduite_id; + assiduite["assiduite_id"] = c[0].success[k].message.assiduite_id; assiduites[assiduite.etudid].push(assiduite); }) Object.keys(e[0].success).forEach((k) => { From 1fe7e79948d704af6719f57579889648f7f941fb Mon Sep 17 00:00:00 2001 From: iziram Date: Fri, 11 Aug 2023 16:59:53 +0200 Subject: [PATCH 3/3] Assiduites : bugfix justif import fichier --- app/static/js/assiduites.js | 4 ++-- app/templates/assiduites/pages/ajout_justificatif.j2 | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/static/js/assiduites.js b/app/static/js/assiduites.js index eafb25892..2ee935efc 100644 --- a/app/static/js/assiduites.js +++ b/app/static/js/assiduites.js @@ -885,7 +885,7 @@ function createAssiduite(etat, etudid) { (data, status) => { //success if (data.success.length > 0) { - let obj = data.success["0"].assiduite_id; + let obj = data.success["0"].message.assiduite_id; } }, (data, status) => { @@ -910,7 +910,7 @@ function deleteAssiduite(assiduite_id) { (data, status) => { //success if (data.success.length > 0) { - let obj = data.success["0"].assiduite_id; + let obj = data.success["0"].message.assiduite_id; } }, (data, status) => { diff --git a/app/templates/assiduites/pages/ajout_justificatif.j2 b/app/templates/assiduites/pages/ajout_justificatif.j2 index 0d2891c1b..9aaf83e28 100644 --- a/app/templates/assiduites/pages/ajout_justificatif.j2 +++ b/app/templates/assiduites/pages/ajout_justificatif.j2 @@ -164,7 +164,7 @@ dateType: 'json', contentType: false, processData: false, - success: () => { }, + success: () => { console.log("done") }, } ) ) @@ -192,8 +192,8 @@ errorAlert(); } if (Object.keys(data.success).length > 0) { - couverture = data.success[0].couverture - justif_id = data.success[0].justif_id; + couverture = data.success[0].message.couverture + justif_id = data.success[0].message.justif_id; importFiles(justif_id); return; }