changeset a4dcead3f93c in trytond:5.0
details: https://hg.tryton.org/trytond?cmd=changeset;node=a4dcead3f93c
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 7e1081cd7a76 -r a4dcead3f93c trytond/model/modelstorage.py
--- a/trytond/model/modelstorage.py Tue Feb 11 10:01:59 2020 +0100
+++ b/trytond/model/modelstorage.py Wed Feb 12 00:15:15 2020 +0100
@@ -1346,7 +1346,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 7e1081cd7a76 -r a4dcead3f93c trytond/tests/field_context.py
--- a/trytond/tests/field_context.py Tue Feb 11 10:01:59 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 7e1081cd7a76 -r a4dcead3f93c trytond/tests/test_field_context.py
--- a/trytond/tests/test_field_context.py Tue Feb 11 10:01:59 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():