[FIX] models: use `column._symbol_c` as placeholder for the column value
When generating SQL queries, `column._symbol_c` must be used as placeholder as for the method 'set' of the column itself. Otherwise it is not possible to define specialized columns.
This commit is contained in:
parent
ff915dd96e
commit
d82e489add
|
@ -3876,7 +3876,7 @@ class BaseModel(object):
|
||||||
self._check_selection_field_value(cr, user, field, vals[field], context=context)
|
self._check_selection_field_value(cr, user, field, vals[field], context=context)
|
||||||
if column._classic_write and not hasattr(column, '_fnct_inv'):
|
if column._classic_write and not hasattr(column, '_fnct_inv'):
|
||||||
if (not totranslate) or not column.translate:
|
if (not totranslate) or not column.translate:
|
||||||
updates.append((field, '%s', column._symbol_set[1](vals[field])))
|
updates.append((field, column._symbol_set[0], column._symbol_set[1](vals[field])))
|
||||||
direct.append(field)
|
direct.append(field)
|
||||||
else:
|
else:
|
||||||
upd_todo.append(field)
|
upd_todo.append(field)
|
||||||
|
@ -4189,7 +4189,7 @@ class BaseModel(object):
|
||||||
for field in vals:
|
for field in vals:
|
||||||
current_field = self._columns[field]
|
current_field = self._columns[field]
|
||||||
if current_field._classic_write:
|
if current_field._classic_write:
|
||||||
updates.append((field, '%s', current_field._symbol_set[1](vals[field])))
|
updates.append((field, current_field._symbol_set[0], current_field._symbol_set[1](vals[field])))
|
||||||
|
|
||||||
#for the function fields that receive a value, we set them directly in the database
|
#for the function fields that receive a value, we set them directly in the database
|
||||||
#(they may be required), but we also need to trigger the _fct_inv()
|
#(they may be required), but we also need to trigger the _fct_inv()
|
||||||
|
@ -4422,7 +4422,7 @@ class BaseModel(object):
|
||||||
value[v] = value[v][0]
|
value[v] = value[v][0]
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
updates.append((v, '%s', column._symbol_set[1](value[v])))
|
updates.append((v, column._symbol_set[0], column._symbol_set[1](value[v])))
|
||||||
if updates:
|
if updates:
|
||||||
query = 'UPDATE "%s" SET %s WHERE id = %%s' % (
|
query = 'UPDATE "%s" SET %s WHERE id = %%s' % (
|
||||||
self._table, ','.join('"%s"=%s' % u[:2] for u in updates),
|
self._table, ','.join('"%s"=%s' % u[:2] for u in updates),
|
||||||
|
@ -4446,8 +4446,8 @@ class BaseModel(object):
|
||||||
value = value[0]
|
value = value[0]
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
query = 'UPDATE "%s" SET "%s"=%%s WHERE id = %%s' % (
|
query = 'UPDATE "%s" SET "%s"=%s WHERE id = %%s' % (
|
||||||
self._table, f,
|
self._table, f, column._symbol_set[0],
|
||||||
)
|
)
|
||||||
cr.execute(query, (column._symbol_set[1](value), id))
|
cr.execute(query, (column._symbol_set[1](value), id))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue