From 99999ea6cf33c463203389b5d1b94a7165b992bd Mon Sep 17 00:00:00 2001 From: Romain Courteaud <romain@nexedi.com> Date: Wed, 18 Apr 2012 10:55:21 +0200 Subject: [PATCH] Allow to proxify to form with the same ID --- product/ERP5Form/Form.py | 18 ++++++++++++++---- product/ERP5Form/dtml/formProxify.dtml | 2 +- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/product/ERP5Form/Form.py b/product/ERP5Form/Form.py index aaad009984..3abb540b4b 100644 --- a/product/ERP5Form/Form.py +++ b/product/ERP5Form/Form.py @@ -818,7 +818,7 @@ class ERP5Form(Base, ZMIForm, ZopePageTemplate): # Find folders which can be surcharged by this skin folder if '_' in folder_id: - surcharged_folder_id = 'erp5_%s' % folder_id.split('_')[-1] + surcharged_folder_id = 'erp5_%s' % folder_id.split('_', 1)[-1] if (surcharged_folder_id != folder_id) and \ (getattr(portal.portal_skins, surcharged_folder_id, None) \ is not None): @@ -839,8 +839,8 @@ class ERP5Form(Base, ZMIForm, ZopePageTemplate): for i in obj.objectValues(): if (i.meta_type=='ERP5 Form' and i.id.startswith('Base_view') and - i.id.endswith('FieldLibrary') and - '_view' in i.getId()): + i.id.endswith('FieldLibrary') and + '_view' in i.getId()) or (i.id == self.id): form_id = i.getId() form_path = '%s.%s' % (obj.getId(), form_id) field_list = [] @@ -1120,7 +1120,17 @@ class ERP5Form(Base, ZMIForm, ZopePageTemplate): for field_id in field_dict.keys(): target = field_dict[field_id] - target_form_id, target_field_id = target.split('.') + target_list = target.split('.') + if len(target_list) == 2: + target_form_id, target_field_id = target_list + elif len(target_list) == 3: + target_field_id = target_list[2] + if target_list[1] == self.id: + target_form_id = '/'.join(target_list[:2]) + else: + target_form_id = target_list[1] + else: + raise NotImplementedError, "Not supported path: %s" % target # keep current group and position. group, position = get_group_and_position(field_id) diff --git a/product/ERP5Form/dtml/formProxify.dtml b/product/ERP5Form/dtml/formProxify.dtml index fc00dc8fac..c9bd7bd860 100644 --- a/product/ERP5Form/dtml/formProxify.dtml +++ b/product/ERP5Form/dtml/formProxify.dtml @@ -49,7 +49,7 @@ Keep empty values <input type="checkbox" name="keep_empty_value"> <br/> field_id="field_object.getId()" field_type="item['field_type']" proxy_mark="item['proxy_flag'] and ' (Proxy)' or ''"> -<option value="<dtml-var "'%s.%s' % (form_id, field_id)">"> +<option value="<dtml-var "'%s.%s' % (form_path, field_id)">"> <dtml-var "'%s%s' % (field_id, proxy_mark)"> </option> </dtml-let> -- 2.30.9