Reviewers: ,
Please review this at http://codereview.tryton.org/40006/
Affected files:
M tryton/gui/window/view_form/model/field.py
Index: tryton/gui/window/view_form/model/field.py
===================================================================
--- a/tryton/gui/window/view_form/model/field.py
+++ b/tryton/gui/window/view_form/model/field.py
@@ -315,12 +315,13 @@
def get(self, record, check_load=True, readonly=True, modified=False):
value = record.value.get(self.name)
- if record.parent_name == self.name:
+ if (record.parent_name == self.name
+ and self.attrs['relation'] == record.group.parent):
value = record.parent.id if record.parent else False
if value:
if isinstance(value, (int, basestring, long)):
self.set(record, value)
- value = record.value.get(self.name)
+ value = record.value.get(self.name, value)
if isinstance(value, (int, basestring, long)):
return value
return value[0] or False
@@ -328,19 +329,21 @@
def get_client(self, record):
value = record.value.get(self.name)
- if record.parent_name == self.name:
+ if (record.parent_name == self.name
+ and self.attrs['relation'] == record.group.parent):
value = record.parent.id if record.parent else False
if value:
if isinstance(value, (int, basestring, long)):
self.set(record, value)
- value = record.value.get(self.name)
+ value = record.value.get(self.name, value)
if isinstance(value, (int, basestring, long)):
return value
return value[1]
return False
def set(self, record, value, modified=False):
- if record.parent_name == self.name:
+ if (record.parent_name == self.name
+ and self.attrs['relation'] == record.group.parent):
if record.parent:
if 'rec_name' in record.parent.value:
value = (record.parent.id,
record.parent.value['rec_name'])
@@ -369,7 +372,8 @@
else:
record.value[self.name + '.rec_name'] = ''
record.value[self.name] = value or (False, '')
- if record.parent_name == self.name:
+ if (record.parent_name == self.name
+ and self.attrs['relation'] == record.group.parent):
if record.parent:
if 'rec_name' not in record.parent.value:
record.parent.value['rec_name'] = \
@@ -421,7 +425,8 @@
def get_state_attrs(self, record):
result = super(M2OField, self).get_state_attrs(record)
- if record.parent_name == self.name:
+ if (record.parent_name == self.name
+ and self.attrs['relation'] == record.group.parent):
result = result.copy()
result['readonly'] = True
return result
--
[email protected] mailing list