Files
Forge-Engine/db/rows/row_columns_and_values.py
T
williamandwilliam 3f4ebc4527
Build and deploy / build-and-push (push) Successful in 17s
Build and deploy / deploy (push) Successful in 10s
first commit
2026-08-21 16:23:49 +02:00

27 lines
1.1 KiB
Python

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