diff --git a/sale_planner/__manifest__.py b/sale_planner/__manifest__.py index 9619a669..cce9a189 100644 --- a/sale_planner/__manifest__.py +++ b/sale_planner/__manifest__.py @@ -1,7 +1,7 @@ { 'name': 'Sale Order Planner', 'summary': 'Plans order dates and warehouses.', - 'version': '13.0.1.0.0', + 'version': '14.0.1.0.0', 'author': "Hibou Corp.", 'category': 'Sale', 'license': 'AGPL-3', diff --git a/sale_planner/security/ir.model.access.csv b/sale_planner/security/ir.model.access.csv index 76f4df22..57dffffb 100644 --- a/sale_planner/security/ir.model.access.csv +++ b/sale_planner/security/ir.model.access.csv @@ -1,2 +1,4 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_sale_order_make_plan,access_sale_order_make_plan,model_sale_order_make_plan,base.group_user,1,1,1,1 +access_sale_order_planning_option,access_sale_order_planning_option,model_sale_order_planning_option,base.group_user,1,1,1,1 access_sale_order_planning_policy,access_sale_order_planning_policy,model_sale_order_planning_policy,base.group_user,1,1,1,1 \ No newline at end of file diff --git a/sale_planner/wizard/order_planner.py b/sale_planner/wizard/order_planner.py index 8d664ce1..01ef8b62 100644 --- a/sale_planner/wizard/order_planner.py +++ b/sale_planner/wizard/order_planner.py @@ -13,7 +13,8 @@ except ImportError: _logger.warn('module "uszipcode" cannot be loaded, falling back to Google API') SearchEngine = None -from odoo import api, fields, models, tools +from odoo import api, fields, models +from odoo.tools.safe_eval import safe_eval class FakeCollection(): @@ -300,7 +301,7 @@ class SaleOrderMakePlan(models.TransientModel): if domain: if not isinstance(domain, (list, tuple)): - domain = tools.safe_eval(domain) + domain = safe_eval(domain) else: domain = [] if 'allowed_company_ids' in self.env.context: @@ -311,7 +312,7 @@ class SaleOrderMakePlan(models.TransientModel): irconfig_parameter = self.env['ir.config_parameter'].sudo() if irconfig_parameter.get_param('sale.order.planner.warehouse_domain'): - domain.extend(tools.safe_eval(irconfig_parameter.get_param('sale.order.planner.warehouse_domain'))) + domain.extend(safe_eval(irconfig_parameter.get_param('sale.order.planner.warehouse_domain'))) return warehouse.search(domain) @@ -322,7 +323,7 @@ class SaleOrderMakePlan(models.TransientModel): if domain: if not isinstance(domain, (list, tuple)): - domain = tools.safe_eval(domain) + domain = safe_eval(domain) else: domain = [] @@ -332,7 +333,7 @@ class SaleOrderMakePlan(models.TransientModel): irconfig_parameter = self.env['ir.config_parameter'].sudo() if irconfig_parameter.get_param('sale.order.planner.carrier_domain'): - domain.extend(tools.safe_eval(irconfig_parameter.get_param('sale.order.planner.carrier_domain'))) + domain.extend(safe_eval(irconfig_parameter.get_param('sale.order.planner.carrier_domain'))) return Carrier.search(domain) @@ -660,7 +661,7 @@ class SaleOrderMakePlan(models.TransientModel): for line in product_lines: policy = line.product_id.product_tmpl_id.get_planning_policy() if policy and policy.carrier_filter_id: - domain.extend(tools.safe_eval(policy.carrier_filter_id.domain)) + domain.extend(safe_eval(policy.carrier_filter_id.domain)) carriers = self.get_shipping_carriers(base_option.get('carrier_id'), domain=domain) _logger.info('generate_shipping_options:: base_option: ' + str(base_option) + ' order_fake: ' + str(order_fake) + ' carriers: ' + str(carriers))