From 774c4178ce0d5aa20dc1d30592cf3df184bed5d3 Mon Sep 17 00:00:00 2001 From: iziram Date: Fri, 11 Aug 2023 16:14:29 +0200 Subject: [PATCH] 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 48f54db6..cc55f092 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 5fe6bba8..eafb2589 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 fcb2c5ff..51c4de1f 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 c8581d74..6c346ac4 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)