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
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
Romain Courteaud
erp5
Commits
c1746228
Commit
c1746228
authored
Dec 12, 2013
by
Arnaud Fontaine
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Get rid of Business Template format version 0 as it's been deprecated for a while.
parent
394054e6
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
55 additions
and
238 deletions
+55
-238
product/ERP5/Document/BusinessTemplate.py
product/ERP5/Document/BusinessTemplate.py
+45
-225
product/ERP5/Tool/TemplateTool.py
product/ERP5/Tool/TemplateTool.py
+1
-6
product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/BusinessTemplate_getDiffObjectList.xml
...al_skins/erp5_core/BusinessTemplate_getDiffObjectList.xml
+0
-4
product/ERP5/bootstrap/erp5_core/bt/change_log
product/ERP5/bootstrap/erp5_core/bt/change_log
+3
-0
product/ERP5/bootstrap/erp5_core/bt/revision
product/ERP5/bootstrap/erp5_core/bt/revision
+1
-1
product/ERP5/bootstrap/erp5_property_sheets/PropertySheetTemplateItem/portal_property_sheets/BusinessTemplate/template_format_version_property.xml
...ets/BusinessTemplate/template_format_version_property.xml
+1
-1
product/ERP5/bootstrap/erp5_property_sheets/bt/change_log
product/ERP5/bootstrap/erp5_property_sheets/bt/change_log
+3
-0
product/ERP5/bootstrap/erp5_property_sheets/bt/revision
product/ERP5/bootstrap/erp5_property_sheets/bt/revision
+1
-1
No files found.
product/ERP5/Document/BusinessTemplate.py
View file @
c1746228
...
@@ -472,9 +472,8 @@ class BaseTemplateItem(Implicit, Persistent):
...
@@ -472,9 +472,8 @@ class BaseTemplateItem(Implicit, Persistent):
XXX: -12 used here is -len('TemplateItem')
XXX: -12 used here is -len('TemplateItem')
"""
"""
modified_object_list
=
{}
modified_object_list
=
{}
if
context
.
getTemplateFormatVersion
()
==
1
:
if
1
:
new_keys
=
self
.
_objects
.
keys
()
for
path
in
self
.
_objects
:
for
path
in
new_keys
:
if
installed_item
.
_objects
.
has_key
(
path
):
if
installed_item
.
_objects
.
has_key
(
path
):
# compare objects to see it there are changes
# compare objects to see it there are changes
new_obj_xml
=
self
.
generateXml
(
path
=
path
)
new_obj_xml
=
self
.
generateXml
(
path
=
path
)
...
@@ -487,7 +486,7 @@ class BaseTemplateItem(Implicit, Persistent):
...
@@ -487,7 +486,7 @@ class BaseTemplateItem(Implicit, Persistent):
# list removed objects
# list removed objects
old_keys
=
installed_item
.
_objects
.
keys
()
old_keys
=
installed_item
.
_objects
.
keys
()
for
path
in
old_keys
:
for
path
in
old_keys
:
if
path
not
in
new_key
s
:
if
path
not
in
self
.
_object
s
:
modified_object_list
.
update
({
path
:
[
'Removed'
,
self
.
__class__
.
__name__
[:
-
12
]]})
modified_object_list
.
update
({
path
:
[
'Removed'
,
self
.
__class__
.
__name__
[:
-
12
]]})
return
modified_object_list
return
modified_object_list
...
@@ -818,7 +817,7 @@ class ObjectTemplateItem(BaseTemplateItem):
...
@@ -818,7 +817,7 @@ class ObjectTemplateItem(BaseTemplateItem):
def
preinstall
(
self
,
context
,
installed_item
,
**
kw
):
def
preinstall
(
self
,
context
,
installed_item
,
**
kw
):
modified_object_list
=
{}
modified_object_list
=
{}
if
context
.
getTemplateFormatVersion
()
==
1
:
if
1
:
upgrade_list
=
[]
upgrade_list
=
[]
type_name
=
self
.
__class__
.
__name__
.
split
(
'TemplateItem'
)[
-
2
]
type_name
=
self
.
__class__
.
__name__
.
split
(
'TemplateItem'
)[
-
2
]
for
path
,
obj
in
self
.
_objects
.
iteritems
():
for
path
,
obj
in
self
.
_objects
.
iteritems
():
...
@@ -1000,7 +999,7 @@ class ObjectTemplateItem(BaseTemplateItem):
...
@@ -1000,7 +999,7 @@ class ObjectTemplateItem(BaseTemplateItem):
self.beforeInstall()
self.beforeInstall()
update_dict = kw.get('
object_to_update
')
update_dict = kw.get('
object_to_update
')
force = kw.get('
force
')
force = kw.get('
force
')
if
context.getTemplateFormatVersion() ==
1:
if 1:
def recurse(hook, document, prefix=''):
def recurse(hook, document, prefix=''):
my_prefix = '
%
s
/%
s
' % (prefix, document.id)
my_prefix = '
%
s
/%
s
' % (prefix, document.id)
if (hook(document, my_prefix)):
if (hook(document, my_prefix)):
...
@@ -1326,27 +1325,7 @@ class ObjectTemplateItem(BaseTemplateItem):
...
@@ -1326,27 +1325,7 @@ class ObjectTemplateItem(BaseTemplateItem):
self
.
_backupObject
(
action
,
trashbin
,
container_path_list
,
self
.
_backupObject
(
action
,
trashbin
,
container_path_list
,
document_id
)
document_id
)
parent
.
manage_delObjects
([
document_id
])
parent
.
manage_delObjects
([
document_id
])
else
:
# for old business template format
BaseTemplateItem
.
install
(
self
,
context
,
trashbin
,
**
kw
)
portal
=
context
.
getPortalObject
()
for
relative_url
in
self
.
_archive
.
keys
():
obj
=
self
.
_archive
[
relative_url
]
container_path
=
relative_url
.
split
(
'/'
)[
0
:
-
1
]
object_id
=
relative_url
.
split
(
'/'
)[
-
1
]
container
=
portal
.
unrestrictedTraverse
(
container_path
)
container_ids
=
container
.
objectIds
()
if
object_id
in
container_ids
:
# Object already exists
self
.
_backupObject
(
'backup'
,
trashbin
,
container_path
,
object_id
)
container
.
manage_delObjects
([
object_id
])
# Set a hard link
obj
=
obj
.
_getCopy
(
container
)
container
.
_setObject
(
object_id
,
obj
)
obj
=
container
.
_getOb
(
object_id
)
obj
.
manage_afterClone
(
obj
)
obj
.
wl_clearLocks
()
if
obj
.
meta_type
in
(
'Z SQL Method'
,):
fixZSQLMethod
(
portal
,
obj
)
self
.
afterInstall
()
self
.
afterInstall
()
def
uninstall
(
self
,
context
,
**
kw
):
def
uninstall
(
self
,
context
,
**
kw
):
...
@@ -1721,11 +1700,8 @@ class SkinTemplateItem(ObjectTemplateItem):
...
@@ -1721,11 +1700,8 @@ class SkinTemplateItem(ObjectTemplateItem):
skin_tool
=
p
.
portal_skins
skin_tool
=
p
.
portal_skins
for
relative_url
in
self
.
_objects
.
keys
():
for
relative_url
in
self
.
_objects
.
keys
():
# Do not register skin which were explicitely ask not to be installed
# Do not register skin which were explicitely ask not to be installed
if
context
.
getTemplateFormatVersion
()
==
1
:
if
not
force
and
update_dict
.
get
(
relative_url
)
==
'nothing'
:
if
update_dict
.
has_key
(
relative_url
)
or
force
:
continue
if
not
force
:
if
update_dict
[
relative_url
]
==
'nothing'
:
continue
folder
=
self
.
unrestrictedResolveValue
(
p
,
relative_url
)
folder
=
self
.
unrestrictedResolveValue
(
p
,
relative_url
)
for
obj
in
folder
.
objectValues
(
spec
=
(
'Z SQL Method'
,)):
for
obj
in
folder
.
objectValues
(
spec
=
(
'Z SQL Method'
,)):
fixZSQLMethod
(
p
,
obj
)
fixZSQLMethod
(
p
,
obj
)
...
@@ -1859,9 +1835,8 @@ class RegisteredSkinSelectionTemplateItem(BaseTemplateItem):
...
@@ -1859,9 +1835,8 @@ class RegisteredSkinSelectionTemplateItem(BaseTemplateItem):
def
preinstall
(
self
,
context
,
installed_item
,
**
kw
):
def
preinstall
(
self
,
context
,
installed_item
,
**
kw
):
modified_object_list
=
{}
modified_object_list
=
{}
if
context
.
getTemplateFormatVersion
()
==
1
:
if
1
:
new_keys
=
self
.
_objects
.
keys
()
for
path
in
self
.
_objects
:
for
path
in
new_keys
:
if
installed_item
.
_objects
.
has_key
(
path
):
if
installed_item
.
_objects
.
has_key
(
path
):
# compare object to see it there is changes
# compare object to see it there is changes
new_object
=
self
.
_objects
[
path
]
new_object
=
self
.
_objects
[
path
]
...
@@ -1873,7 +1848,7 @@ class RegisteredSkinSelectionTemplateItem(BaseTemplateItem):
...
@@ -1873,7 +1848,7 @@ class RegisteredSkinSelectionTemplateItem(BaseTemplateItem):
# get removed object
# get removed object
old_keys
=
installed_item
.
_objects
.
keys
()
old_keys
=
installed_item
.
_objects
.
keys
()
for
path
in
old_keys
:
for
path
in
old_keys
:
if
path
not
in
new_key
s
:
if
path
not
in
self
.
_object
s
:
modified_object_list
.
update
({
path
:
[
'Removed'
,
self
.
__class__
.
__name__
[:
-
12
]]})
modified_object_list
.
update
({
path
:
[
'Removed'
,
self
.
__class__
.
__name__
[:
-
12
]]})
return
modified_object_list
return
modified_object_list
...
@@ -1962,9 +1937,6 @@ class RegisteredVersionPrioritySelectionTemplateItem(BaseTemplateItem):
...
@@ -1962,9 +1937,6 @@ class RegisteredVersionPrioritySelectionTemplateItem(BaseTemplateItem):
for
version
,
priority
in
registered_tuple_list
))
for
version
,
priority
in
registered_tuple_list
))
def
preinstall
(
self
,
context
,
installed_item
,
**
kw
):
def
preinstall
(
self
,
context
,
installed_item
,
**
kw
):
if
context
.
getTemplateFormatVersion
()
!=
1
:
return
{}
modified_object_list
=
{}
modified_object_list
=
{}
class_name_prefix
=
self
.
__class__
.
__name__
[:
-
12
]
class_name_prefix
=
self
.
__class__
.
__name__
[:
-
12
]
for
path
,
new_object
in
self
.
_objects
.
iteritems
():
for
path
,
new_object
in
self
.
_objects
.
iteritems
():
...
@@ -2050,7 +2022,7 @@ class WorkflowTemplateItem(ObjectTemplateItem):
...
@@ -2050,7 +2022,7 @@ class WorkflowTemplateItem(ObjectTemplateItem):
return
modified_workflow_dict
return
modified_workflow_dict
def
install
(
self
,
context
,
trashbin
,
**
kw
):
def
install
(
self
,
context
,
trashbin
,
**
kw
):
if
context
.
getTemplateFormatVersion
()
==
1
:
if
1
:
portal
=
context
.
getPortalObject
()
portal
=
context
.
getPortalObject
()
update_dict
=
kw
.
get
(
'object_to_update'
)
update_dict
=
kw
.
get
(
'object_to_update'
)
force
=
kw
.
get
(
'force'
)
force
=
kw
.
get
(
'force'
)
...
@@ -2084,8 +2056,6 @@ class WorkflowTemplateItem(ObjectTemplateItem):
...
@@ -2084,8 +2056,6 @@ class WorkflowTemplateItem(ObjectTemplateItem):
obj
=
container
.
_getOb
(
object_id
)
obj
=
container
.
_getOb
(
object_id
)
obj
.
manage_afterClone
(
obj
)
obj
.
manage_afterClone
(
obj
)
obj
.
wl_clearLocks
()
obj
.
wl_clearLocks
()
else
:
ObjectTemplateItem
.
install
(
self
,
context
,
trashbin
,
**
kw
)
def
uninstall
(
self
,
context
,
**
kw
):
def
uninstall
(
self
,
context
,
**
kw
):
object_path
=
kw
.
get
(
'object_path'
,
None
)
object_path
=
kw
.
get
(
'object_path'
,
None
)
...
@@ -2174,17 +2144,12 @@ class PortalTypeTemplateItem(ObjectTemplateItem):
...
@@ -2174,17 +2144,12 @@ class PortalTypeTemplateItem(ObjectTemplateItem):
# best solution, by default it is 'default_workflow', which is
# best solution, by default it is 'default_workflow', which is
# not very usefull
# not very usefull
default_chain
=
''
default_chain
=
''
if
context
.
getTemplateFormatVersion
()
==
1
:
for
path
,
obj
in
self
.
_objects
.
iteritems
():
object_list
=
self
.
_objects
else
:
object_list
=
self
.
_archive
for
path
in
object_list
.
keys
():
if
update_dict
.
has_key
(
path
)
or
force
:
if
update_dict
.
has_key
(
path
)
or
force
:
if
not
force
:
if
not
force
:
action
=
update_dict
[
path
]
action
=
update_dict
[
path
]
if
action
==
'nothing'
:
if
action
==
'nothing'
:
continue
continue
obj
=
object_list
[
path
]
portal_type
=
obj
.
id
portal_type
=
obj
.
id
if
self
.
_workflow_chain_archive
.
has_key
(
portal_type
):
if
self
.
_workflow_chain_archive
.
has_key
(
portal_type
):
chain_dict
[
'chain_%s'
%
portal_type
]
=
\
chain_dict
[
'chain_%s'
%
portal_type
]
=
\
...
@@ -2394,8 +2359,7 @@ class PortalTypeWorkflowChainTemplateItem(BaseTemplateItem):
...
@@ -2394,8 +2359,7 @@ class PortalTypeWorkflowChainTemplateItem(BaseTemplateItem):
def
preinstall
(
self
,
context
,
installed_item
,
**
kw
):
def
preinstall
(
self
,
context
,
installed_item
,
**
kw
):
modified_object_list
=
{}
modified_object_list
=
{}
if
context
.
getTemplateFormatVersion
()
==
1
:
if
1
:
new_key_list
=
self
.
_objects
.
keys
()
new_dict
=
PersistentMapping
()
new_dict
=
PersistentMapping
()
# Fix key from installed bt if necessary
# Fix key from installed bt if necessary
for
key
,
value
in
installed_item
.
_objects
.
iteritems
():
for
key
,
value
in
installed_item
.
_objects
.
iteritems
():
...
@@ -2404,7 +2368,7 @@ class PortalTypeWorkflowChainTemplateItem(BaseTemplateItem):
...
@@ -2404,7 +2368,7 @@ class PortalTypeWorkflowChainTemplateItem(BaseTemplateItem):
new_dict
[
key
]
=
value
new_dict
[
key
]
=
value
if
new_dict
:
if
new_dict
:
installed_item
.
_objects
=
new_dict
installed_item
.
_objects
=
new_dict
for
path
in
new_key_list
:
for
path
in
self
.
_objects
:
if
path
in
installed_item
.
_objects
:
if
path
in
installed_item
.
_objects
:
# compare object to see it there is changes
# compare object to see it there is changes
new_object
=
self
.
_objects
[
path
]
new_object
=
self
.
_objects
[
path
]
...
@@ -2421,7 +2385,7 @@ class PortalTypeWorkflowChainTemplateItem(BaseTemplateItem):
...
@@ -2421,7 +2385,7 @@ class PortalTypeWorkflowChainTemplateItem(BaseTemplateItem):
modified_object_list
.
update
({
path
:
[
'New'
,
self
.
getTemplateTypeName
()]})
modified_object_list
.
update
({
path
:
[
'New'
,
self
.
getTemplateTypeName
()]})
# get removed object
# get removed object
for
path
in
installed_item
.
_objects
:
for
path
in
installed_item
.
_objects
:
if
path
not
in
new_key_list
:
if
path
not
in
self
.
_objects
:
modified_object_list
.
update
({
path
:
[
'Removed'
,
self
.
getTemplateTypeName
()]})
modified_object_list
.
update
({
path
:
[
'Removed'
,
self
.
getTemplateTypeName
()]})
return
modified_object_list
return
modified_object_list
...
@@ -2501,8 +2465,7 @@ class PortalTypeAllowedContentTypeTemplateItem(BaseTemplateItem):
...
@@ -2501,8 +2465,7 @@ class PortalTypeAllowedContentTypeTemplateItem(BaseTemplateItem):
def
preinstall
(
self
,
context
,
installed_item
,
**
kw
):
def
preinstall
(
self
,
context
,
installed_item
,
**
kw
):
modified_object_list
=
{}
modified_object_list
=
{}
if
context
.
getTemplateFormatVersion
()
==
1
:
if
1
:
new_key_list
=
self
.
_objects
.
keys
()
new_dict
=
PersistentMapping
()
new_dict
=
PersistentMapping
()
# fix key if necessary in installed bt for diff
# fix key if necessary in installed bt for diff
for
key
,
value
in
installed_item
.
_objects
.
iteritems
():
for
key
,
value
in
installed_item
.
_objects
.
iteritems
():
...
@@ -2511,7 +2474,7 @@ class PortalTypeAllowedContentTypeTemplateItem(BaseTemplateItem):
...
@@ -2511,7 +2474,7 @@ class PortalTypeAllowedContentTypeTemplateItem(BaseTemplateItem):
new_dict
[
key
]
=
value
new_dict
[
key
]
=
value
if
new_dict
:
if
new_dict
:
installed_item
.
_objects
=
new_dict
installed_item
.
_objects
=
new_dict
for
path
in
new_key_list
:
for
path
in
self
.
_objects
:
if
path
in
installed_item
.
_objects
:
if
path
in
installed_item
.
_objects
:
# compare object to see it there is changes
# compare object to see it there is changes
new_object
=
self
.
_objects
[
path
]
new_object
=
self
.
_objects
[
path
]
...
@@ -2524,7 +2487,7 @@ class PortalTypeAllowedContentTypeTemplateItem(BaseTemplateItem):
...
@@ -2524,7 +2487,7 @@ class PortalTypeAllowedContentTypeTemplateItem(BaseTemplateItem):
modified_object_list
.
update
({
path
:
[
'New'
,
self
.
getTemplateTypeName
()]})
modified_object_list
.
update
({
path
:
[
'New'
,
self
.
getTemplateTypeName
()]})
# get removed object
# get removed object
for
path
in
installed_item
.
_objects
:
for
path
in
installed_item
.
_objects
:
if
path
not
in
new_key_list
:
if
path
not
in
self
.
_objects
:
modified_object_list
.
update
({
path
:
[
'Removed'
,
self
.
getTemplateTypeName
()]})
modified_object_list
.
update
({
path
:
[
'Removed'
,
self
.
getTemplateTypeName
()]})
return
modified_object_list
return
modified_object_list
...
@@ -2756,28 +2719,17 @@ class CatalogMethodTemplateItem(ObjectTemplateItem):
...
@@ -2756,28 +2719,17 @@ class CatalogMethodTemplateItem(ObjectTemplateItem):
update_dict
=
kw
.
get
(
'object_to_update'
)
update_dict
=
kw
.
get
(
'object_to_update'
)
force
=
kw
.
get
(
'force'
)
force
=
kw
.
get
(
'force'
)
values
=
[]
values
=
[]
new_bt_format
=
context
.
getTemplateFormatVersion
()
if
force
:
# get all objects
if
force
:
# get all objects
if
new_bt_format
:
values
=
self
.
_objects
.
values
()
values
=
self
.
_objects
.
values
()
else
:
values
=
self
.
_archive
.
values
()
else
:
# get only selected object
else
:
# get only selected object
if
new_bt_format
==
1
:
for
key
,
value
in
self
.
_objects
.
iteritems
():
keys
=
self
.
_objects
.
keys
()
else
:
keys
=
self
.
_archive
.
keys
()
for
key
in
keys
:
if
update_dict
.
has_key
(
key
)
or
force
:
if
update_dict
.
has_key
(
key
)
or
force
:
if
not
force
:
if
not
force
:
action
=
update_dict
[
key
]
action
=
update_dict
[
key
]
if
action
==
'nothing'
:
if
action
==
'nothing'
:
continue
continue
if
new_bt_format
:
values
.
append
(
value
)
values
.
append
(
self
.
_objects
[
key
])
else
:
values
.
append
(
self
.
_archive
[
key
])
for
obj
in
values
:
for
obj
in
values
:
method_id
=
obj
.
id
method_id
=
obj
.
id
...
@@ -2797,14 +2749,12 @@ class CatalogMethodTemplateItem(ObjectTemplateItem):
...
@@ -2797,14 +2749,12 @@ class CatalogMethodTemplateItem(ObjectTemplateItem):
# Restore filter
# Restore filter
if
self
.
_is_filtered_archive
.
get
(
method_id
,
0
):
if
self
.
_is_filtered_archive
.
get
(
method_id
,
0
):
expression
=
self
.
_filter_expression_archive
[
method_id
]
expression
=
self
.
_filter_expression_archive
[
method_id
]
if
context
.
getTemplateFormatVersion
()
==
1
:
if
1
:
if
expression
and
expression
.
strip
():
if
expression
and
expression
.
strip
():
# only compile non-empty expressions
# only compile non-empty expressions
expr_instance
=
Expression
(
expression
)
expr_instance
=
Expression
(
expression
)
else
:
else
:
expr_instance
=
None
expr_instance
=
None
else
:
expr_instance
=
self
.
_filter_expression_instance_archive
[
method_id
]
catalog
.
filter_dict
[
method_id
]
=
PersistentMapping
()
catalog
.
filter_dict
[
method_id
]
=
PersistentMapping
()
catalog
.
filter_dict
[
method_id
][
'filtered'
]
=
1
catalog
.
filter_dict
[
method_id
][
'filtered'
]
=
1
catalog
.
filter_dict
[
method_id
][
'expression'
]
=
expression
catalog
.
filter_dict
[
method_id
][
'expression'
]
=
expression
...
@@ -2860,16 +2810,10 @@ class CatalogMethodTemplateItem(ObjectTemplateItem):
...
@@ -2860,16 +2810,10 @@ class CatalogMethodTemplateItem(ObjectTemplateItem):
object_path
=
kw
.
get
(
'object_path'
,
None
)
object_path
=
kw
.
get
(
'object_path'
,
None
)
# get required values
# get required values
if
object_path
is
None
:
if
object_path
is
None
:
if
context
.
getTemplateFormatVersion
()
==
1
:
values
=
self
.
_objects
.
values
()
values
=
self
.
_objects
.
values
()
else
:
values
=
self
.
_archive
.
values
()
else
:
else
:
try
:
try
:
if
context
.
getTemplateFormatVersion
()
==
1
:
value
=
self
.
_objects
[
object_path
]
value
=
self
.
_objects
[
object_path
]
else
:
value
=
self
.
_archive
[
object_path
]
except
KeyError
:
except
KeyError
:
value
=
None
value
=
None
if
value
is
not
None
:
if
value
is
not
None
:
...
@@ -3017,7 +2961,7 @@ class ActionTemplateItem(ObjectTemplateItem):
...
@@ -3017,7 +2961,7 @@ class ActionTemplateItem(ObjectTemplateItem):
def
install
(
self
,
context
,
trashbin
,
**
kw
):
def
install
(
self
,
context
,
trashbin
,
**
kw
):
update_dict
=
kw
.
get
(
'object_to_update'
)
update_dict
=
kw
.
get
(
'object_to_update'
)
force
=
kw
.
get
(
'force'
)
force
=
kw
.
get
(
'force'
)
if
context
.
getTemplateFormatVersion
()
==
1
:
if
1
:
portal_type_dict
=
{}
portal_type_dict
=
{}
p
=
context
.
getPortalObject
()
p
=
context
.
getPortalObject
()
for
id
in
self
.
_objects
.
keys
():
for
id
in
self
.
_objects
.
keys
():
...
@@ -3088,39 +3032,6 @@ class ActionTemplateItem(ObjectTemplateItem):
...
@@ -3088,39 +3032,6 @@ class ActionTemplateItem(ObjectTemplateItem):
for
name
,
obj
in
action_dict
.
iteritems
():
for
name
,
obj
in
action_dict
.
iteritems
():
container
.
_importOldAction
(
obj
).
aq_base
container
.
_importOldAction
(
obj
).
aq_base
else
:
BaseTemplateItem
.
install
(
self
,
context
,
trashbin
,
**
kw
)
p
=
context
.
getPortalObject
()
for
id
in
self
.
_archive
.
keys
():
action
=
self
.
_archive
[
id
]
relative_url
,
key
,
value
=
self
.
_splitPath
(
id
)
obj
=
p
.
unrestrictedTraverse
(
relative_url
)
for
ai
in
obj
.
listActions
():
if
getattr
(
ai
,
key
)
==
value
:
raise
TemplateConflictError
,
'the portal type %s already has the action %s'
%
(
obj
.
id
,
value
)
action_text
=
action
.
action
if
isinstance
(
action_text
,
Expression
):
action_text
=
action_text
.
text
obj
.
addAction
(
id
=
action
.
id
,
name
=
action
.
title
,
action
=
action_text
,
condition
=
action
.
getCondition
()
,
permission
=
action
.
permissions
,
category
=
action
.
category
,
visible
=
action
.
visible
,
icon
=
getattr
(
action
,
'icon'
,
None
)
\
and
action
.
icon
.
text
or
''
)
new_priority
=
action
.
priority
action_list
=
obj
.
listActions
()
move_down_list
=
[]
for
index
in
range
(
len
(
action_list
)):
action
=
action_list
[
index
]
if
action
.
priority
>
new_priority
:
move_down_list
.
append
(
str
(
index
))
obj
.
moveDownActions
(
selections
=
tuple
(
move_down_list
))
def
uninstall
(
self
,
context
,
**
kw
):
def
uninstall
(
self
,
context
,
**
kw
):
p
=
context
.
getPortalObject
()
p
=
context
.
getPortalObject
()
object_path
=
kw
.
get
(
"object_path"
,
None
)
object_path
=
kw
.
get
(
"object_path"
,
None
)
...
@@ -3337,7 +3248,7 @@ class SitePropertyTemplateItem(BaseTemplateItem):
...
@@ -3337,7 +3248,7 @@ class SitePropertyTemplateItem(BaseTemplateItem):
def
install
(
self
,
context
,
trashbin
,
**
kw
):
def
install
(
self
,
context
,
trashbin
,
**
kw
):
update_dict
=
kw
.
get
(
'object_to_update'
)
update_dict
=
kw
.
get
(
'object_to_update'
)
force
=
kw
.
get
(
'force'
)
force
=
kw
.
get
(
'force'
)
if
context
.
getTemplateFormatVersion
()
==
1
:
if
1
:
p
=
context
.
getPortalObject
()
p
=
context
.
getPortalObject
()
for
path
in
self
.
_objects
.
keys
():
for
path
in
self
.
_objects
.
keys
():
if
update_dict
.
has_key
(
path
)
or
force
:
if
update_dict
.
has_key
(
path
)
or
force
:
...
@@ -3355,19 +3266,6 @@ class SitePropertyTemplateItem(BaseTemplateItem):
...
@@ -3355,19 +3266,6 @@ class SitePropertyTemplateItem(BaseTemplateItem):
p
.
_updateProperty
(
id
,
property
)
p
.
_updateProperty
(
id
,
property
)
else
:
else
:
p
.
_setProperty
(
id
,
property
,
type
=
prop_type
)
p
.
_setProperty
(
id
,
property
,
type
=
prop_type
)
else
:
BaseTemplateItem
.
install
(
self
,
context
,
trashbin
,
**
kw
)
p
=
context
.
getPortalObject
()
for
id
,
property
in
self
.
_archive
.
keys
():
property
=
self
.
_archive
[
id
]
if
p
.
hasProperty
(
id
):
if
p
.
getPropertyType
(
id
)
!=
property
[
'type'
]:
p
.
_delProperty
(
id
)
p
.
_setProperty
(
id
,
property
[
'value'
],
type
=
property
[
'type'
])
else
:
p
.
_updateProperty
(
id
,
property
[
'value'
])
else
:
p
.
_setProperty
(
id
,
property
[
'value'
],
type
=
property
[
'type'
])
def
uninstall
(
self
,
context
,
**
kw
):
def
uninstall
(
self
,
context
,
**
kw
):
p
=
context
.
getPortalObject
()
p
=
context
.
getPortalObject
()
...
@@ -3483,14 +3381,9 @@ class ModuleTemplateItem(BaseTemplateItem):
...
@@ -3483,14 +3381,9 @@ class ModuleTemplateItem(BaseTemplateItem):
portal
=
context
.
getPortalObject
()
portal
=
context
.
getPortalObject
()
update_dict
=
kw
.
get
(
'object_to_update'
)
update_dict
=
kw
.
get
(
'object_to_update'
)
force
=
kw
.
get
(
'force'
)
force
=
kw
.
get
(
'force'
)
if
context
.
getTemplateFormatVersion
()
==
1
:
items
=
self
.
_objects
else
:
items
=
self
.
_archive
valid_permissions
=
dict
.
fromkeys
([
x
[
0
]
for
x
in
valid_permissions
=
dict
.
fromkeys
([
x
[
0
]
for
x
in
context
.
ac_inherited_permissions
(
all
=
1
)])
context
.
ac_inherited_permissions
(
all
=
1
)])
for
path
,
mapping
in
item
s
.
iteritems
():
for
path
,
mapping
in
self
.
_object
s
.
iteritems
():
if
update_dict
.
has_key
(
path
)
or
force
:
if
update_dict
.
has_key
(
path
)
or
force
:
if
not
force
:
if
not
force
:
action
=
update_dict
[
path
]
action
=
update_dict
[
path
]
...
@@ -3598,8 +3491,7 @@ class FilesystemDocumentTemplateItem(BaseTemplateItem):
...
@@ -3598,8 +3491,7 @@ class FilesystemDocumentTemplateItem(BaseTemplateItem):
def
preinstall
(
self
,
context
,
installed_item
,
**
kw
):
def
preinstall
(
self
,
context
,
installed_item
,
**
kw
):
modified_object_list
=
{}
modified_object_list
=
{}
if
context
.
getTemplateFormatVersion
()
==
1
:
if
1
:
new_keys
=
self
.
_objects
.
keys
()
# fix key if necessary in installed bt for diff
# fix key if necessary in installed bt for diff
extra_prefix
=
self
.
__class__
.
__name__
+
'/'
extra_prefix
=
self
.
__class__
.
__name__
+
'/'
for
key
in
installed_item
.
_objects
.
keys
():
for
key
in
installed_item
.
_objects
.
keys
():
...
@@ -3607,7 +3499,7 @@ class FilesystemDocumentTemplateItem(BaseTemplateItem):
...
@@ -3607,7 +3499,7 @@ class FilesystemDocumentTemplateItem(BaseTemplateItem):
new_key
=
key
[
len
(
extra_prefix
):]
new_key
=
key
[
len
(
extra_prefix
):]
installed_item
.
_objects
[
new_key
]
=
installed_item
.
_objects
[
key
]
installed_item
.
_objects
[
new_key
]
=
installed_item
.
_objects
[
key
]
del
installed_item
.
_objects
[
key
]
del
installed_item
.
_objects
[
key
]
for
path
in
new_key
s
:
for
path
in
self
.
_object
s
:
if
installed_item
.
_objects
.
has_key
(
path
):
if
installed_item
.
_objects
.
has_key
(
path
):
# compare object to see if there is changes
# compare object to see if there is changes
new_obj_code
=
self
.
_objects
[
path
]
new_obj_code
=
self
.
_objects
[
path
]
...
@@ -3623,7 +3515,7 @@ class FilesystemDocumentTemplateItem(BaseTemplateItem):
...
@@ -3623,7 +3515,7 @@ class FilesystemDocumentTemplateItem(BaseTemplateItem):
# get removed object
# get removed object
old_keys
=
installed_item
.
_objects
.
keys
()
old_keys
=
installed_item
.
_objects
.
keys
()
for
path
in
old_keys
:
for
path
in
old_keys
:
if
path
not
in
new_key
s
:
if
path
not
in
self
.
_object
s
:
# Note: Magical way to have unique paths
# Note: Magical way to have unique paths
modified_object_list
.
update
(
modified_object_list
.
update
(
{
self
.
_getKey
(
path
)
:
[
'Removed'
,
self
.
__class__
.
__name__
[:
-
12
]]})
{
self
.
_getKey
(
path
)
:
[
'Removed'
,
self
.
__class__
.
__name__
[:
-
12
]]})
...
@@ -3647,7 +3539,7 @@ class FilesystemDocumentTemplateItem(BaseTemplateItem):
...
@@ -3647,7 +3539,7 @@ class FilesystemDocumentTemplateItem(BaseTemplateItem):
def
install
(
self
,
context
,
trashbin
,
**
kw
):
def
install
(
self
,
context
,
trashbin
,
**
kw
):
update_dict
=
kw
.
get
(
'object_to_update'
)
update_dict
=
kw
.
get
(
'object_to_update'
)
force
=
kw
.
get
(
'force'
)
force
=
kw
.
get
(
'force'
)
if
context
.
getTemplateFormatVersion
()
==
1
:
if
1
:
need_reset
=
isinstance
(
self
,
FilesystemDocumentTemplateItem
)
need_reset
=
isinstance
(
self
,
FilesystemDocumentTemplateItem
)
for
key
in
self
.
_objects
.
keys
():
for
key
in
self
.
_objects
.
keys
():
# to achieve non data migration fresh installation parameters
# to achieve non data migration fresh installation parameters
...
@@ -3676,14 +3568,6 @@ class FilesystemDocumentTemplateItem(BaseTemplateItem):
...
@@ -3676,14 +3568,6 @@ class FilesystemDocumentTemplateItem(BaseTemplateItem):
self
.
_resetDynamicModules
()
self
.
_resetDynamicModules
()
need_reset
=
False
need_reset
=
False
self
.
local_file_importer_name
(
name
)
self
.
local_file_importer_name
(
name
)
else
:
BaseTemplateItem
.
install
(
self
,
context
,
trashbin
,
**
kw
)
for
key
in
self
.
_archive
.
keys
():
text
=
self
.
_archive
[
key
]
# This raises an exception if the file exists.
self
.
local_file_writer_name
(
key
,
text
,
create
=
1
)
if
self
.
local_file_importer_name
is
not
None
:
self
.
local_file_importer_name
(
key
)
def
remove
(
self
,
context
,
**
kw
):
def
remove
(
self
,
context
,
**
kw
):
"""Conversion of magically uniqued paths to real ones"""
"""Conversion of magically uniqued paths to real ones"""
...
@@ -3939,19 +3823,7 @@ class FilesystemToZodbTemplateItem(FilesystemDocumentTemplateItem,
...
@@ -3939,19 +3823,7 @@ class FilesystemToZodbTemplateItem(FilesystemDocumentTemplateItem,
getattr
(
context
.
getPortalObject
(),
self
.
_tool_id
,
None
)
is
None
):
getattr
(
context
.
getPortalObject
(),
self
.
_tool_id
,
None
)
is
None
):
return
FilesystemDocumentTemplateItem
.
install
(
self
,
context
,
**
kw
)
return
FilesystemDocumentTemplateItem
.
install
(
self
,
context
,
**
kw
)
# With format 0 of Business Template, the objects are stored in
if
not
self
.
_is_already_migrated
(
self
.
_objects
.
keys
()):
# '_archive' whereas they are stored in '_objects' with format
# version 1
bt_format_version
=
context
.
getTemplateFormatVersion
()
if
bt_format_version
==
0
and
\
not
self
.
_is_already_migrated
(
self
.
_archive
.
keys
()):
self
.
_migrateAllFromFilesystem
(
context
,
self
.
_archive
,
self
.
_objects
,
kw
.
get
(
'object_to_update'
))
elif
bt_format_version
==
1
and
\
not
self
.
_is_already_migrated
(
self
.
_objects
.
keys
()):
self
.
_migrateAllFromFilesystem
(
context
,
self
.
_migrateAllFromFilesystem
(
context
,
self
.
_objects
,
self
.
_objects
,
self
.
_archive
,
self
.
_archive
,
...
@@ -4173,10 +4045,7 @@ class DocumentTemplateItem(FilesystemToZodbTemplateItem):
...
@@ -4173,10 +4045,7 @@ class DocumentTemplateItem(FilesystemToZodbTemplateItem):
automatically as the version must be set manually. This should not be an
automatically as the version must be set manually. This should not be an
issue as there are not so many Documents in bt5...
issue as there are not so many Documents in bt5...
"""
"""
object_list
=
list
(
self
.
_objects
if
context
.
getTemplateFormatVersion
()
==
1
if
self
.
_is_already_migrated
(
self
.
_objects
.
keys
()):
else
self
.
_archive
)
if
self
.
_is_already_migrated
(
object_list
):
ObjectTemplateItem
.
install
(
self
,
context
,
**
kw
)
ObjectTemplateItem
.
install
(
self
,
context
,
**
kw
)
self
.
portal_components
.
reset
(
force
=
True
,
self
.
portal_components
.
reset
(
force
=
True
,
reset_portal_type_at_transaction_boundary
=
True
)
reset_portal_type_at_transaction_boundary
=
True
)
...
@@ -4243,15 +4112,14 @@ class RoleTemplateItem(BaseTemplateItem):
...
@@ -4243,15 +4112,14 @@ class RoleTemplateItem(BaseTemplateItem):
def
preinstall
(
self
,
context
,
installed_item
,
**
kw
):
def
preinstall
(
self
,
context
,
installed_item
,
**
kw
):
modified_object_list
=
{}
modified_object_list
=
{}
if
context
.
getTemplateFormatVersion
()
==
1
:
if
1
:
new_roles
=
self
.
_objects
.
keys
()
# BBB it might be necessary to change the data structure.
# BBB it might be necessary to change the data structure.
obsolete_key
=
self
.
__class__
.
__name__
+
'/role_list'
obsolete_key
=
self
.
__class__
.
__name__
+
'/role_list'
if
obsolete_key
in
installed_item
.
_objects
:
if
obsolete_key
in
installed_item
.
_objects
:
for
role
in
installed_item
.
_objects
[
obsolete_key
]:
for
role
in
installed_item
.
_objects
[
obsolete_key
]:
installed_item
.
_objects
[
role
]
=
1
installed_item
.
_objects
[
role
]
=
1
del
installed_item
.
_objects
[
obsolete_key
]
del
installed_item
.
_objects
[
obsolete_key
]
for
role
in
new_role
s
:
for
role
in
self
.
_object
s
:
if
installed_item
.
_objects
.
has_key
(
role
):
if
installed_item
.
_objects
.
has_key
(
role
):
continue
continue
else
:
# only show new roles
else
:
# only show new roles
...
@@ -4259,17 +4127,14 @@ class RoleTemplateItem(BaseTemplateItem):
...
@@ -4259,17 +4127,14 @@ class RoleTemplateItem(BaseTemplateItem):
# get removed roles
# get removed roles
old_roles
=
installed_item
.
_objects
.
keys
()
old_roles
=
installed_item
.
_objects
.
keys
()
for
role
in
old_roles
:
for
role
in
old_roles
:
if
role
not
in
new_role
s
:
if
role
not
in
self
.
_object
s
:
modified_object_list
.
update
({
role
:
[
'Removed'
,
self
.
__class__
.
__name__
[:
-
12
]]})
modified_object_list
.
update
({
role
:
[
'Removed'
,
self
.
__class__
.
__name__
[:
-
12
]]})
return
modified_object_list
return
modified_object_list
def
install
(
self
,
context
,
trashbin
,
**
kw
):
def
install
(
self
,
context
,
trashbin
,
**
kw
):
p
=
context
.
getPortalObject
()
p
=
context
.
getPortalObject
()
# get roles
# get roles
if
context
.
getTemplateFormatVersion
()
==
1
:
role_set
=
set
(
self
.
_objects
)
role_set
=
set
(
self
.
_objects
)
else
:
role_set
=
set
(
self
.
_archive
)
# set roles in PAS
# set roles in PAS
if
p
.
acl_users
.
meta_type
==
'Pluggable Auth Service'
:
if
p
.
acl_users
.
meta_type
==
'Pluggable Auth Service'
:
role_manager_list
=
p
.
acl_users
.
objectValues
(
'ZODB Role Manager'
)
role_manager_list
=
p
.
acl_users
.
objectValues
(
'ZODB Role Manager'
)
...
@@ -4370,14 +4235,12 @@ class CatalogKeyTemplateItemBase(BaseTemplateItem):
...
@@ -4370,14 +4235,12 @@ class CatalogKeyTemplateItemBase(BaseTemplateItem):
return
return
catalog_key_list
=
list
(
getattr
(
catalog
,
self
.
key_list_attr
,
[]))
catalog_key_list
=
list
(
getattr
(
catalog
,
self
.
key_list_attr
,
[]))
if
context
.
getTemplateFormatVersion
()
==
1
:
if
1
:
if
len
(
self
.
_objects
.
keys
())
==
0
:
# needed because of pop()
if
len
(
self
.
_objects
.
keys
())
==
0
:
# needed because of pop()
return
return
keys
=
[]
keys
=
[]
for
k
in
self
.
_objects
.
values
().
pop
():
# because of list of list
for
k
in
self
.
_objects
.
values
().
pop
():
# because of list of list
keys
.
append
(
k
)
keys
.
append
(
k
)
else
:
keys
=
self
.
_archive
.
keys
()
update_dict
=
kw
.
get
(
'object_to_update'
)
update_dict
=
kw
.
get
(
'object_to_update'
)
force
=
kw
.
get
(
'force'
)
force
=
kw
.
get
(
'force'
)
if
force
or
self
.
_getUpdateDictAction
(
update_dict
)
!=
'nothing'
:
if
force
or
self
.
_getUpdateDictAction
(
update_dict
)
!=
'nothing'
:
...
@@ -4545,9 +4408,8 @@ class MessageTranslationTemplateItem(BaseTemplateItem):
...
@@ -4545,9 +4408,8 @@ class MessageTranslationTemplateItem(BaseTemplateItem):
def
preinstall
(
self
,
context
,
installed_item
,
**
kw
):
def
preinstall
(
self
,
context
,
installed_item
,
**
kw
):
modified_object_list
=
{}
modified_object_list
=
{}
if
context
.
getTemplateFormatVersion
()
==
1
:
if
1
:
new_keys
=
self
.
_objects
.
keys
()
for
path
in
self
.
_objects
:
for
path
in
new_keys
:
if
installed_item
.
_objects
.
has_key
(
path
):
if
installed_item
.
_objects
.
has_key
(
path
):
# compare object to see if there is changes
# compare object to see if there is changes
new_obj_code
=
self
.
_objects
[
path
]
new_obj_code
=
self
.
_objects
[
path
]
...
@@ -4559,7 +4421,7 @@ class MessageTranslationTemplateItem(BaseTemplateItem):
...
@@ -4559,7 +4421,7 @@ class MessageTranslationTemplateItem(BaseTemplateItem):
# get removed object
# get removed object
old_keys
=
installed_item
.
_objects
.
keys
()
old_keys
=
installed_item
.
_objects
.
keys
()
for
path
in
old_keys
:
for
path
in
old_keys
:
if
path
not
in
new_key
s
:
if
path
not
in
self
.
_object
s
:
modified_object_list
.
update
({
path
:
[
'Removed'
,
self
.
__class__
.
__name__
[:
-
12
]]})
modified_object_list
.
update
({
path
:
[
'Removed'
,
self
.
__class__
.
__name__
[:
-
12
]]})
return
modified_object_list
return
modified_object_list
...
@@ -4592,7 +4454,7 @@ class MessageTranslationTemplateItem(BaseTemplateItem):
...
@@ -4592,7 +4454,7 @@ class MessageTranslationTemplateItem(BaseTemplateItem):
localizer
=
context
.
getPortalObject
().
Localizer
localizer
=
context
.
getPortalObject
().
Localizer
update_dict
=
kw
.
get
(
'object_to_update'
,
{})
update_dict
=
kw
.
get
(
'object_to_update'
,
{})
force
=
kw
.
get
(
'force'
)
force
=
kw
.
get
(
'force'
)
if
context
.
getTemplateFormatVersion
()
==
1
:
if
1
:
for
key
in
sorted
(
self
.
_objects
.
keys
()):
for
key
in
sorted
(
self
.
_objects
.
keys
()):
if
update_dict
.
has_key
(
key
)
or
force
:
if
update_dict
.
has_key
(
key
)
or
force
:
if
not
force
:
if
not
force
:
...
@@ -4623,13 +4485,6 @@ class MessageTranslationTemplateItem(BaseTemplateItem):
...
@@ -4623,13 +4485,6 @@ class MessageTranslationTemplateItem(BaseTemplateItem):
if
lang
not
in
localizer
.
get_languages
():
if
lang
not
in
localizer
.
get_languages
():
localizer
.
manage_addLanguage
(
lang
)
localizer
.
manage_addLanguage
(
lang
)
self
.
_importCatalogLanguage
(
localizer
,
catalog
,
lang
,
po
)
self
.
_importCatalogLanguage
(
localizer
,
catalog
,
lang
,
po
)
else
:
BaseTemplateItem
.
install
(
self
,
context
,
trashbin
,
**
kw
)
for
lang
,
catalogs
in
self
.
_archive
.
iteritems
():
if
lang
not
in
localizer
.
get_languages
():
localizer
.
manage_addLanguage
(
lang
)
for
catalog
,
po
in
catalogs
.
items
():
self
.
_importCatalogLanguage
(
catalog
,
lang
,
po
)
def
uninstall
(
self
,
context
,
remove_translations
=
False
,
**
kw
):
def
uninstall
(
self
,
context
,
remove_translations
=
False
,
**
kw
):
if
not
remove_translations
:
if
not
remove_translations
:
...
@@ -4976,18 +4831,6 @@ Business Template is a set of definitions, such as skins, portal types and categ
...
@@ -4976,18 +4831,6 @@ Business Template is a set of definitions, such as skins, portal types and categ
XMLObject
.
__init__
(
self
,
*
args
,
**
kw
)
XMLObject
.
__init__
(
self
,
*
args
,
**
kw
)
self
.
_clean
()
self
.
_clean
()
def
getTemplateFormatVersion
(
self
,
**
kw
):
"""This is a workaround, because template_format_version was not set even for the new format.
"""
if
self
.
hasProperty
(
'template_format_version'
):
self
.
_baseGetTemplateFormatVersion
()
# the attribute _objects in BaseTemplateItem was added in the new format.
if
hasattr
(
self
.
_path_item
,
'_objects'
):
return
1
return
0
security
.
declareProtected
(
Permissions
.
ManagePortal
,
'manage_afterAdd'
)
security
.
declareProtected
(
Permissions
.
ManagePortal
,
'manage_afterAdd'
)
def
manage_afterAdd
(
self
,
item
,
container
):
def
manage_afterAdd
(
self
,
item
,
container
):
"""
"""
...
@@ -5194,7 +5037,7 @@ Business Template is a set of definitions, such as skins, portal types and categ
...
@@ -5194,7 +5037,7 @@ Business Template is a set of definitions, such as skins, portal types and categ
default_catalog
=
self
.
getPortalObject
().
portal_catalog
.
getSQLCatalog
()
default_catalog
=
self
.
getPortalObject
().
portal_catalog
.
getSQLCatalog
()
my_catalog
=
_getCatalogValue
(
self
)
my_catalog
=
_getCatalogValue
(
self
)
if
default_catalog
is
not
None
and
my_catalog
is
not
None
\
if
default_catalog
is
not
None
and
my_catalog
is
not
None
\
and
catalog_method
is
not
None
and
self
.
getTemplateFormatVersion
()
==
1
:
and
catalog_method
is
not
None
:
if
default_catalog
.
getId
()
==
my_catalog
.
getId
():
if
default_catalog
.
getId
()
==
my_catalog
.
getId
():
# It is needed to update the catalog only if the default SQLCatalog is modified.
# It is needed to update the catalog only if the default SQLCatalog is modified.
for
method_id
in
catalog_method
.
_objects
.
keys
():
for
method_id
in
catalog_method
.
_objects
.
keys
():
...
@@ -5223,10 +5066,6 @@ Business Template is a set of definitions, such as skins, portal types and categ
...
@@ -5223,10 +5066,6 @@ Business Template is a set of definitions, such as skins, portal types and categ
installed_bt
=
bt2
installed_bt
=
bt2
else
:
else
:
installed_bt
=
self
.
portal_templates
.
getInstalledBusinessTemplate
(
title
=
bt_title
)
installed_bt
=
self
.
portal_templates
.
getInstalledBusinessTemplate
(
title
=
bt_title
)
if
installed_bt
is
None
:
installed_bt_format
=
0
# that will not check for modification
else
:
installed_bt_format
=
installed_bt
.
getTemplateFormatVersion
()
# if reinstall business template, must compare to object in ZODB
# if reinstall business template, must compare to object in ZODB
# and not to those in the installed Business Template because it is itself.
# and not to those in the installed Business Template because it is itself.
...
@@ -5245,19 +5084,6 @@ Business Template is a set of definitions, such as skins, portal types and categ
...
@@ -5245,19 +5084,6 @@ Business Template is a set of definitions, such as skins, portal types and categ
else
:
else
:
installed_bt
=
self
.
portal_templates
.
_getOb
(
INSTALLED_BT_FOR_DIFF
)
installed_bt
=
self
.
portal_templates
.
_getOb
(
INSTALLED_BT_FOR_DIFF
)
new_bt_format
=
self
.
getTemplateFormatVersion
()
if
installed_bt_format
==
0
and
new_bt_format
==
0
:
# still use old format, so install everything, no choice
return
modified_object_list
elif
installed_bt_format
==
0
and
new_bt_format
==
1
:
# return list of all object in bt
for
item_name
in
self
.
_item_name_list
:
item
=
getattr
(
self
,
item_name
,
None
)
if
item
is
not
None
:
for
path
in
item
.
_objects
.
keys
():
modified_object_list
.
update
({
path
:
[
'New'
,
item
.
__class__
.
__name__
[:
-
12
]]})
return
modified_object_list
for
item_name
in
self
.
_item_name_list
:
for
item_name
in
self
.
_item_name_list
:
new_item
=
getattr
(
self
,
item_name
,
None
)
new_item
=
getattr
(
self
,
item_name
,
None
)
installed_item
=
getattr
(
installed_bt
,
item_name
,
None
)
installed_item
=
getattr
(
installed_bt
,
item_name
,
None
)
...
@@ -5293,20 +5119,14 @@ Business Template is a set of definitions, such as skins, portal types and categ
...
@@ -5293,20 +5119,14 @@ Business Template is a set of definitions, such as skins, portal types and categ
self
.
getTitle
())
self
.
getTitle
())
# When reinstalling, installation state should not change to replaced
# When reinstalling, installation state should not change to replaced
if
installed_bt
not
in
[
None
,
self
]:
if
installed_bt
not
in
[
None
,
self
]:
if
installed_bt
.
getTemplateFormatVersion
()
==
0
:
force
=
1
if
site
.
portal_workflow
.
isTransitionPossible
(
if
site
.
portal_workflow
.
isTransitionPossible
(
installed_bt
,
'replace'
):
installed_bt
,
'replace'
):
installed_bt
.
replace
(
self
)
installed_bt
.
replace
(
self
)
trash_tool
=
getToolByName
(
site
,
'portal_trash'
,
None
)
trash_tool
=
getToolByName
(
site
,
'portal_trash'
,
None
)
if
trash_tool
is
None
and
self
.
getTemplateFormatVersion
()
==
1
:
if
trash_tool
is
None
:
raise
AttributeError
,
'Trash Tool is not installed'
raise
AttributeError
,
'Trash Tool is not installed'
# Check the format of business template, if old, force install
if
self
.
getTemplateFormatVersion
()
==
0
:
force
=
1
if
not
force
:
if
not
force
:
self
.
checkDependencies
()
self
.
checkDependencies
()
...
...
product/ERP5/Tool/TemplateTool.py
View file @
c1746228
...
@@ -307,12 +307,7 @@ class TemplateTool (BaseTool):
...
@@ -307,12 +307,7 @@ class TemplateTool (BaseTool):
file
.
seek
(
0
)
file
.
seek
(
0
)
magic
=
file
.
read
(
5
)
magic
=
file
.
read
(
5
)
if
magic
==
'<?xml'
:
# old version
if
1
:
self
.
_importObjectFromFile
(
path
,
id
=
id
)
bt
=
self
[
id
]
bt
.
id
=
id
# Make sure id is consistent
bt
.
setProperty
(
'template_format_version'
,
0
,
type
=
'int'
)
else
:
# new version
# XXX: should really check for a magic and offer a falback if it
# XXX: should really check for a magic and offer a falback if it
# doens't correspond to anything handled.
# doens't correspond to anything handled.
tar
=
tarfile
.
open
(
path
,
'r:gz'
)
tar
=
tarfile
.
open
(
path
,
'r:gz'
)
...
...
product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/BusinessTemplate_getDiffObjectList.xml
View file @
c1746228
...
@@ -68,16 +68,12 @@ if len(uids) > 2:\n
...
@@ -68,16 +68,12 @@ if len(uids) > 2:\n
bt1 = context.portal_catalog.getObject(uids[0])\n
bt1 = context.portal_catalog.getObject(uids[0])\n
if bt1.getBuildingState() != \'built\':\n
if bt1.getBuildingState() != \'built\':\n
raise TemplateConditionError(\'Business Template must be built to make diff\')\n
raise TemplateConditionError(\'Business Template must be built to make diff\')\n
if (getattr(bt1, \'template_format_version\', 0)) != 1:\n
raise TemplateConditionError(\'Business Template must be in new format\')\n
\n
\n
# check if there is a second bt or if we compare to installed one\n
# check if there is a second bt or if we compare to installed one\n
if len(uids) == 2:\n
if len(uids) == 2:\n
bt2 = context.portal_catalog.getObject(uids[1])\n
bt2 = context.portal_catalog.getObject(uids[1])\n
if bt2.getBuildingState() != \'built\':\n
if bt2.getBuildingState() != \'built\':\n
raise TemplateConditionError(\'Business Template must be built to make diff\')\n
raise TemplateConditionError(\'Business Template must be built to make diff\')\n
if (getattr(bt2, \'template_format_version\', 0)) != 1:\n
raise TemplateConditionError(\'Business Template must be in new format\')\n
else:\n
else:\n
# compare to objects in ZODB\n
# compare to objects in ZODB\n
bt2 = bt1\n
bt2 = bt1\n
...
...
product/ERP5/bootstrap/erp5_core/bt/change_log
View file @
c1746228
2013-12-12 arnaud.fontaine
* Get rid of Business Template format version 0 as it's been deprecated for a while.
2013-11-07 arnaud.fontaine
2013-11-07 arnaud.fontaine
* SelectionTool: Changing storage or memcached settings were not taken into effect until restart.
* SelectionTool: Changing storage or memcached settings were not taken into effect until restart.
...
...
product/ERP5/bootstrap/erp5_core/bt/revision
View file @
c1746228
41144
41145
\ No newline at end of file
\ No newline at end of file
product/ERP5/bootstrap/erp5_property_sheets/PropertySheetTemplateItem/portal_property_sheets/BusinessTemplate/template_format_version_property.xml
View file @
c1746228
...
@@ -49,7 +49,7 @@
...
@@ -49,7 +49,7 @@
</item>
</item>
<item>
<item>
<key>
<string>
property_default
</string>
</key>
<key>
<string>
property_default
</string>
</key>
<value>
<string>
python:
0
</string>
</value>
<value>
<string>
python:
1
</string>
</value>
</item>
</item>
</dictionary>
</dictionary>
</pickle>
</pickle>
...
...
product/ERP5/bootstrap/erp5_property_sheets/bt/change_log
View file @
c1746228
2013-12-12 arnaud.fontaine
* Get rid of Business Template format version 0 as it's been deprecated for a while.
2013-10-17 tatuya
2013-10-17 tatuya
* Arrow: Add {source,destination}_{decision,carrier,section}_administration categories
* Arrow: Add {source,destination}_{decision,carrier,section}_administration categories
...
...
product/ERP5/bootstrap/erp5_property_sheets/bt/revision
View file @
c1746228
69
70
\ No newline at end of file
\ No newline at end of file
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