Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
erp5
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Labels
Merge Requests
141
Merge Requests
141
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Jobs
Commits
Open sidebar
nexedi
erp5
Commits
062f4840
Commit
062f4840
authored
Apr 18, 2012
by
Romain Courteaud
Committed by
Rafael Monnerat
Mar 06, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Allow to proxify to form with the same ID
parent
d75f1e67
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
62 additions
and
4 deletions
+62
-4
product/ERP5Form/Form.py
product/ERP5Form/Form.py
+61
-3
product/ERP5Form/dtml/formProxify.dtml
product/ERP5Form/dtml/formProxify.dtml
+1
-1
No files found.
product/ERP5Form/Form.py
View file @
062f4840
...
@@ -769,6 +769,54 @@ class ERP5Form(Base, ZMIForm, ZopePageTemplate):
...
@@ -769,6 +769,54 @@ class ERP5Form(Base, ZMIForm, ZopePageTemplate):
# FTP/DAV Access
# FTP/DAV Access
manage_FTPget
=
ZMIForm
.
get_xml
manage_FTPget
=
ZMIForm
.
get_xml
def
PUT
(
self
,
REQUEST
,
RESPONSE
):
"""Handle HTTP PUT requests."""
self
.
dav__init
(
REQUEST
,
RESPONSE
)
self
.
dav__simpleifhandler
(
REQUEST
,
RESPONSE
,
refresh
=
1
)
if
REQUEST
.
environ
[
'REQUEST_METHOD'
]
!=
'PUT'
:
raise
Forbidden
(
'REQUEST_METHOD should be PUT.'
)
body
=
REQUEST
.
get
(
'BODY'
,
''
)
# Empty the form (XMLToForm is unable to empty things before reopening)
for
k
in
self
.
get_field_ids
():
try
:
self
.
_delObject
(
k
)
except
AttributeError
:
pass
self
.
groups
=
{}
self
.
group_list
=
[]
# And reimport
XMLToForm
(
body
,
self
)
self
.
ZCacheable_invalidate
()
RESPONSE
.
setStatus
(
204
)
return
RESPONSE
manage_FTPput
=
PUT
security
.
declarePrivate
(
'getSimilarSkinFolderIdList'
)
def
getSimilarSkinFolderIdList
(
self
):
"""
Find other skins id installed in the same time
"""
portal
=
self
.
getPortalObject
()
folder_id
=
self
.
aq_parent
.
id
# Find a business template which manages the context skin folder.
folder_id_set
=
{
folder_id
}
for
template
in
portal
.
portal_templates
.
getInstalledBusinessTemplateList
():
template_skin_id_list
=
template
.
getTemplateSkinIdList
()
if
folder_id
in
template_skin_id_list
:
folder_id_set
.
update
(
template_skin_id_list
)
# Find folders which can be surcharged by this skin folder
if
'_'
in
folder_id
:
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
):
folder_id_set
.
add
(
surcharged_folder_id
)
break
return
list
(
folder_id_set
)
#Methods for Proxify tab.
#Methods for Proxify tab.
security
.
declareProtected
(
'View management screens'
,
'getFormFieldList'
)
security
.
declareProtected
(
'View management screens'
,
'getFormFieldList'
)
def
getFormFieldList
(
self
):
def
getFormFieldList
(
self
):
...
@@ -781,8 +829,8 @@ class ERP5Form(Base, ZMIForm, ZopePageTemplate):
...
@@ -781,8 +829,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
=
[]
...
@@ -1062,7 +1110,17 @@ class ERP5Form(Base, ZMIForm, ZopePageTemplate):
...
@@ -1062,7 +1110,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
)
...
...
product/ERP5Form/dtml/formProxify.dtml
View file @
062f4840
...
@@ -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>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment