from ..connection import connect from ..quote_ident import quote_ident from ..slugify import slugify def update_row_field(slug, definition, row_id, field_def, new_value): """Met à jour UNE SEULE colonne d'une ligne existante — utilisé par les actions "Modifier une donnée" du mode jouable, qui ne doivent jamais écraser les autres champs de la ligne (contrairement à update_row, qui attend un formulaire complet).""" fname = slugify(field_def["name"]).replace("-", "_") col = f"{fname}_id" if field_def["type"] == "relation" else fname conn = connect(slug) conn.execute(f"UPDATE {definition['table_name']} SET {quote_ident(col)} = ? WHERE id = ?", (new_value, row_id)) conn.commit() conn.close()