16 lines
694 B
Python
16 lines
694 B
Python
from ..connection import connect
|
|
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 {col} = ? WHERE id = ?", (new_value, row_id))
|
|
conn.commit()
|
|
conn.close()
|