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

Reply via email to