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

Reply via email to