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
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Iliya Manolov
erp5
Commits
9d710981
Commit
9d710981
authored
Dec 31, 2015
by
Nicolas Wavrant
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
code factorization for security permissions in Solvers
parent
e447832e
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
15 additions
and
33 deletions
+15
-33
product/ERP5/Document/AcceptSolver.py
product/ERP5/Document/AcceptSolver.py
+1
-5
product/ERP5/Document/AdoptSolver.py
product/ERP5/Document/AdoptSolver.py
+1
-5
product/ERP5/Document/ItemListSplitSolver.py
product/ERP5/Document/ItemListSplitSolver.py
+1
-5
product/ERP5/Document/MovementSplitSolver.py
product/ERP5/Document/MovementSplitSolver.py
+1
-4
product/ERP5/Document/QuantitySplitSolver.py
product/ERP5/Document/QuantitySplitSolver.py
+1
-4
product/ERP5/Document/TradeModelSolver.py
product/ERP5/Document/TradeModelSolver.py
+1
-5
product/ERP5/Document/UnifySolver.py
product/ERP5/Document/UnifySolver.py
+1
-5
product/ERP5/mixin/solver.py
product/ERP5/mixin/solver.py
+8
-0
No files found.
product/ERP5/Document/AcceptSolver.py
View file @
9d710981
...
@@ -29,7 +29,6 @@
...
@@ -29,7 +29,6 @@
from
AccessControl
import
ClassSecurityInfo
from
AccessControl
import
ClassSecurityInfo
from
Products.ERP5Type
import
Permissions
from
Products.ERP5Type
import
Permissions
from
Products.ERP5Type.UnrestrictedMethod
import
UnrestrictedMethod
from
Products.ERP5.mixin.solver
import
ConfigurablePropertySolverMixin
from
Products.ERP5.mixin.solver
import
ConfigurablePropertySolverMixin
class
AcceptSolver
(
ConfigurablePropertySolverMixin
):
class
AcceptSolver
(
ConfigurablePropertySolverMixin
):
...
@@ -42,10 +41,7 @@ class AcceptSolver(ConfigurablePropertySolverMixin):
...
@@ -42,10 +41,7 @@ class AcceptSolver(ConfigurablePropertySolverMixin):
security
=
ClassSecurityInfo
()
security
=
ClassSecurityInfo
()
security
.
declareObjectProtected
(
Permissions
.
AccessContentsInformation
)
security
.
declareObjectProtected
(
Permissions
.
AccessContentsInformation
)
# ISolver Implementation
def
_solve
(
self
,
activate_kw
=
None
):
security
.
declarePrivate
(
'solve'
)
@
UnrestrictedMethod
def
solve
(
self
,
activate_kw
=
None
):
"""
"""
Adopt new property to simulation movements, with keeping the
Adopt new property to simulation movements, with keeping the
original one recorded.
original one recorded.
...
...
product/ERP5/Document/AdoptSolver.py
View file @
9d710981
...
@@ -29,7 +29,6 @@
...
@@ -29,7 +29,6 @@
from
AccessControl
import
ClassSecurityInfo
from
AccessControl
import
ClassSecurityInfo
from
Products.ERP5Type
import
Permissions
from
Products.ERP5Type
import
Permissions
from
Products.ERP5Type.UnrestrictedMethod
import
UnrestrictedMethod
from
Products.ERP5.mixin.solver
import
ConfigurablePropertySolverMixin
from
Products.ERP5.mixin.solver
import
ConfigurablePropertySolverMixin
class
AdoptSolver
(
ConfigurablePropertySolverMixin
):
class
AdoptSolver
(
ConfigurablePropertySolverMixin
):
...
@@ -42,10 +41,7 @@ class AdoptSolver(ConfigurablePropertySolverMixin):
...
@@ -42,10 +41,7 @@ class AdoptSolver(ConfigurablePropertySolverMixin):
security
=
ClassSecurityInfo
()
security
=
ClassSecurityInfo
()
security
.
declareObjectProtected
(
Permissions
.
AccessContentsInformation
)
security
.
declareObjectProtected
(
Permissions
.
AccessContentsInformation
)
# ISolver Implementation
def
_solve
(
self
,
activate_kw
=
None
):
security
.
declarePrivate
(
'solve'
)
@
UnrestrictedMethod
def
solve
(
self
,
activate_kw
=
None
):
"""
"""
Adopt new property to movements or deliveries.
Adopt new property to movements or deliveries.
"""
"""
...
...
product/ERP5/Document/ItemListSplitSolver.py
View file @
9d710981
...
@@ -31,7 +31,6 @@ import zope.interface
...
@@ -31,7 +31,6 @@ import zope.interface
from
AccessControl
import
ClassSecurityInfo
from
AccessControl
import
ClassSecurityInfo
from
Acquisition
import
aq_base
from
Acquisition
import
aq_base
from
Products.ERP5Type
import
Permissions
,
PropertySheet
,
interfaces
from
Products.ERP5Type
import
Permissions
,
PropertySheet
,
interfaces
from
Products.ERP5Type.UnrestrictedMethod
import
UnrestrictedMethod
from
Products.ERP5Type.XMLObject
import
XMLObject
from
Products.ERP5Type.XMLObject
import
XMLObject
from
Products.ERP5.mixin.solver
import
SolverMixin
from
Products.ERP5.mixin.solver
import
SolverMixin
from
Products.ERP5.mixin.configurable
import
ConfigurableMixin
from
Products.ERP5.mixin.configurable
import
ConfigurableMixin
...
@@ -65,10 +64,7 @@ class ItemListSplitSolver(SolverMixin, ConfigurableMixin, XMLObject):
...
@@ -65,10 +64,7 @@ class ItemListSplitSolver(SolverMixin, ConfigurableMixin, XMLObject):
interfaces
.
IConfigurable
,
interfaces
.
IConfigurable
,
)
)
# ISolver Implementation
def
_solve
(
self
,
activate_kw
=
None
):
security
.
declarePrivate
(
'solve'
)
@
UnrestrictedMethod
def
solve
(
self
,
activate_kw
=
None
):
"""This method create new movement based on difference of aggregate sets.
"""This method create new movement based on difference of aggregate sets.
It supports only removed items.
It supports only removed items.
Quantity divergence is also solved with sum of aggregated quantities stored
Quantity divergence is also solved with sum of aggregated quantities stored
...
...
product/ERP5/Document/MovementSplitSolver.py
View file @
9d710981
...
@@ -58,10 +58,7 @@ class MovementSplitSolver(SolverMixin, ConfigurableMixin, XMLObject):
...
@@ -58,10 +58,7 @@ class MovementSplitSolver(SolverMixin, ConfigurableMixin, XMLObject):
interfaces
.
IConfigurable
,
interfaces
.
IConfigurable
,
)
)
# ISolver Implementation
def
_solve
(
self
,
activate_kw
=
None
):
security
.
declarePrivate
(
'solve'
)
@
UnrestrictedMethod
def
solve
(
self
,
activate_kw
=
None
):
"""
"""
This method splits a Delivery and move movements in to a new
This method splits a Delivery and move movements in to a new
Delivery. Splitting is done by duplicating the Delivery, removing
Delivery. Splitting is done by duplicating the Delivery, removing
...
...
product/ERP5/Document/QuantitySplitSolver.py
View file @
9d710981
...
@@ -31,7 +31,6 @@ import zope.interface
...
@@ -31,7 +31,6 @@ import zope.interface
from
AccessControl
import
ClassSecurityInfo
from
AccessControl
import
ClassSecurityInfo
from
Acquisition
import
aq_base
from
Acquisition
import
aq_base
from
Products.ERP5Type
import
Permissions
,
PropertySheet
,
interfaces
from
Products.ERP5Type
import
Permissions
,
PropertySheet
,
interfaces
from
Products.ERP5Type.UnrestrictedMethod
import
UnrestrictedMethod
from
Products.ERP5Type.XMLObject
import
XMLObject
from
Products.ERP5Type.XMLObject
import
XMLObject
from
Products.ERP5Type.Globals
import
PersistentMapping
from
Products.ERP5Type.Globals
import
PersistentMapping
from
Products.ERP5.mixin.solver
import
SolverMixin
from
Products.ERP5.mixin.solver
import
SolverMixin
...
@@ -67,9 +66,7 @@ class QuantitySplitSolver(SolverMixin, ConfigurableMixin, XMLObject):
...
@@ -67,9 +66,7 @@ class QuantitySplitSolver(SolverMixin, ConfigurableMixin, XMLObject):
)
)
# ISolver Implementation
# ISolver Implementation
security
.
declarePrivate
(
'solve'
)
def
_solve
(
self
,
activate_kw
=
None
):
@
UnrestrictedMethod
def
solve
(
self
,
activate_kw
=
None
):
"""
"""
"""
"""
configuration_dict
=
self
.
getConfigurationPropertyDict
()
configuration_dict
=
self
.
getConfigurationPropertyDict
()
...
...
product/ERP5/Document/TradeModelSolver.py
View file @
9d710981
...
@@ -29,7 +29,6 @@
...
@@ -29,7 +29,6 @@
import
zope.interface
import
zope.interface
from
AccessControl
import
ClassSecurityInfo
from
AccessControl
import
ClassSecurityInfo
from
Products.ERP5Type
import
Permissions
,
PropertySheet
,
interfaces
from
Products.ERP5Type
import
Permissions
,
PropertySheet
,
interfaces
from
Products.ERP5Type.UnrestrictedMethod
import
UnrestrictedMethod
from
Products.ERP5.Document.AcceptSolver
import
AcceptSolver
from
Products.ERP5.Document.AcceptSolver
import
AcceptSolver
class
TradeModelSolver
(
AcceptSolver
):
class
TradeModelSolver
(
AcceptSolver
):
...
@@ -58,10 +57,7 @@ class TradeModelSolver(AcceptSolver):
...
@@ -58,10 +57,7 @@ class TradeModelSolver(AcceptSolver):
# Declarative interfaces
# Declarative interfaces
zope
.
interface
.
implements
(
interfaces
.
ISolver
,)
zope
.
interface
.
implements
(
interfaces
.
ISolver
,)
# ISolver Implementation
def
_solve
(
self
,
activate_kw
=
None
):
security
.
declarePrivate
(
'solve'
)
@
UnrestrictedMethod
def
solve
(
self
,
activate_kw
=
None
):
"""
"""
Adopt new values to simulation movements, with keeping the original
Adopt new values to simulation movements, with keeping the original
one recorded, and then update Trade Model related lines accordingly.
one recorded, and then update Trade Model related lines accordingly.
...
...
product/ERP5/Document/UnifySolver.py
View file @
9d710981
...
@@ -30,7 +30,6 @@
...
@@ -30,7 +30,6 @@
import
zope.interface
import
zope.interface
from
AccessControl
import
ClassSecurityInfo
from
AccessControl
import
ClassSecurityInfo
from
Products.ERP5Type
import
Permissions
,
PropertySheet
,
interfaces
from
Products.ERP5Type
import
Permissions
,
PropertySheet
,
interfaces
from
Products.ERP5Type.UnrestrictedMethod
import
UnrestrictedMethod
from
Products.ERP5.Document.AcceptSolver
import
AcceptSolver
from
Products.ERP5.Document.AcceptSolver
import
AcceptSolver
class
UnifySolver
(
AcceptSolver
):
class
UnifySolver
(
AcceptSolver
):
...
@@ -90,10 +89,7 @@ class UnifySolver(AcceptSolver):
...
@@ -90,10 +89,7 @@ class UnifySolver(AcceptSolver):
simulation_movement_list
.
append
(
simulation_movement
)
simulation_movement_list
.
append
(
simulation_movement
)
return
simulation_movement_list
return
simulation_movement_list
# ISolver Implementation
def
_solve
(
self
,
activate_kw
=
None
):
security
.
declarePrivate
(
'solve'
)
@
UnrestrictedMethod
def
solve
(
self
,
activate_kw
=
None
):
"""
"""
Adopt new property value to simulation movements and their deliveries,
Adopt new property value to simulation movements and their deliveries,
while keeping the original one recorded.
while keeping the original one recorded.
...
...
product/ERP5/mixin/solver.py
View file @
9d710981
...
@@ -30,6 +30,7 @@
...
@@ -30,6 +30,7 @@
import
zope.interface
import
zope.interface
from
AccessControl
import
ClassSecurityInfo
from
AccessControl
import
ClassSecurityInfo
from
Products.ERP5Type
import
Permissions
,
PropertySheet
,
interfaces
from
Products.ERP5Type
import
Permissions
,
PropertySheet
,
interfaces
from
Products.ERP5Type.UnrestrictedMethod
import
super_user
from
Products.ERP5Type.XMLObject
import
XMLObject
from
Products.ERP5Type.XMLObject
import
XMLObject
from
Products.ERP5.mixin.configurable
import
ConfigurableMixin
from
Products.ERP5.mixin.configurable
import
ConfigurableMixin
...
@@ -44,7 +45,14 @@ class SolverMixin(object):
...
@@ -44,7 +45,14 @@ class SolverMixin(object):
# Declarative interfaces
# Declarative interfaces
zope
.
interface
.
implements
(
interfaces
.
ISolver
,)
zope
.
interface
.
implements
(
interfaces
.
ISolver
,)
def
_solve
(
self
,
activate_kw
=
None
):
raise
NotImplementedError
# Implementation of ISolver
# Implementation of ISolver
security
.
declarePrivate
(
'solve'
)
def
solve
(
self
,
activate_kw
=
None
):
with
super_user
():
self
.
_solve
(
activate_kw
=
activate_kw
)
def
getPortalTypeValue
(
self
):
def
getPortalTypeValue
(
self
):
return
self
.
getPortalObject
().
portal_solvers
.
_getOb
(
self
.
getPortalType
())
return
self
.
getPortalObject
().
portal_solvers
.
_getOb
(
self
.
getPortalType
())
...
...
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