diff --git a/product/ERP5Form/Form.py b/product/ERP5Form/Form.py index 91a6842e1740fd07ccd195d005af4772c87d34d6..1146c233d56773b628f25f0bd0c69e7f1c73bfdc 100644 --- a/product/ERP5Form/Form.py +++ b/product/ERP5Form/Form.py @@ -829,7 +829,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): @@ -850,8 +850,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 = [] @@ -1131,7 +1131,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 fc00dc8facd1fc8625ba0b8681f5b938747e13aa..c9bd7bd860274f5ca8b9b79d452e25b0f3162c99 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>