first commit
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
from ..slugify import slugify
|
||||
|
||||
|
||||
def row_columns_and_values(definition, form_data):
|
||||
"""Traduit les données d'un formulaire généré en (colonnes, valeurs)
|
||||
prêtes pour un INSERT ou un UPDATE — factorisé pour que les deux
|
||||
partagent exactement la même logique de conversion de type."""
|
||||
cols, values = [], []
|
||||
for f in definition["fields"]:
|
||||
fname = slugify(f["name"]).replace("-", "_")
|
||||
if f["type"] == "relation":
|
||||
col = f"{fname}_id"
|
||||
raw = form_data.get(col, "")
|
||||
values.append(int(raw) if raw else None)
|
||||
elif f["type"] == "booleen":
|
||||
values.append(1 if form_data.get(fname) == "on" else 0)
|
||||
col = fname
|
||||
elif f["type"] in ("nombre_entier", "nombre_decimal"):
|
||||
raw = form_data.get(fname, "")
|
||||
values.append((int(raw) if f["type"] == "nombre_entier" else float(raw)) if raw != "" else None)
|
||||
col = fname
|
||||
else:
|
||||
values.append(form_data.get(fname, "") or None)
|
||||
col = fname
|
||||
cols.append(col)
|
||||
return cols, values
|
||||
Reference in New Issue
Block a user