summaryrefslogtreecommitdiff
path: root/bin/osv/fields.py
diff options
context:
space:
mode:
authorChristophe Simonis <chs@tinyerp.com>2009-12-01 14:19:08 +0100
committerChristophe Simonis <chs@tinyerp.com>2009-12-01 14:19:08 +0100
commit229c73d741a2d902ae64335ec5bdeeb58d8fa54e (patch)
treec547af523a0673cf951ddaac441f35aef4ffa170 /bin/osv/fields.py
parentbb6e26450e975a218434f46ede4b98cb0c701fc8 (diff)
[FIX] allow related fields to point to one2many and many2many fields
lp bug: https://launchpad.net/bugs/356628 fixed bzr revid: chs@tinyerp.com-20091201131908-k5l5tmtpjq3m975x
Diffstat (limited to 'bin/osv/fields.py')
-rw-r--r--bin/osv/fields.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/bin/osv/fields.py b/bin/osv/fields.py
index 92c9c634365..e1d70978181 100644
--- a/bin/osv/fields.py
+++ b/bin/osv/fields.py
@@ -744,7 +744,7 @@ class related(function):
except:
t_data = False
break
- if field_detail['type'] in ('one2many', 'many2many'):
+ if field_detail['type'] in ('one2many', 'many2many') and i != len(self.arg) - 1:
t_data = t_data[self.arg[i]][0]
else:
t_data = t_data[self.arg[i]]
@@ -760,6 +760,12 @@ class related(function):
for r in res:
if res[r]:
res[r] = (res[r], ng[res[r]])
+ elif self._type in ('one2many', 'many2many'):
+ for r in res:
+ if res[r]:
+ res[r] = [x.id for x in res[r]]
+
+
return res
def __init__(self, *arg, **args):