diff --git a/addons/account/models/res_config_settings.py b/addons/account/models/res_config_settings.py index 6949c38ea6c..40c898cfd83 100644 --- a/addons/account/models/res_config_settings.py +++ b/addons/account/models/res_config_settings.py @@ -1,6 +1,8 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. +from ast import literal_eval + from odoo import api, fields, models, _ @@ -64,9 +66,16 @@ class ResConfigSettings(models.TransientModel): def get_values(self): res = super(ResConfigSettings, self).get_values() params = self.env['ir.config_parameter'].sudo() + tax = self.env['account.tax'].sudo() + default_purchase_tax_id = literal_eval(params.get_param('account.default_purchase_tax_id', default='False')) + default_sale_tax_id = literal_eval(params.get_param('account.default_sale_tax_id', default='False')) + if default_purchase_tax_id and not tax.browse(default_purchase_tax_id).exists(): + default_purchase_tax_id = False + if default_sale_tax_id and not tax.browse(default_sale_tax_id).exists(): + default_sale_tax_id = False res.update( - default_purchase_tax_id=int(params.get_param('account.default_purchase_tax_id', default=False)) or False, - default_sale_tax_id=int(params.get_param('account.default_sale_tax_id', default=False)) or False + default_purchase_tax_id=default_purchase_tax_id, + default_sale_tax_id=default_sale_tax_id, ) return res diff --git a/addons/auth_signup/models/res_config_settings.py b/addons/auth_signup/models/res_config_settings.py index 93436c80fab..7350121137b 100644 --- a/addons/auth_signup/models/res_config_settings.py +++ b/addons/auth_signup/models/res_config_settings.py @@ -20,11 +20,14 @@ class ResConfigSettings(models.TransientModel): def get_values(self): res = super(ResConfigSettings, self).get_values() get_param = self.env['ir.config_parameter'].sudo().get_param + auth_signup_template_user_id = literal_eval(get_param('auth_signup.template_user_id', default='False')) + if auth_signup_template_user_id and not self.env['res.users'].sudo().browse(auth_signup_template_user_id).exists(): + auth_signup_template_user_id = False # the value of the parameter is a nonempty string res.update( auth_signup_reset_password=get_param('auth_signup.reset_password', 'False').lower() == 'true', auth_signup_uninvited='b2c' if get_param('auth_signup.allow_uninvited', 'False').lower() == 'true' else 'b2b', - auth_signup_template_user_id=literal_eval(get_param('auth_signup.template_user_id', 'False')), + auth_signup_template_user_id=auth_signup_template_user_id, ) return res diff --git a/addons/sale/models/res_config_settings.py b/addons/sale/models/res_config_settings.py index 441d8eefb5d..f9016c90143 100644 --- a/addons/sale/models/res_config_settings.py +++ b/addons/sale/models/res_config_settings.py @@ -1,6 +1,8 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. +from ast import literal_eval + from odoo import api, fields, models @@ -136,11 +138,14 @@ class ResConfigSettings(models.TransientModel): ICPSudo = self.env['ir.config_parameter'].sudo() sale_pricelist_setting = ICPSudo.get_param('sale.sale_pricelist_setting') sale_portal_confirmation_options = ICPSudo.get_param('sale.sale_portal_confirmation_options', default='none') + default_deposit_product_id = literal_eval(ICPSudo.get_param('sale.default_deposit_product_id', default='False')) + if default_deposit_product_id and not self.env['product.product'].browse(default_deposit_product_id).exists(): + default_deposit_product_id = False res.update( auth_signup_uninvited='b2c' if ICPSudo.get_param('auth_signup.allow_uninvited', 'False').lower() == 'true' else 'b2b', use_sale_note=ICPSudo.get_param('sale.use_sale_note', default=False), auto_done_setting=ICPSudo.get_param('sale.auto_done_setting'), - default_deposit_product_id=int(ICPSudo.get_param('sale.default_deposit_product_id')), + default_deposit_product_id=default_deposit_product_id, sale_show_tax=ICPSudo.get_param('sale.sale_show_tax', default='subtotal'), multi_sales_price=sale_pricelist_setting in ['percentage', 'formula'], multi_sales_price_method=sale_pricelist_setting in ['percentage', 'formula'] and sale_pricelist_setting or False, diff --git a/addons/website_sale/models/res_config_settings.py b/addons/website_sale/models/res_config_settings.py index c83d92b2b19..74ad507499d 100644 --- a/addons/website_sale/models/res_config_settings.py +++ b/addons/website_sale/models/res_config_settings.py @@ -1,6 +1,8 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. +from ast import literal_eval + from odoo import api, models, fields class ResConfigSettings(models.TransientModel): @@ -62,8 +64,8 @@ class ResConfigSettings(models.TransientModel): if self.env['ir.module.module'].search([('name', '=', 'website_sale_delivery')], limit=1).state in ('installed', 'to install', 'to upgrade'): sale_delivery_settings = 'website' - cart_recovery_mail_template = int(params.get_param('website_sale.cart_recovery_mail_template_id')) - if not cart_recovery_mail_template: + cart_recovery_mail_template = literal_eval(params.get_param('website_sale.cart_recovery_mail_template_id', default='False')) + if cart_recovery_mail_template and not self.env['mail.template'].browse(cart_recovery_mail_template).exists(): cart_recovery_mail_template = self._default_recovery_mail_template() res.update(