Commit c4abd786 authored by Kazuhiko Shiozaki's avatar Kazuhiko Shiozaki Committed by Arnaud Fontaine

py2/py3: explicitly cast dict keys to list.

parent 8dbe6405
...@@ -32,6 +32,7 @@ from DateTime import DateTime ...@@ -32,6 +32,7 @@ from DateTime import DateTime
from erp5.component.module.DateUtils import centis, getClosestDate, addToDate from erp5.component.module.DateUtils import centis, getClosestDate, addToDate
from erp5.component.module.DateUtils import getDecimalNumberOfYearsBetween from erp5.component.module.DateUtils import getDecimalNumberOfYearsBetween
from Products.ERP5Type import Permissions from Products.ERP5Type import Permissions
from Products.ERP5Type.Utils import ensure_list
from erp5.component.mixin.RuleMixin import RuleMixin from erp5.component.mixin.RuleMixin import RuleMixin
from Products.CMFCore.utils import getToolByName from Products.CMFCore.utils import getToolByName
from erp5.component.document.ImmobilisationMovement import NO_CHANGE_METHOD from erp5.component.document.ImmobilisationMovement import NO_CHANGE_METHOD
...@@ -659,8 +660,8 @@ class AmortisationRule(RuleMixin): ...@@ -659,8 +660,8 @@ class AmortisationRule(RuleMixin):
# according to these ratio : the highest ratio gets the priority, then the next # according to these ratio : the highest ratio gets the priority, then the next
# highest is taken into account if corresponding resources are free, and so on # highest is taken into account if corresponding resources are free, and so on
matching_ratio_list.sort(key=lambda x: x['ratio'], reverse=True) matching_ratio_list.sort(key=lambda x: x['ratio'], reverse=True)
calculated_to_match = calculated_period_dict.keys() calculated_to_match = ensure_list(calculated_period_dict.keys())
aggregated_to_match = aggregated_period_dict.keys() aggregated_to_match = ensure_list(aggregated_period_dict.keys())
match_dict = {} match_dict = {}
for matching_ratio in matching_ratio_list: for matching_ratio in matching_ratio_list:
calculated = matching_ratio['calculated_period'] calculated = matching_ratio['calculated_period']
......
...@@ -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 from Products.ERP5Type import Permissions, PropertySheet
from Products.ERP5Type.Utils import ensure_list
from Products.ERP5Type.XMLObject import XMLObject from Products.ERP5Type.XMLObject import XMLObject
from Products.CMFActivity.ActiveProcess import ActiveProcess from Products.CMFActivity.ActiveProcess import ActiveProcess
from Products.ERP5Type.UnrestrictedMethod import UnrestrictedMethod from Products.ERP5Type.UnrestrictedMethod import UnrestrictedMethod
...@@ -100,8 +101,7 @@ class SolverProcess(XMLObject, ActiveProcess): ...@@ -100,8 +101,7 @@ class SolverProcess(XMLObject, ActiveProcess):
if solver is None: if solver is None:
continue continue
solver_conviguration_dict = decision.getConfigurationPropertyDict() solver_conviguration_dict = decision.getConfigurationPropertyDict()
configuration_mapping = solver_conviguration_dict.items() configuration_mapping = sorted(solver_conviguration_dict.items()) # Make sure the list is sorted in canonical way
configuration_mapping.sort() # Make sure the list is sorted in canonical way
configuration_mapping = tuple(configuration_mapping) configuration_mapping = tuple(configuration_mapping)
for movement in decision.getDeliveryValueList(): for movement in decision.getDeliveryValueList():
# Detect incompatibilities # Detect incompatibilities
...@@ -164,8 +164,8 @@ class SolverProcess(XMLObject, ActiveProcess): ...@@ -164,8 +164,8 @@ class SolverProcess(XMLObject, ActiveProcess):
for solver, solver_key_dict in grouped_solver_dict.items(): for solver, solver_key_dict in grouped_solver_dict.items():
for solver_key, solver_movement_dict in solver_key_dict.items(): for solver_key, solver_movement_dict in solver_key_dict.items():
solver_instance = self.newContent(portal_type=solver.getId()) solver_instance = self.newContent(portal_type=solver.getId())
solver_instance._setDeliveryValueList(solver_movement_dict.keys()) solver_instance._setDeliveryValueList(ensure_list(solver_movement_dict.keys()))
for movement, configuration_list in solver_movement_dict.iteritems(): for movement, configuration_list in six.iteritems(solver_movement_dict):
for configuration_mapping in configuration_list: for configuration_mapping in configuration_list:
if len(configuration_mapping): if len(configuration_mapping):
solver_instance.updateConfiguration(**dict(configuration_mapping)) solver_instance.updateConfiguration(**dict(configuration_mapping))
......
...@@ -32,6 +32,7 @@ from AccessControl import ClassSecurityInfo ...@@ -32,6 +32,7 @@ from AccessControl import ClassSecurityInfo
from DateTime import DateTime from DateTime import DateTime
from Products.ERP5Type import Permissions, PropertySheet from Products.ERP5Type import Permissions, PropertySheet
from Products.ERP5Type.Utils import ensure_list
from erp5.component.interface.IImmobilisationItem import IImmobilisationItem from erp5.component.interface.IImmobilisationItem import IImmobilisationItem
from erp5.component.module.DateUtils import addToDate, getClosestDate, roundDate from erp5.component.module.DateUtils import addToDate, getClosestDate, roundDate
from erp5.component.module.DateUtils import getRoundedMonthBetween, millis from erp5.component.module.DateUtils import getRoundedMonthBetween, millis
...@@ -566,7 +567,7 @@ class ImmobilisableItem(Item, Amount): ...@@ -566,7 +567,7 @@ class ImmobilisableItem(Item, Amount):
extra_cost_price = current_immo_period.get('start_extra_cost_price') extra_cost_price = current_immo_period.get('start_extra_cost_price')
main_price = current_immo_period.get('start_main_price') main_price = current_immo_period.get('start_main_price')
current_immo_period['start_price'] = (main_price or 0.) + (extra_cost_price or 0.) current_immo_period['start_price'] = (main_price or 0.) + (extra_cost_price or 0.)
key_list = current_immo_period.keys() key_list = ensure_list(current_immo_period.keys())
for key in key_list: for key in key_list:
value = current_immo_period[key] value = current_immo_period[key]
if key.find('_') != -1: if key.find('_') != -1:
...@@ -575,7 +576,7 @@ class ImmobilisableItem(Item, Amount): ...@@ -575,7 +576,7 @@ class ImmobilisableItem(Item, Amount):
else: else:
# A period wich is alone only copies start values to initial ones # A period wich is alone only copies start values to initial ones
# So it may be invalid later # So it may be invalid later
key_list = current_immo_period.keys() key_list = ensure_list(current_immo_period.keys())
for key in key_list: for key in key_list:
value = current_immo_period[key] value = current_immo_period[key]
if key.find('_') != -1: if key.find('_') != -1:
......
...@@ -32,6 +32,7 @@ from AccessControl import ClassSecurityInfo ...@@ -32,6 +32,7 @@ from AccessControl import ClassSecurityInfo
from Products.ERP5Type import Permissions, PropertySheet, interfaces from Products.ERP5Type import Permissions, PropertySheet, interfaces
from Products.ERP5Type.TransactionalVariable import getTransactionalVariable from Products.ERP5Type.TransactionalVariable import getTransactionalVariable
from Products.ERP5Type.Utils import ensure_list
from erp5.component.document.Movement import Movement from erp5.component.document.Movement import Movement
from erp5.component.module.ExpandPolicy import policy_dict, TREE_DELIVERED_CACHE_KEY from erp5.component.module.ExpandPolicy import policy_dict, TREE_DELIVERED_CACHE_KEY
...@@ -287,7 +288,7 @@ class SimulationMovement(PropertyRecordableMixin, Movement, ExplainableMixin): ...@@ -287,7 +288,7 @@ class SimulationMovement(PropertyRecordableMixin, Movement, ExplainableMixin):
# applicable rule per reference. It indicates a configuration error. # applicable rule per reference. It indicates a configuration error.
applicable_rule_dict.setdefault(reference, rule) applicable_rule_dict.setdefault(reference, rule)
applicable_rule_list = applicable_rule_dict.values() applicable_rule_list = ensure_list(applicable_rule_dict.values())
for applied_rule in list(self.objectValues()): for applied_rule in list(self.objectValues()):
rule = applied_rule.getSpecialiseValue() rule = applied_rule.getSpecialiseValue()
try: try:
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
from collections import OrderedDict from collections import OrderedDict
from warnings import warn from warnings import warn
from Products.PythonScripts.Utility import allow_class from Products.PythonScripts.Utility import allow_class
from Products.ERP5Type.Utils import ensure_list
class MovementGroupNode: class MovementGroupNode:
......
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