From 204ee4a02b6ec0a6bf4cd62b2b30e7570c40489d Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Mon, 14 Mar 2022 14:28:22 +0100 Subject: [PATCH] conversion preferences --- app/scodoc/sco_preferences.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/app/scodoc/sco_preferences.py b/app/scodoc/sco_preferences.py index ba2229db..e5c07fd1 100644 --- a/app/scodoc/sco_preferences.py +++ b/app/scodoc/sco_preferences.py @@ -152,19 +152,18 @@ def get_preference(name, formsemestre_id=None): def _convert_pref_type(p, pref_spec): """p est une ligne de la bd {'id': , 'dept_id': , 'name': '', 'value': '', 'formsemestre_id': } - converti la valeur chane en le type désiré spécifié par pref_spec + converti la valeur chaine en le type désiré spécifié par pref_spec """ if "type" in pref_spec: typ = pref_spec["type"] if typ == "float": # special case for float values (where NULL means 0) - if p["value"]: - p["value"] = float(p["value"]) - else: - p["value"] = 0.0 + p["value"] = float(p["value"] or 0) + elif typ == "int": + p["value"] = int(p["value"] or 0) else: - func = eval(typ) - p["value"] = func(p["value"]) + raise ValueError("invalid preference type") + if pref_spec.get("input_type", None) == "boolcheckbox": # boolcheckbox: la valeur stockée en base est une chaine "0" ou "1" # que l'on ressort en True|False