Reviewers: ,


Please review this at http://codereview.tryton.org/419001/

Affected files:
  M trytond/model/fields/one2many.py
  M trytond/tests/test_fields.py


Index: trytond/model/fields/one2many.py
===================================================================
--- a/trytond/model/fields/one2many.py
+++ b/trytond/model/fields/one2many.py
@@ -108,7 +108,12 @@
         for i in chain(*ids2):
             if i in cache[self.model_name] \
                     and self.field in cache[self.model_name][i]:
-                res[cache[self.model_name][i][self.field].id].append(i)
+                if field._type == 'reference':
+ _, id_ = cache[self.model_name][i][self.field].split(',')
+                    id_ = int(id_)
+                else:
+                    id_ = cache[self.model_name][i][self.field]
+                res[id_].append(i)
             else:
                 ids3.append(i)

Index: trytond/tests/test_fields.py
===================================================================
--- a/trytond/tests/test_fields.py
+++ b/trytond/tests/test_fields.py
@@ -2504,6 +2504,12 @@
                 self.assertEqual(len(one2many1['targets']), 1)
                 target1_id, = one2many1['targets']

+                # Try with target1 stored in cache
+                target1 = one2many_target.browse(target1_id)
+                target1.origin
+                one2many1 = one2many.read(one2many1_id, ['targets'])
+                self.assertEqual(one2many1['targets'], [target1_id])
+
                 one2many_ids = one2many.search([
                         ('targets', '=', 'target1'),
                         ])


--
[email protected] mailing list

Reply via email to