diff --git a/company_country/README.rst b/company_country/README.rst index 0705f5112..c7eb25ea3 100644 --- a/company_country/README.rst +++ b/company_country/README.rst @@ -80,6 +80,7 @@ Contributors ~~~~~~~~~~~~ * Moisés López +* Luis González Other credits ~~~~~~~~~~~~~ diff --git a/company_country/__manifest__.py b/company_country/__manifest__.py index 109a2339a..f27d4f5cd 100644 --- a/company_country/__manifest__.py +++ b/company_country/__manifest__.py @@ -3,10 +3,10 @@ { "name": "Company Country", "summary": "Set country to main company", - "version": "13.0.1.0.0", + "version": "13.0.1.0.1", "category": "base", "website": "https://github.com/OCA/server-tools/tree/13.0/company_country", - "maintainers": ["moylop260"], + "maintainers": ["moylop260", "luisg123v"], "author": "Vauxoo, Odoo Community Association (OCA)", "license": "AGPL-3", "depends": [], diff --git a/company_country/models/res_config.py b/company_country/models/res_config.py index 7346ff350..e5683d99f 100644 --- a/company_country/models/res_config.py +++ b/company_country/models/res_config.py @@ -1,10 +1,13 @@ # Copyright 2016 Vauxoo # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +import logging import os from odoo import _, api, models from odoo.exceptions import ValidationError +_logger = logging.getLogger(__name__) + class CompanyCountryConfigSettings(models.TransientModel): _name = "company.country.config.settings" @@ -12,10 +15,19 @@ class CompanyCountryConfigSettings(models.TransientModel): @api.model def load_company_country(self, country_code=None): + account_installed = self.env["ir.module.module"].search( + [("name", "=", "account"), ("state", "=", "installed")], limit=1 + ) + if account_installed: + # If the account module is installed, that means changing the + # company's country will have no effect, as the account hook was + # already run and an l10n module was already been installed + _logger.info("account module already installed, skipping") + return if not country_code: country_code = os.environ.get("COUNTRY") if country_code == "": - self.env.ref("base.main_company").write({"country_id": None}) + self.env.ref("base.main_company").write({"country_id": False}) return if not country_code: l10n_to_install = self.env["ir.module.module"].search( diff --git a/company_country/tests/test_company_country.py b/company_country/tests/test_company_country.py index 0ac2d0fee..552678d65 100644 --- a/company_country/tests/test_company_country.py +++ b/company_country/tests/test_company_country.py @@ -14,7 +14,9 @@ class TestCompanyCountry(TransactionCase): self.us_country = self.env.ref("base.us") self.mx_country = self.env.ref("base.mx") self.main_company = self.env.ref("base.main_company") + self.module_account = self.env.ref("base.module_account") self.main_company.write({"country_id": self.us_country.id}) + self.module_account.write({"state": "uninstalled"}) self.env_country = os.environ.get("COUNTRY") def tearDown(self): @@ -51,3 +53,7 @@ class TestCompanyCountry(TransactionCase): ) l10n_to_install.write({"state": "uninstalled"}) self.wizard.load_company_country() + + # Account is already installed, shouldn't raise + self.module_account.write({"state": "installed"}) + self.wizard.load_company_country()