conversion preferences

This commit is contained in:
Emmanuel Viennet 2022-03-14 14:28:22 +01:00
parent 6a525eb1a1
commit 204ee4a02b

View File

@ -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