diff --git a/tryton/gui/window/view_form/model/field.py b/tryton/gui/window/view_form/model/field.py index 4aad14f02a..9cf9ad3588 100644 --- a/tryton/gui/window/view_form/model/field.py +++ b/tryton/gui/window/view_form/model/field.py @@ -763,7 +763,7 @@ class ReferenceField(CharField): ref_model, (ref_id, ref_str) = value if ref_model: ref_id = int(ref_id) - if not ref_id: + if ref_id < 0: ref_str = '' if not ref_str and ref_id >= 0: args = ('model', ref_model, 'read', ref_id, @@ -779,7 +779,7 @@ class ReferenceField(CharField): record.value[self.name] = ref_model, (ref_id, result) record.value[self.name + '.rec_name'] = result else: - record.value[self.name] = ref_model, (0, '') + record.value[self.name] = ref_model, (-1, '') record.value[self.name + '.rec_name'] = '' else: record.value[self.name] = ref_model, (ref_id, ref_str) diff --git a/tryton/gui/window/view_form/view/form_gtk/many2one.py b/tryton/gui/window/view_form/view/form_gtk/many2one.py index 8355e29582..74e13d1110 100644 --- a/tryton/gui/window/view_form/view/form_gtk/many2one.py +++ b/tryton/gui/window/view_form/view/form_gtk/many2one.py @@ -267,7 +267,7 @@ class Many2One(WidgetInterface): def _populate_popup(self, widget, menu): value = self.field.get(self.record) args = ('model', 'ir.action.keyword', 'get_keyword', - 'form_relate', (self.attrs['relation'], 0), rpc.CONTEXT) + 'form_relate', (self.attrs['relation'], -1), rpc.CONTEXT) try: relates = rpc.execute(*args) except TrytonServerError, exception: diff --git a/tryton/gui/window/view_form/view/form_gtk/reference.py b/tryton/gui/window/view_form/view/form_gtk/reference.py index 28c586e99a..cad6c5f074 100644 --- a/tryton/gui/window/view_form/view/form_gtk/reference.py +++ b/tryton/gui/window/view_form/view/form_gtk/reference.py @@ -155,7 +155,7 @@ class Reference(WidgetInterface): self.focus_out = False if not value: - model, (obj_id, name) = self.get_model() or '', (0, '') + model, (obj_id, name) = self.get_model() or '', (-1, '') else: try: model, (obj_id, name) = value @@ -250,18 +250,18 @@ class Reference(WidgetInterface): if not self.changed: return self.wid_text.set_text('') - self.field.set_client(self.record, (self.get_model(), (0, ''))) + self.field.set_client(self.record, (self.get_model(), (-1, ''))) def sig_changed(self, *args): if not self.changed: return False val = self.field.get_client(self.record) if not val: - model, (obj_id, name) = '', (0, '') + model, (obj_id, name) = '', (-1, '') else: model, (obj_id, name) = val if self.get_model() and obj_id: - self.field.set_client(self.record, (self.get_model(), (0, ''))) + self.field.set_client(self.record, (self.get_model(), (-1, ''))) self.display(self.record, self.field) return False @@ -276,7 +276,7 @@ class Reference(WidgetInterface): value = field.get_client(record) img = gtk.Image() if not value: - model, (obj_id, name) = '', (0, '') + model, (obj_id, name) = '', (-1, '') else: model, (obj_id, name) = value if model: diff --git a/tryton/gui/window/view_form/view/list.py b/tryton/gui/window/view_form/view/list.py index 51fe2b4da7..c06febb9c2 100644 --- a/tryton/gui/window/view_form/view/list.py +++ b/tryton/gui/window/view_form/view/list.py @@ -527,7 +527,7 @@ class ViewList(ParserView): value = record[path[1].name].get(record) args = ('model', 'ir.action.keyword', 'get_keyword', 'form_relate', (self.screen.group.fields[ - path[1].name].attrs['relation'], 0), rpc.CONTEXT) + path[1].name].attrs['relation'], -1), rpc.CONTEXT) try: relates = rpc.execute(*args) except TrytonServerError, exception: diff --git a/tryton/gui/window/view_form/view/list_gtk/parser.py b/tryton/gui/window/view_form/view/list_gtk/parser.py index 20fc43a4e5..662fc971ab 100644 --- a/tryton/gui/window/view_form/view/list_gtk/parser.py +++ b/tryton/gui/window/view_form/view/list_gtk/parser.py @@ -819,7 +819,7 @@ class Reference(Char): def get_textual_value(self, record): value = record[self.field_name].get_client(record) if not value: - model, (obj_id, name) = '', (0, '') + model, (obj_id, name) = '', (-1, '') else: model, (obj_id, name) = value if model: