Commit 2b44ca25 authored by Romain Courteaud's avatar Romain Courteaud Committed by Rafael Monnerat

Allow to proxify to form with the same ID

parent dd28fe94
...@@ -803,7 +803,7 @@ class ERP5Form(Base, ZMIForm, ZopePageTemplate): ...@@ -803,7 +803,7 @@ class ERP5Form(Base, ZMIForm, ZopePageTemplate):
# Find folders which can be surcharged by this skin folder # Find folders which can be surcharged by this skin folder
if '_' in folder_id: 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 \ if (surcharged_folder_id != folder_id) and \
(getattr(portal.portal_skins, surcharged_folder_id, None) \ (getattr(portal.portal_skins, surcharged_folder_id, None) \
is not None): is not None):
...@@ -824,8 +824,8 @@ class ERP5Form(Base, ZMIForm, ZopePageTemplate): ...@@ -824,8 +824,8 @@ class ERP5Form(Base, ZMIForm, ZopePageTemplate):
for i in obj.objectValues(): for i in obj.objectValues():
if (i.meta_type=='ERP5 Form' and if (i.meta_type=='ERP5 Form' and
i.id.startswith('Base_view') and i.id.startswith('Base_view') and
i.id.endswith('FieldLibrary') and i.id.endswith('FieldLibrary') and
'_view' in i.getId()): '_view' in i.getId()) or (i.id == self.id):
form_id = i.getId() form_id = i.getId()
form_path = '%s.%s' % (obj.getId(), form_id) form_path = '%s.%s' % (obj.getId(), form_id)
field_list = [] field_list = []
...@@ -1106,7 +1106,17 @@ class ERP5Form(Base, ZMIForm, ZopePageTemplate): ...@@ -1106,7 +1106,17 @@ class ERP5Form(Base, ZMIForm, ZopePageTemplate):
for field_id in field_dict.keys(): for field_id in field_dict.keys():
target = field_dict[field_id] 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. # keep current group and position.
group, position = get_group_and_position(field_id) group, position = get_group_and_position(field_id)
......
...@@ -49,7 +49,7 @@ Keep empty values <input type="checkbox" name="keep_empty_value"> <br/> ...@@ -49,7 +49,7 @@ Keep empty values <input type="checkbox" name="keep_empty_value"> <br/>
field_id="field_object.getId()" field_id="field_object.getId()"
field_type="item['field_type']" field_type="item['field_type']"
proxy_mark="item['proxy_flag'] and ' (Proxy)' or ''"> 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)"> <dtml-var "'%s%s' % (field_id, proxy_mark)">
</option> </option>
</dtml-let> </dtml-let>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment