summaryrefslogtreecommitdiff
path: root/odoo/addons/test_testing_utilities
diff options
context:
space:
mode:
authorXavier Morel <xmo@odoo.com>2019-01-22 11:12:39 +0000
committerXavier Morel <xmo@odoo.com>2019-01-22 11:12:39 +0000
commita313f342d380a4046a765b708dddb06c46a20ef2 (patch)
tree6be354e3d2288a33eebaccffcd7055a2370c3a76 /odoo/addons/test_testing_utilities
parent23e0d2cc17f94c71496f271d0be83e7df402dc83 (diff)
[IMP] core: add force_save support to server-side form
Cf 3b3f6f04af79d7dcc4461262e14e05096d76180b for basic feature description. Task 1931580 closes odoo/odoo#30428
Diffstat (limited to 'odoo/addons/test_testing_utilities')
-rw-r--r--odoo/addons/test_testing_utilities/menu.xml2
-rw-r--r--odoo/addons/test_testing_utilities/models.py4
-rw-r--r--odoo/addons/test_testing_utilities/tests/test_form_impl.py13
3 files changed, 19 insertions, 0 deletions
diff --git a/odoo/addons/test_testing_utilities/menu.xml b/odoo/addons/test_testing_utilities/menu.xml
index fa5263efeca..99e409708c2 100644
--- a/odoo/addons/test_testing_utilities/menu.xml
+++ b/odoo/addons/test_testing_utilities/menu.xml
@@ -101,6 +101,8 @@
<field name="f2" attrs="{'readonly': [['f1', '=', 63], ['f3', '=', 5]]}"/>
<field name="f3"/>
<field name="f4"/>
+ <field name="f5" readonly="1"/>
+ <field name="f6" readonly="1" force_save="1"/>
</form>
</field>
</record>
diff --git a/odoo/addons/test_testing_utilities/models.py b/odoo/addons/test_testing_utilities/models.py
index 68dc9172123..98a9fea7e7f 100644
--- a/odoo/addons/test_testing_utilities/models.py
+++ b/odoo/addons/test_testing_utilities/models.py
@@ -10,10 +10,14 @@ class A(models.Model):
f2 = fields.Integer(default=42)
f3 = fields.Integer()
f4 = fields.Integer(compute='_compute_f4')
+ f5 = fields.Integer()
+ f6 = fields.Integer()
@api.onchange('f2')
def _on_change_f2(self):
self.f3 = int(self.f2 / 2)
+ self.f5 = self.f2
+ self.f6 = self.f2
@api.depends('f1', 'f2')
def _compute_f4(self):
diff --git a/odoo/addons/test_testing_utilities/tests/test_form_impl.py b/odoo/addons/test_testing_utilities/tests/test_form_impl.py
index a14d6b93974..e2f0d0d89d3 100644
--- a/odoo/addons/test_testing_utilities/tests/test_form_impl.py
+++ b/odoo/addons/test_testing_utilities/tests/test_form_impl.py
@@ -65,6 +65,19 @@ class TestBasic(TransactionCase):
with self.assertRaises(AssertionError):
f.f2 = 42
+ def test_readonly_save(self):
+ """ Should not save readonly fields unless they're force_save
+ """
+ f = Form(self.env['test_testing_utilities.a'], view='test_testing_utilities.non_normalized_attrs')
+
+ f.f1 = 1
+ f.f2 = 987
+ self.assertEqual(f.f5, 987)
+ self.assertEqual(f.f6, 987)
+ r = f.save()
+ self.assertEqual(r.f5, 0)
+ self.assertEqual(r.f6, 987)
+
def test_attrs(self):
""" Checks that attrs/modifiers with non-normalized domains work
"""