[FIX] tests: make server-side Form use web_save() like the web client

closes odoo/odoo#142275

Signed-off-by: Rémy Voet (ryv) <ryv@odoo.com>
This commit is contained in:
Raphael Collet
2023-11-16 11:44:57 +00:00
parent c862d3f19e
commit f1b1a2b44d
+14 -9
View File
@@ -407,15 +407,20 @@ class Form:
:raises AssertionError: if the form has any unfilled required field
"""
values = self._get_save_values()
if self._record:
if values:
self._record.write(values)
else:
object.__setattr__(self, '_record', self._record.create(values))
# reload the record
self._init_from_record()
self._env.flush_all()
self._env.clear() # discard cache and pending recomputations
if not self._record or values:
# save and reload
[record_values] = self._record.web_save(values, self._view['fields_spec'])
self._env.flush_all()
self._env.clear() # discard cache and pending recomputations
if not self._record:
record = self._record.browse(record_values['id'])
object.__setattr__(self, '_record', record)
values = convert_read_to_form(record_values, self._view['fields'])
self._values.clear()
self._values.update(values)
return self._record
@property