changeset 0e1a6e644fa7 in trytond:5.4
details: https://hg.tryton.org/trytond?cmd=changeset;node=0e1a6e644fa7
description:
Read context fields if they are also in depends
This implements the real intention of changeset a892e7a649a5.
issue9036
review280791002
(grafted from b2a0b6051e8618f84165343c9a56eda8ed12ff83)
diffstat:
trytond/model/modelstorage.py | 2 +-
trytond/tests/field_context.py | 4 +++-
trytond/tests/test_field_context.py | 2 ++
3 files changed, 6 insertions(+), 2 deletions(-)
diffs (42 lines):
diff -r 861c92e544d6 -r 0e1a6e644fa7 trytond/model/modelstorage.py
--- a/trytond/model/modelstorage.py Mon Feb 10 23:18:19 2020 +0100
+++ b/trytond/model/modelstorage.py Wed Feb 12 00:15:15 2020 +0100
@@ -1468,7 +1468,7 @@
if field.context:
eval_fields = fields.get_eval_fields(field.context)
for context_field_name in eval_fields:
- if context_field_name in field.depends:
+ if context_field_name not in field.depends:
continue
context_field = self._fields.get(context_field_name)
if context_field not in ffields:
diff -r 861c92e544d6 -r 0e1a6e644fa7 trytond/tests/field_context.py
--- a/trytond/tests/field_context.py Mon Feb 10 23:18:19 2020 +0100
+++ b/trytond/tests/field_context.py Wed Feb 12 00:15:15 2020 +0100
@@ -17,7 +17,9 @@
child = fields.Many2One('test.field_context.child', 'Child',
context={
'name': Eval('name'),
- })
+ 'rec_name': Eval('rec_name'),
+ },
+ depends=['name'])
class FieldContextChild(ModelSQL):
diff -r 861c92e544d6 -r 0e1a6e644fa7 trytond/tests/test_field_context.py
--- a/trytond/tests/test_field_context.py Mon Feb 10 23:18:19 2020 +0100
+++ b/trytond/tests/test_field_context.py Wed Feb 12 00:15:15 2020 +0100
@@ -24,10 +24,12 @@
parent = Parent(name='foo', child=child)
parent.save()
self.assertEqual(parent.child._context['name'], 'foo')
+ self.assertEqual(parent.child._context['rec_name'], '')
parent.name = 'bar'
parent.save()
self.assertEqual(parent.child._context['name'], 'bar')
+ self.assertEqual(parent.child._context['rec_name'], '')
def suite():