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():

Reply via email to