Commit b8f9ecb7 authored by Łukasz Nowak's avatar Łukasz Nowak

- use order link to match simulation movements with prevision for root rules, remove fixed todos

 - be consistent - use _list for order and delivery category property


git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@28417 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent b43b8b9e
...@@ -38,8 +38,6 @@ class BPMDeliveryRule(BPMRule): ...@@ -38,8 +38,6 @@ class BPMDeliveryRule(BPMRule):
DISCLAIMER: Refer to BPMRule docstring disclaimer. DISCLAIMER: Refer to BPMRule docstring disclaimer.
This is BPM enabled Delivery Rule. This is BPM enabled Delivery Rule.
FIXME: override _getCompensatedMovementList to match per order link
""" """
# CMF Type Definition # CMF Type Definition
...@@ -64,7 +62,7 @@ class BPMDeliveryRule(BPMRule): ...@@ -64,7 +62,7 @@ class BPMDeliveryRule(BPMRule):
business_path, current_property_dict): business_path, current_property_dict):
"""Delivery specific update dict""" """Delivery specific update dict"""
return { return {
'order_value': movement, 'order_list': [movement.getRelativeUrl()],
'delivery_value': movement, 'delivery_list': [movement.getRelativeUrl()],
'deliverable': 1, 'deliverable': 1,
} }
...@@ -38,8 +38,6 @@ class BPMOrderRule(BPMDeliveryRule): ...@@ -38,8 +38,6 @@ class BPMOrderRule(BPMDeliveryRule):
DISCLAIMER: Refer to BPMRule docstring disclaimer. DISCLAIMER: Refer to BPMRule docstring disclaimer.
This is BPM enabled Order Rule. This is BPM enabled Order Rule.
FIXME: override _getCompensatedMovementList to match per order link
""" """
# CMF Type Definition # CMF Type Definition
meta_type = 'ERP5 BPM Order Rule' meta_type = 'ERP5 BPM Order Rule'
...@@ -63,6 +61,6 @@ class BPMOrderRule(BPMDeliveryRule): ...@@ -63,6 +61,6 @@ class BPMOrderRule(BPMDeliveryRule):
business_path, current_property_dict): business_path, current_property_dict):
"""Order rule specific update dictionary""" """Order rule specific update dictionary"""
return { return {
'order_value': movement, 'order_list': [movement.getRelativeUrl()],
'deliverable': 1, 'deliverable': 1,
} }
...@@ -260,6 +260,12 @@ class BPMRule(Predicate, XMLObject): ...@@ -260,6 +260,12 @@ class BPMRule(Predicate, XMLObject):
for prevision in prevision_list: for prevision in prevision_list:
p_matched_list = [] p_matched_list = []
for movement in non_matched_list: for movement in non_matched_list:
if 'order_list' in prevision:
# applied rule is root, use order link to find movement
if movement.getOrder() == prevision.get('order_list', [''])[0]:
p_matched_list.append(movement)
else:
# applied rule is not root one, match
for prop in self.getMatchingPropertyList(): for prop in self.getMatchingPropertyList():
if prevision.get(prop) != movement.getProperty(prop): if prevision.get(prop) != movement.getProperty(prop):
break break
......
...@@ -39,6 +39,12 @@ It is advised to *NOT* remove erp5_administration. ...@@ -39,6 +39,12 @@ It is advised to *NOT* remove erp5_administration.
TODOs: TODOs:
* avoid duplication of code when possible * avoid duplication of code when possible
* implement tests wisely, to support at least both BPM cases * implement tests wisely, to support at least both BPM cases
Scenarios to cover:
* unify root rules (BPMOrderRule, BPMDeliveryRule, etc) tests - they share
a lot of code
* test case of splitting for root rules
""" """
import unittest import unittest
...@@ -304,9 +310,6 @@ class TestOrder(TestBPMEvaluationMixin): ...@@ -304,9 +310,6 @@ class TestOrder(TestBPMEvaluationMixin):
self._checkOrderBPMSimulation() self._checkOrderBPMSimulation()
def test_planning_line_edit_add_same_resource_than_order(self): def test_planning_line_edit_add_same_resource_than_order(self):
# TODO: this test fails because BPMOrderRule do not matches movement using
# order link, this have to be done in similar way like OrderRule and
# DeliveryRule work
self.test_planning_line_edit_add_same_resource() self.test_planning_line_edit_add_same_resource()
self.order.order() self.order.order()
self.stepTic() self.stepTic()
......
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