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
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
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
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Nikola Balog
erp5
Commits
0c378e63
Commit
0c378e63
authored
Apr 18, 2017
by
Ayush Tiwari
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bt5_config: Use value instead of _value in BusinessItem objects
parent
f06117c3
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
20 additions
and
19 deletions
+20
-19
product/ERP5/Document/BusinessManager.py
product/ERP5/Document/BusinessManager.py
+17
-17
product/ERP5/Tool/TemplateTool.py
product/ERP5/Tool/TemplateTool.py
+3
-2
No files found.
product/ERP5/Document/BusinessManager.py
View file @
0c378e63
...
@@ -543,8 +543,8 @@ class BusinessManager(XMLObject):
...
@@ -543,8 +543,8 @@ class BusinessManager(XMLObject):
combined_added_path_item
=
reduce
(
lambda
x
,
y
:
x
+
y
,
path_item_list_add
)
combined_added_path_item
=
reduce
(
lambda
x
,
y
:
x
+
y
,
path_item_list_add
)
combined_subtracted_path_item
=
reduce
(
lambda
x
,
y
:
x
+
y
,
path_item_list_subtract
)
combined_subtracted_path_item
=
reduce
(
lambda
x
,
y
:
x
+
y
,
path_item_list_subtract
)
added_value
=
combined_added_path_item
.
_
value
added_value
=
combined_added_path_item
.
value
subtracted_value
=
combined_subtracted_path_item
.
_
value
subtracted_value
=
combined_subtracted_path_item
.
value
if
added_value
!=
subtracted_value
:
if
added_value
!=
subtracted_value
:
# Append the arithmetically combined path_item objects in the final
# Append the arithmetically combined path_item objects in the final
...
@@ -552,8 +552,8 @@ class BusinessManager(XMLObject):
...
@@ -552,8 +552,8 @@ class BusinessManager(XMLObject):
added_value
,
subtracted_value
=
\
added_value
,
subtracted_value
=
\
self
.
_simplifyValueIntersection
(
added_value
,
subtracted_value
)
self
.
_simplifyValueIntersection
(
added_value
,
subtracted_value
)
combined_added_path_item
.
_
value
=
added_value
combined_added_path_item
.
value
=
added_value
combined_subtracted_path_item
.
_
value
=
subtracted_value
combined_subtracted_path_item
.
value
=
subtracted_value
# Append the path_item to the final reduced path_item_list after
# Append the path_item to the final reduced path_item_list after
# doing required arithmetic on it. Make sure to first append
# doing required arithmetic on it. Make sure to first append
...
@@ -592,7 +592,7 @@ class BusinessManager(XMLObject):
...
@@ -592,7 +592,7 @@ class BusinessManager(XMLObject):
return
added_value
,
subtracted_value
return
added_value
,
subtracted_value
class
BusinessItem
(
Implicit
,
Persistent
):
class
BusinessItem
(
Persistent
):
"""Saves the path and values for objects, properties, etc, the
"""Saves the path and values for objects, properties, etc, the
attributes for a path configuration being:
attributes for a path configuration being:
...
@@ -618,7 +618,7 @@ class BusinessItem(Implicit, Persistent):
...
@@ -618,7 +618,7 @@ class BusinessItem(Implicit, Persistent):
self
.
_path
=
path
self
.
_path
=
path
self
.
_sign
=
int
(
sign
)
self
.
_sign
=
int
(
sign
)
self
.
_layer
=
int
(
layer
)
self
.
_layer
=
int
(
layer
)
self
.
_
value
=
value
self
.
value
=
value
if
value
:
if
value
:
# Generate hash of from the value
# Generate hash of from the value
self
.
_sha
=
self
.
_generateHash
()
self
.
_sha
=
self
.
_generateHash
()
...
@@ -631,20 +631,20 @@ class BusinessItem(Implicit, Persistent):
...
@@ -631,20 +631,20 @@ class BusinessItem(Implicit, Persistent):
Initially, for simplicity, we go on with SHA256 values only
Initially, for simplicity, we go on with SHA256 values only
"""
"""
LOG
(
'Business Manager'
,
INFO
,
'Genrating hash'
)
LOG
(
'Business Manager'
,
INFO
,
'Genrating hash'
)
if
not
self
.
_
value
:
if
not
self
.
value
:
# Raise in case there is no value for the BusinessItem object
# Raise in case there is no value for the BusinessItem object
raise
ValueError
,
"Value not defined for the %s BusinessItem"
%
self
.
_path
raise
ValueError
,
"Value not defined for the %s BusinessItem"
%
self
.
_path
elif
self
.
isProperty
:
elif
self
.
isProperty
:
# In case of property, the value is a PersisitentMapping object, so it
# In case of property, the value is a PersisitentMapping object, so it
# can be easily hashed after formatting
# can be easily hashed after formatting
sha256
=
hash
(
pprint
.
pformat
(
self
.
_
value
))
sha256
=
hash
(
pprint
.
pformat
(
self
.
value
))
else
:
else
:
# Expects to raise error on case the value for the object
# Expects to raise error on case the value for the object
# is not picklable
# is not picklable
try
:
try
:
sha256
=
hashlib
.
sha256
(
self
.
_
value
).
hexdigest
()
sha256
=
hashlib
.
sha256
(
self
.
value
).
hexdigest
()
except
TypeError
:
except
TypeError
:
obj_dict
=
self
.
_
value
.
__dict__
.
copy
()
obj_dict
=
self
.
value
.
__dict__
.
copy
()
del
obj_dict
[
'uid'
]
del
obj_dict
[
'uid'
]
sha256
=
hash
(
pprint
.
pformat
(
obj_dict
))
sha256
=
hash
(
pprint
.
pformat
(
obj_dict
))
self
.
_sha
=
sha256
self
.
_sha
=
sha256
...
@@ -673,7 +673,7 @@ class BusinessItem(Implicit, Persistent):
...
@@ -673,7 +673,7 @@ class BusinessItem(Implicit, Persistent):
value
[
'name'
]
=
property_id
value
[
'name'
]
=
property_id
value
[
'type'
]
=
property_type
value
[
'type'
]
=
property_type
value
[
'value'
]
=
property_value
value
[
'value'
]
=
property_value
self
.
_
value
=
value
self
.
value
=
value
# Add the value object in the database
# Add the value object in the database
obj
.
_p_jar
.
add
(
value
)
obj
.
_p_jar
.
add
(
value
)
# Generate hash for the property value
# Generate hash for the property value
...
@@ -691,7 +691,7 @@ class BusinessItem(Implicit, Persistent):
...
@@ -691,7 +691,7 @@ class BusinessItem(Implicit, Persistent):
obj
=
obj
.
_getCopy
(
context
)
obj
=
obj
.
_getCopy
(
context
)
obj
=
obj
.
__of__
(
context
)
obj
=
obj
.
__of__
(
context
)
_recursiveRemoveUid
(
obj
)
_recursiveRemoveUid
(
obj
)
self
.
_
value
=
obj
self
.
value
=
obj
# Generate hash for the erp5 object value
# Generate hash for the erp5 object value
self
.
_generateHash
()
self
.
_generateHash
()
except
AttributeError
:
except
AttributeError
:
...
@@ -776,7 +776,7 @@ class BusinessItem(Implicit, Persistent):
...
@@ -776,7 +776,7 @@ class BusinessItem(Implicit, Persistent):
self
.
isProperty
=
True
self
.
isProperty
=
True
relative_url
,
property_id
=
self
.
_path
.
split
(
'#'
)
relative_url
,
property_id
=
self
.
_path
.
split
(
'#'
)
obj
=
portal
.
unrestrictedTraverse
(
relative_url
)
obj
=
portal
.
unrestrictedTraverse
(
relative_url
)
prop
=
self
.
_
value
prop
=
self
.
value
# First remove the property from the existing path and keep the default
# First remove the property from the existing path and keep the default
# empty, and update only if the sign is +1
# empty, and update only if the sign is +1
obj
.
_delPropValue
(
prop
[
'name'
])
obj
.
_delPropValue
(
prop
[
'name'
])
...
@@ -799,7 +799,7 @@ class BusinessItem(Implicit, Persistent):
...
@@ -799,7 +799,7 @@ class BusinessItem(Implicit, Persistent):
# If sign is +1, set the new object on the container
# If sign is +1, set the new object on the container
if
self
.
_sign
==
1
:
if
self
.
_sign
==
1
:
# install object
# install object
obj
=
self
.
_
value
obj
=
self
.
value
obj
=
obj
.
_getCopy
(
container
)
obj
=
obj
.
_getCopy
(
container
)
container
.
_setObject
(
object_id
,
obj
)
container
.
_setObject
(
object_id
,
obj
)
obj
=
container
.
_getOb
(
object_id
)
obj
=
container
.
_getOb
(
object_id
)
...
@@ -867,7 +867,7 @@ class BusinessItem(Implicit, Persistent):
...
@@ -867,7 +867,7 @@ class BusinessItem(Implicit, Persistent):
elif
self
.
_sign
!=
other
.
_sign
:
elif
self
.
_sign
!=
other
.
_sign
:
raise
ValueError
,
"BusinessItem are incommensurable, have different sign"
raise
ValueError
,
"BusinessItem are incommensurable, have different sign"
else
:
else
:
self
.
_value
=
self
.
_mergeValue
(
value_list
=
[
self
.
_value
,
other
.
_
value
])
self
.
value
=
self
.
_mergeValue
(
value_list
=
[
self
.
value
,
other
.
value
])
return
self
return
self
__radd__
=
__add__
__radd__
=
__add__
...
@@ -1052,10 +1052,10 @@ class BusinessItem(Implicit, Persistent):
...
@@ -1052,10 +1052,10 @@ class BusinessItem(Implicit, Persistent):
return
self
.
_layer
return
self
.
_layer
def
getBusinessPathValue
(
self
):
def
getBusinessPathValue
(
self
):
return
self
.
_
value
return
self
.
value
def
setBusinessPathValue
(
self
,
value
):
def
setBusinessPathValue
(
self
,
value
):
self
.
_
value
=
value
self
.
value
=
value
def
getBusinessPathSha
(
self
):
def
getBusinessPathSha
(
self
):
return
self
.
_sha
return
self
.
_sha
...
...
product/ERP5/Tool/TemplateTool.py
View file @
0c378e63
...
@@ -1747,7 +1747,8 @@ class TemplateTool (BaseTool):
...
@@ -1747,7 +1747,8 @@ class TemplateTool (BaseTool):
# Update hashes of item in old state before installation
# Update hashes of item in old state before installation
for
item
in
old_installation_state
.
_path_item_list
:
for
item
in
old_installation_state
.
_path_item_list
:
item
.
_sha
=
self
.
calculateComparableHash
(
item
.
_value
)
value
=
item
.
value
item
.
_sha
=
self
.
calculateComparableHash
(
value
)
# Path Item List for installation_process should be the difference between
# Path Item List for installation_process should be the difference between
# old and new installation state
# old and new installation state
...
@@ -1905,7 +1906,7 @@ class TemplateTool (BaseTool):
...
@@ -1905,7 +1906,7 @@ class TemplateTool (BaseTool):
# XXX: Hack for not trying to install the sub-objects from zexp,
# XXX: Hack for not trying to install the sub-objects from zexp,
# This should rather be implemneted while exportign the object,
# This should rather be implemneted while exportign the object,
# where we shouldn't export sub-objects in the zexp
# where we shouldn't export sub-objects in the zexp
value
=
new_item
.
_
value
value
=
new_item
.
value
if
value
is
None
:
if
value
is
None
:
continue
continue
if
value
.
_tree
:
if
value
.
_tree
:
...
...
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