From deb18eab32e8c8eec7f8a935bc8990e9fff74e0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sat, 7 Jun 2008 20:25:22 +0200 Subject: [PATCH] Allow to handle reference field with this model (model, (id, name)) for issue74 --- tryton/gui/window/view_form/model/field.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/tryton/gui/window/view_form/model/field.py b/tryton/gui/window/view_form/model/field.py index 945ed6b9ed..5058661499 100644 --- a/tryton/gui/window/view_form/model/field.py +++ b/tryton/gui/window/view_form/model/field.py @@ -470,16 +470,20 @@ class ReferenceField(CharField): if not value: model.value[self.name] = False return - ref_model, ref_id = value.split(',') - rpc2 = RPCProxy(ref_model) - try: - result = rpc2.name_get([ref_id], rpc.CONTEXT) - except: - return - if result: - model.value[self.name] = ref_model, result[0] + ref_model, ref_id = value.split(',', 1) + ref_id = eval(ref_id) + if isinstance(ref_id, (int, basestring, long)): + rpc2 = RPCProxy(ref_model) + try: + result = rpc2.name_get([ref_id], rpc.CONTEXT) + except: + return + if result: + model.value[self.name] = ref_model, result[0] + else: + model.value[self.name] = ref_model, (0, '') else: - model.value[self.name] = ref_model, (0, '') + model.value[self.name] = ref_model, ref_id if modified: model.modified = True model.modified_fields.setdefault(self.name)