Commit b1468de4 authored by Kazuhiko Shiozaki's avatar Kazuhiko Shiozaki Committed by Jérome Perrin

py2/py3: explicitly cast dict keys to list.

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