From df9f591d79f1a1301b570536dc5c96d08865e565 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mois=C3=A9s=20L=C3=B3pez?=
Date: Sun, 30 Sep 2018 10:34:30 +0200
Subject: [PATCH 1/4] [ADD] company_country: Set company.country value early to
use account hook to install l10n_* modules and avoid installing
generic_account
Allow to use account._auto_install_l10n without install `l10n_generic_coa`
---
company_country/README.rst | 114 +++++
company_country/__init__.py | 4 +
company_country/__manifest__.py | 17 +
company_country/data/res_config.xml | 6 +
company_country/models/__init__.py | 3 +
company_country/models/res_config.py | 35 ++
company_country/readme/CONFIGURE.rst | 3 +
company_country/readme/CONTRIBUTORS.rst | 2 +
company_country/readme/CREDITS.rst | 2 +
company_country/readme/DESCRIPTION.rst | 2 +
company_country/readme/INSTALL.rst | 3 +
company_country/readme/USAGE.rst | 7 +
company_country/static/description/index.html | 452 ++++++++++++++++++
company_country/tests/__init__.py | 3 +
company_country/tests/test_company_country.py | 46 ++
15 files changed, 699 insertions(+)
create mode 100644 company_country/README.rst
create mode 100644 company_country/__init__.py
create mode 100644 company_country/__manifest__.py
create mode 100644 company_country/data/res_config.xml
create mode 100644 company_country/models/__init__.py
create mode 100644 company_country/models/res_config.py
create mode 100644 company_country/readme/CONFIGURE.rst
create mode 100644 company_country/readme/CONTRIBUTORS.rst
create mode 100644 company_country/readme/CREDITS.rst
create mode 100644 company_country/readme/DESCRIPTION.rst
create mode 100644 company_country/readme/INSTALL.rst
create mode 100644 company_country/readme/USAGE.rst
create mode 100644 company_country/static/description/index.html
create mode 100644 company_country/tests/__init__.py
create mode 100644 company_country/tests/test_company_country.py
diff --git a/company_country/README.rst b/company_country/README.rst
new file mode 100644
index 000000000..7ad8e2d56
--- /dev/null
+++ b/company_country/README.rst
@@ -0,0 +1,114 @@
+===============
+Company Country
+===============
+
+.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! This file is generated by oca-gen-addon-readme !!
+ !! changes will be overwritten. !!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
+ :target: https://odoo-community.org/page/development-status
+ :alt: Beta
+.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
+ :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
+ :alt: License: AGPL-3
+.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github
+ :target: https://github.com/OCA/server-tools/tree/12.0/company_country
+ :alt: OCA/server-tools
+.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
+ :target: https://translation.odoo-community.org/projects/server-tools-12-0/server-tools-12-0-company_country
+ :alt: Translate me on Weblate
+.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
+ :target: https://runbot.odoo-community.org/runbot/149/12.0
+ :alt: Try me on Runbot
+
+|badge1| |badge2| |badge3| |badge4| |badge5|
+
+This module allow set a country to main company in order to use the hook of
+account that install l10n_** based on country of main company.
+
+**Table of contents**
+
+.. contents::
+ :local:
+
+Installation
+============
+
+To install this module, you need to:
+
+#. Add as depends from your main module.
+
+Configuration
+=============
+
+To configure this module, you need to:
+
+#. Set the environment variable COUNTRY using 2 letter of ISO 3166 codes.
+
+Usage
+=====
+
+To use this module, you need to:
+
+#. Just start server installing your main module.
+
+.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
+ :alt: Try me on Runbot
+ :target: https://runbot.odoo-community.org/runbot/149/12.0
+
+Bug Tracker
+===========
+
+Bugs are tracked on `GitHub Issues `_.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us smashing it by providing a detailed and welcomed
+`feedback `_.
+
+Do not contact contributors directly about support or help with technical issues.
+
+Credits
+=======
+
+Authors
+~~~~~~~
+
+* Vauxoo
+
+Contributors
+~~~~~~~~~~~~
+
+* Moisés López
+
+
+Other credits
+~~~~~~~~~~~~~
+
+Vauxoo
+
+
+Maintainers
+~~~~~~~~~~~
+
+This module is maintained by the OCA.
+
+.. image:: https://odoo-community.org/logo.png
+ :alt: Odoo Community Association
+ :target: https://odoo-community.org
+
+OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
+.. |maintainer-moylop260| image:: https://github.com/moylop260.png?size=40px
+ :target: https://github.com/moylop260
+ :alt: moylop260
+
+Current `maintainer `__:
+
+|maintainer-moylop260|
+
+This module is part of the `OCA/server-tools `_ project on GitHub.
+
+You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/company_country/__init__.py b/company_country/__init__.py
new file mode 100644
index 000000000..6b897e75a
--- /dev/null
+++ b/company_country/__init__.py
@@ -0,0 +1,4 @@
+# Copyright 2016 Vauxoo
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+from . import models
+from . import tests
diff --git a/company_country/__manifest__.py b/company_country/__manifest__.py
new file mode 100644
index 000000000..fad56b085
--- /dev/null
+++ b/company_country/__manifest__.py
@@ -0,0 +1,17 @@
+# © 2016 Vauxoo ()
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+{
+ "name": "Company Country",
+ "summary": "Set country to main company",
+ "version": "12.0.1.0.0",
+ "category": "base",
+ "website": "https://github.com/OCA/server-tools/tree/12.0/company_country",
+ "maintainers": ['moylop260'],
+ "author": "Vauxoo, Odoo Community Association (OCA)",
+ "license": "AGPL-3",
+ "depends": [],
+ "data": ['data/res_config.xml'],
+ "sequence": 1,
+ "auto_install": False,
+ "installable": True,
+}
diff --git a/company_country/data/res_config.xml b/company_country/data/res_config.xml
new file mode 100644
index 000000000..4ab12532b
--- /dev/null
+++ b/company_country/data/res_config.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/company_country/models/__init__.py b/company_country/models/__init__.py
new file mode 100644
index 000000000..3d901f57a
--- /dev/null
+++ b/company_country/models/__init__.py
@@ -0,0 +1,3 @@
+# Copyright 2016 Vauxoo
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+from . import res_config
diff --git a/company_country/models/res_config.py b/company_country/models/res_config.py
new file mode 100644
index 000000000..ab2721234
--- /dev/null
+++ b/company_country/models/res_config.py
@@ -0,0 +1,35 @@
+# Copyright 2016 Vauxoo
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+import os
+
+from odoo import _, api, models
+from odoo.exceptions import ValidationError
+
+
+class CompanyCountryConfigSettings(models.TransientModel):
+ _name = 'company.country.config.settings'
+ _description = 'Company Country Configuration Settings'
+
+ @api.model
+ def load_company_country(self, country_code=None):
+ if not country_code:
+ country_code = os.environ.get('COUNTRY')
+ if country_code == "":
+ self.env.ref('base.main_company').write({'country_id': None})
+ return
+ if not country_code:
+ l10n_to_install = self.env['ir.module.module'].search([
+ ('state', '=', 'to install'),
+ ('name', '=like', 'l10n_%')], limit=1)
+ if not l10n_to_install:
+ raise ValidationError(
+ _('Error COUNTRY environment variable with country code '
+ 'not defined and no localization found in pool.'))
+ country_code = l10n_to_install.name.split('l10n_')[1][:2].upper()
+
+ country = self.env['res.country'].search([
+ ('code', 'ilike', country_code)], limit=1)
+ if not country:
+ raise ValidationError(
+ _('Country code %s not found. Use ISO 3166 codes 2 letters'))
+ self.env.ref('base.main_company').write({'country_id': country.id})
diff --git a/company_country/readme/CONFIGURE.rst b/company_country/readme/CONFIGURE.rst
new file mode 100644
index 000000000..47a61effd
--- /dev/null
+++ b/company_country/readme/CONFIGURE.rst
@@ -0,0 +1,3 @@
+To configure this module, you need to:
+
+#. Set the environment variable COUNTRY using 2 letter of ISO 3166 codes.
diff --git a/company_country/readme/CONTRIBUTORS.rst b/company_country/readme/CONTRIBUTORS.rst
new file mode 100644
index 000000000..230f2b69b
--- /dev/null
+++ b/company_country/readme/CONTRIBUTORS.rst
@@ -0,0 +1,2 @@
+* Moisés López
+
diff --git a/company_country/readme/CREDITS.rst b/company_country/readme/CREDITS.rst
new file mode 100644
index 000000000..2f99b446d
--- /dev/null
+++ b/company_country/readme/CREDITS.rst
@@ -0,0 +1,2 @@
+Vauxoo
+
diff --git a/company_country/readme/DESCRIPTION.rst b/company_country/readme/DESCRIPTION.rst
new file mode 100644
index 000000000..3b4985157
--- /dev/null
+++ b/company_country/readme/DESCRIPTION.rst
@@ -0,0 +1,2 @@
+This module allow set a country to main company in order to use the hook of
+account that install l10n_** based on country of main company.
diff --git a/company_country/readme/INSTALL.rst b/company_country/readme/INSTALL.rst
new file mode 100644
index 000000000..8940b3f29
--- /dev/null
+++ b/company_country/readme/INSTALL.rst
@@ -0,0 +1,3 @@
+To install this module, you need to:
+
+#. Add as depends from your main module.
diff --git a/company_country/readme/USAGE.rst b/company_country/readme/USAGE.rst
new file mode 100644
index 000000000..6f0149c3f
--- /dev/null
+++ b/company_country/readme/USAGE.rst
@@ -0,0 +1,7 @@
+To use this module, you need to:
+
+#. Just start server installing your main module.
+
+.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
+ :alt: Try me on Runbot
+ :target: https://runbot.odoo-community.org/runbot/149/12.0
diff --git a/company_country/static/description/index.html b/company_country/static/description/index.html
new file mode 100644
index 000000000..f753d6094
--- /dev/null
+++ b/company_country/static/description/index.html
@@ -0,0 +1,452 @@
+
+
+
+
+
+
+Company Country
+
+
+
+
+
Company Country
+
+
+

+
This module allow set a country to main company in order to use the hook of
+account that install l10n_** based on country of main company.
+
Table of contents
+
+
+
+
To install this module, you need to:
+
+- Add as depends from your main module.
+
+
+
+
+
To configure this module, you need to:
+
+- Set the environment variable COUNTRY using 2 letter of ISO 3166 codes.
+
+
+
+
+
To use this module, you need to:
+
+- Just start server installing your main module.
+
+

+
+
+
+
Bugs are tracked on GitHub Issues.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us smashing it by providing a detailed and welcomed
+feedback.
+
Do not contact contributors directly about support or help with technical issues.
+
+
+
+
+
+
+
+
+
This module is maintained by the OCA.
+

+
OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
Current maintainer:
+

+
This module is part of the OCA/server-tools project on GitHub.
+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
+
+
+
+
+
diff --git a/company_country/tests/__init__.py b/company_country/tests/__init__.py
new file mode 100644
index 000000000..88b24c12e
--- /dev/null
+++ b/company_country/tests/__init__.py
@@ -0,0 +1,3 @@
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
+
+from . import test_company_country
diff --git a/company_country/tests/test_company_country.py b/company_country/tests/test_company_country.py
new file mode 100644
index 000000000..72a9f4eac
--- /dev/null
+++ b/company_country/tests/test_company_country.py
@@ -0,0 +1,46 @@
+# Copyright 2016 Vauxoo
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+import os
+
+from odoo.exceptions import ValidationError
+from odoo.tests.common import TransactionCase
+
+
+class TestCompanyCountry(TransactionCase):
+
+ def setUp(self):
+ super(TestCompanyCountry, self).setUp()
+ self.wizard = self.env['company.country.config.settings']
+ 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.main_company.write({'country_id': self.us_country.id})
+ self.env_country = os.environ.get('COUNTRY')
+
+ def tearDown(self):
+ super(TestCompanyCountry, self).tearDown()
+ os.environ['COUNTRY'] = self.env_country
+
+ def test01_company_country_changed(self):
+ self.wizard.load_company_country(country_code='MX')
+ self.assertEqual(self.main_company.country_id, self.mx_country)
+
+ def test02_country_environment_values(self):
+ # Country Code unknown, should raise
+ with self.assertRaises(ValidationError):
+ self.wizard.load_company_country(country_code='BAD')
+
+ # COUNTRY as empty string, should unset Country of main company
+ os.environ['COUNTRY'] = ""
+ self.wizard.load_company_country()
+ self.assertEqual(self.main_company.country_id.id, False)
+
+ # COUNTRY environment variable not set, should raise
+ with self.assertRaises(ValidationError):
+ l10n_to_install = self.env['ir.module.module'].search([
+ ('state', '=', 'to install'),
+ ('name', '=like', 'l10n_%')])
+ l10n_to_install.write({'state': 'uninstalled'})
+ del os.environ['COUNTRY']
+ self.wizard.load_company_country()
From 38766a8fa782b08d0af9a7156361f5c413c79851 Mon Sep 17 00:00:00 2001
From: oca-travis
Date: Wed, 13 Nov 2019 19:19:59 +0000
Subject: [PATCH 2/4] [UPD] Update company_country.pot
---
company_country/i18n/company_country.pot | 67 ++++++++++++++++++++++++
1 file changed, 67 insertions(+)
create mode 100644 company_country/i18n/company_country.pot
diff --git a/company_country/i18n/company_country.pot b/company_country/i18n/company_country.pot
new file mode 100644
index 000000000..fd4925afe
--- /dev/null
+++ b/company_country/i18n/company_country.pot
@@ -0,0 +1,67 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * company_country
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 12.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: company_country
+#: model:ir.model,name:company_country.model_company_country_config_settings
+msgid "Company Country Configuration Settings"
+msgstr ""
+
+#. module: company_country
+#: code:addons/company_country/models/res_config.py:34
+#, python-format
+msgid "Country code %s not found. Use ISO 3166 codes 2 letters"
+msgstr ""
+
+#. module: company_country
+#: model:ir.model.fields,field_description:company_country.field_company_country_config_settings__create_uid
+msgid "Created by"
+msgstr ""
+
+#. module: company_country
+#: model:ir.model.fields,field_description:company_country.field_company_country_config_settings__create_date
+msgid "Created on"
+msgstr ""
+
+#. module: company_country
+#: model:ir.model.fields,field_description:company_country.field_company_country_config_settings__display_name
+msgid "Display Name"
+msgstr ""
+
+#. module: company_country
+#: code:addons/company_country/models/res_config.py:26
+#, python-format
+msgid "Error COUNTRY environment variable with country code not defined and no localization found in pool."
+msgstr ""
+
+#. module: company_country
+#: model:ir.model.fields,field_description:company_country.field_company_country_config_settings__id
+msgid "ID"
+msgstr ""
+
+#. module: company_country
+#: model:ir.model.fields,field_description:company_country.field_company_country_config_settings____last_update
+msgid "Last Modified on"
+msgstr ""
+
+#. module: company_country
+#: model:ir.model.fields,field_description:company_country.field_company_country_config_settings__write_uid
+msgid "Last Updated by"
+msgstr ""
+
+#. module: company_country
+#: model:ir.model.fields,field_description:company_country.field_company_country_config_settings__write_date
+msgid "Last Updated on"
+msgstr ""
+
From 52fdd00826c8851bde8f3170440962bff952d22f Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Wed, 13 Nov 2019 19:47:41 +0000
Subject: [PATCH 3/4] [ADD] icon.png
---
company_country/static/description/icon.png | Bin 0 -> 9455 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 company_country/static/description/icon.png
diff --git a/company_country/static/description/icon.png b/company_country/static/description/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d
GIT binary patch
literal 9455
zcmW++2RxMjAAjx~&dlBk9S+%}OXg)AGE&Cb*&}d0jUxM@u(PQx^-s)697TX`ehR4?GS^qbkof1cslKgkU)h65qZ9Oc=ml_0temigYLJfnz{IDzUf>bGs4N!v3=Z3jMq&A#7%rM5eQ#dc?k~!
zVpnB`o+K7|Al`Q_U;eD$B
zfJtP*jH`siUq~{KE)`jP2|#TUEFGRryE2`i0**z#*^6~AI|YzIWy$Cu#CSLW3q=GA
z6`?GZymC;dCPk~rBS%eCb`5OLr;RUZ;D`}um=H)BfVIq%7VhiMr)_#G0N#zrNH|__
zc+blN2UAB0=617@>_u;MPHN;P;N#YoE=)R#i$k_`UAA>WWCcEVMh~L_
zj--gtp&|K1#58Yz*AHCTMziU1Jzt_jG0I@qAOHsk$2}yTmVkBp_eHuY$A9)>P6o~I
z%aQ?!(GqeQ-Y+b0I(m9pwgi(IIZZzsbMv+9w{PFtd_<_(LA~0H(xz{=FhLB@(1&qHA5EJw1>>=%q2f&^X>IQ{!GJ4e9U
z&KlB)z(84HmNgm2hg2C0>WM{E(DdPr+EeU_N@57;PC2&DmGFW_9kP&%?X4}+xWi)(
z;)z%wI5>D4a*5XwD)P--sPkoY(a~WBw;E~AW`Yue4kFa^LM3X`8x|}ZUeMnqr}>kH
zG%WWW>3ml$Yez?i%)2pbKPI7?5o?hydokgQyZsNEr{a|mLdt;X2TX(#B1j35xPnPW
z*bMSSOauW>o;*=kO8ojw91VX!qoOQb)zHJ!odWB}d+*K?#sY_jqPdg{Sm2HdYzdEx
zOGVPhVRTGPtv0o}RfVP;Nd(|CB)I;*t&QO8h
zFfekr30S!-LHmV_Su-W+rEwYXJ^;6&3|L$mMC8*bQptyOo9;>Qb9Q9`ySe3%V$A*9
zeKEe+b0{#KWGp$F+tga)0RtI)nhMa-K@JS}2krK~n8vJ=Ngm?R!9G<~RyuU0d?nz#
z-5EK$o(!F?hmX*2Yt6+coY`6jGbb7tF#6nHA
zuKk=GGJ;ZwON1iAfG$E#Y7MnZVmrY|j0eVI(DN_MNFJmyZ|;w4tf@=CCDZ#5N_0K=
z$;R~bbk?}TpfDjfB&aiQ$VA}s?P}xPERJG{kxk5~R`iRS(SK5d+Xs9swCozZISbnS
zk!)I0>t=A<-^z(cmSFz3=jZ23u13X><0b)P)^1T_))Kr`e!-pb#q&J*Q`p+B6la%C
zuVl&0duN<;uOsB3%T9Fp8t{ED108)`y_~Hnd9AUX7h-H?jVuU|}My+C=TjH(jKz
zqMVr0re3S$H@t{zI95qa)+Crz*5Zj}Ao%4Z><+W(nOZd?gDnfNBC3>M8WE61$So|P
zVvqH0SNtDTcsUdzaMDpT=Ty0pDHHNL@Z0w$Y`XO
z2M-_r1S+GaH%pz#Uy0*w$Vdl=X=rQXEzO}d6J^R6zjM1u&c9vYLvLp?W7w(?np9x1
zE_0JSAJCPB%i7p*Wvg)pn5T`8k3-uR?*NT|J`eS#_#54p>!p(mLDvmc-3o0mX*mp_
zN*AeS<>#^-{S%W<*mz^!X$w_2dHWpcJ6^j64qFBft-o}o_Vx80o0>}Du;>kLts;$8
zC`7q$QI(dKYG`Wa8#wl@V4jVWBRGQ@1dr-hstpQL)Tl+aqVpGpbSfN>5i&QMXfiZ>
zaA?T1VGe?rpQ@;+pkrVdd{klI&jVS@I5_iz!=UMpTsa~mBga?1r}aRBm1WS;TT*s0f0lY=JBl66Upy)-k4J}lh=P^8(SXk~0xW=T9v*B|gzIhN
z>qsO7dFd~mgxAy4V?&)=5ieYq?zi?ZEoj)&2o)RLy=@hbCRcfT5jigwtQGE{L*8<@Yd{zg;CsL5mvzfDY}P-wos_6PfprFVaeqNE%h
zKZhLtcQld;ZD+>=nqN~>GvROfueSzJD&BE*}XfU|H&(FssBqY=hPCt`d
zH?@s2>I(|;fcW&YM6#V#!kUIP8$Nkdh0A(bEVj``-AAyYgwY~jB
zT|I7Bf@%;7aL7Wf4dZ%VqF$eiaC38OV6oy3Z#TER2G+fOCd9Iaoy6aLYbPTN{XRPz
z;U!V|vBf%H!}52L2gH_+j;`bTcQRXB+y9onc^wLm5wi3-Be}U>k_u>2Eg$=k!(l@I
zcCg+flakT2Nej3i0yn+g+}%NYb?ta;R?(g5SnwsQ49U8Wng8d|{B+lyRcEDvR3+`O{zfmrmvFrL6acVP%yG98X
zo&+VBg@px@i)%o?dG(`T;n*$S5*rnyiR#=wW}}GsAcfyQpE|>a{=$Hjg=-*_K;UtD
z#z-)AXwSRY?OPefw^iI+
z)AXz#PfEjlwTes|_{sB?4(O@fg0AJ^g8gP}ex9Ucf*@_^J(s_5jJV}c)s$`Myn|Kd
z$6>}#q^n{4vN@+Os$m7KV+`}c%4)4pv@06af4-x5#wj!KKb%caK{A&Y#Rfs
z-po?Dcb1({W=6FKIUirH&(yg=*6aLCekcKwyfK^JN5{wcA3nhO(o}SK#!CINhI`-I
z1)6&n7O&ZmyFMuNwvEic#IiOAwNkR=u5it{B9n2sAJV5pNhar=j5`*N!Na;c7g!l$
z3aYBqUkqqTJ=Re-;)s!EOeij=7SQZ3Hq}ZRds%IM*PtM$wV
z@;rlc*NRK7i3y5BETSKuumEN`Xu_8GP1Ri=OKQ$@I^ko8>H6)4rjiG5{VBM>B|%`&&s^)jS|-_95&yc=GqjNo{zFkw%%HHhS~e=s
zD#sfS+-?*t|J!+ozP6KvtOl!R)@@-z24}`9{QaVLD^9VCSR2b`b!KC#o;Ki<+wXB6
zx3&O0LOWcg4&rv4QG0)4yb}7BFSEg~=IR5#ZRj8kg}dS7_V&^%#Do==#`u
zpy6{ox?jWuR(;pg+f@mT>#HGWHAJRRDDDv~@(IDw&R>9643kK#HN`!1vBJHnC+RM&yIh8{gG2q
zA%e*U3|N0XSRa~oX-3EAneep)@{h2vvd3Xvy$7og(sayr@95+e6~Xvi1tUqnIxoIH
zVWo*OwYElb#uyW{Imam6f2rGbjR!Y3`#gPqkv57dB6K^wRGxc9B(t|aYDGS=m$&S!NmCtrMMaUg(c
zc2qC=2Z`EEFMW-me5B)24AqF*bV5Dr-M5ig(l-WPS%CgaPzs6p_gnCIvTJ=Y<6!gT
zVt@AfYCzjjsMEGi=rDQHo0yc;HqoRNnNFeWZgcm?f;cp(6CNylj36DoL(?TS7eU#+
z7&mfr#y))+CJOXQKUMZ7QIdS9@#-}7y2K1{8)cCt0~-X0O!O?Qx#E4Og+;A2SjalQ
zs7r?qn0H044=sDN$SRG$arw~n=+T_DNdSrarmu)V6@|?1-ZB#hRn`uilTGPJ@fqEy
zGt(f0B+^JDP&f=r{#Y_wi#AVDf-y!RIXU^0jXsFpf>=Ji*TeqSY!H~AMbJdCGLhC)
zn7Rx+sXw6uYj;WRYrLd^5IZq@6JI1C^YkgnedZEYy<&4(z%Q$5yv#Boo{AH8n$a
zhb4Y3PWdr269&?V%uI$xMcUrMzl=;w<_nm*qr=c3Rl@i5wWB;e-`t7D&c-mcQl7x!
zZWB`UGcw=Y2=}~wzrfLx=uet<;m3~=8I~ZRuzvMQUQdr+yTV|ATf1Uuomr__nDf=X
zZ3WYJtHp_ri(}SQAPjv+Y+0=fH4krOP@S&=zZ-t1jW1o@}z;xk8
z(Nz1co&El^HK^NrhVHa-_;&88vTU>_J33=%{if;BEY*J#1n59=07jrGQ#IP>@u#3A
z;!q+E1Rj3ZJ+!4bq9F8PXJ@yMgZL;>&gYA0%_Kbi8?S=XGM~dnQZQ!yBSgcZhY96H
zrWnU;k)qy`rX&&xlDyA%(a1Hhi5CWkmg(`Gb%m(HKi-7Z!LKGRP_B8@`7&hdDy5n=
z`OIxqxiVfX@OX1p(mQu>0Ai*v_cTMiw4qRt3~NBvr9oBy0)r>w3p~V0SCm=An6@3n)>@z!|o-$HvDK
z|3D2ZMJkLE5loMKl6R^ez@Zz%S$&mbeoqH5`Bb){Ei21q&VP)hWS2tjShfFtGE+$z
zzCR$P#uktu+#!w)cX!lWN1XU%K-r=s{|j?)Akf@q#3b#{6cZCuJ~gCxuMXRmI$nGtnH+-h
z+GEi!*X=AP<|fG`1>MBdTb?28JYc=fGvAi2I<$B(rs$;eoJCyR6_bc~p!XR@O-+sD
z=eH`-ye})I5ic1eL~TDmtfJ|8`0VJ*Yr=hNCd)G1p2MMz4C3^Mj?7;!w|Ly%JqmuW
zlIEW^Ft%z?*|fpXda>Jr^1noFZEwFgVV%|*XhH@acv8rdGxeEX{M$(vG{Zw+x(ei@
zmfXb22}8-?Fi`vo-YVrTH*C?a8%M=Hv9MqVH7H^J$KsD?>!SFZ;ZsvnHr_gn=7acz
z#W?0eCdVhVMWN12VV^$>WlQ?f;P^{(&pYTops|btm6aj>_Uz+hqpGwB)vWp0Cf5y<
zft8-je~nn?W11plq}N)4A{l8I7$!ks_x$PXW-2XaRFswX_BnF{R#6YIwMhAgd5F9X
zGmwdadS6(a^fjHtXg8=l?Rc0Sm%hk6E9!5cLVloEy4eh(=FwgP`)~I^5~pBEWo+F6
zSf2ncyMurJN91#cJTy_u8Y}@%!bq1RkGC~-bV@SXRd4F{R-*V`bS+6;W5vZ(&+I<9$;-V|eNfLa5n-6%
z2(}&uGRF;p92eS*sE*oR$@pexaqr*meB)VhmIg@h{uzkk$9~qh#cHhw#>O%)b@+(|
z^IQgqzuj~Sk(J;swEM-3TrJAPCq9k^^^`q{IItKBRXYe}e0Tdr=Huf7da3$l4PdpwWDop%^}n;dD#K4s#DYA8SHZ
z&1!riV4W4R7R#C))JH1~axJ)RYnM$$lIR%6fIVA@zV{XVyx}C+a-Dt8Y9M)^KU0+H
zR4IUb2CJ{Hg>CuaXtD50jB(_Tcx=Z$^WYu2u5kubqmwp%drJ6
z?Fo40g!Qd<-l=TQxqHEOuPX0;^z7iX?Ke^a%XT<13TA^5`4Xcw6D@Ur&VT&CUe0d}
z1GjOVF1^L@>O)l@?bD~$wzgf(nxX1OGD8fEV?TdJcZc2KoUe|oP1#=$$7ee|xbY)A
zDZq+cuTpc(fFdj^=!;{k03C69lMQ(|>uhRfRu%+!k&YOi-3|1QKB
z
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
Xviia!U7SGha1wx#SCgwmn*{w2TRX*I
literal 0
HcmV?d00001
From a3ee13d0168f6d8207907785c5dc19d5b5639604 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mois=C3=A9s=20L=C3=B3pez?=
Date: Wed, 13 Nov 2019 19:02:36 -0600
Subject: [PATCH 4/4] [MIG] company_country: Migration to 13.0
---
.travis.yml | 1 +
company_country/README.rst | 12 +++---
company_country/__manifest__.py | 8 ++--
company_country/i18n/company_country.pot | 2 +-
company_country/models/res_config.py | 33 +++++++++-------
company_country/readme/CONTRIBUTORS.rst | 1 -
company_country/readme/CREDITS.rst | 1 -
company_country/readme/DESCRIPTION.rst | 2 +-
company_country/readme/USAGE.rst | 2 +-
company_country/static/description/index.html | 8 ++--
company_country/tests/test_company_country.py | 39 +++++++++++--------
11 files changed, 60 insertions(+), 49 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 7048b77b5..b8a0f4c79 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -35,6 +35,7 @@ jobs:
env:
global:
- VERSION="13.0" TESTS="0" LINT_CHECK="0" MAKEPOT="0"
+ - COUNTRY="US"
install:
- git clone --depth=1 https://github.com/OCA/maintainer-quality-tools.git ${HOME}/maintainer-quality-tools
diff --git a/company_country/README.rst b/company_country/README.rst
index 7ad8e2d56..5b8b730e8 100644
--- a/company_country/README.rst
+++ b/company_country/README.rst
@@ -14,13 +14,13 @@ Company Country
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github
- :target: https://github.com/OCA/server-tools/tree/12.0/company_country
+ :target: https://github.com/OCA/server-tools/tree/13.0/company_country
:alt: OCA/server-tools
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/server-tools-12-0/server-tools-12-0-company_country
+ :target: https://translation.odoo-community.org/projects/server-tools-13-0/server-tools-13-0-company_country
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/149/12.0
+ :target: https://runbot.odoo-community.org/runbot/149/13.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -56,7 +56,7 @@ To use this module, you need to:
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
- :target: https://runbot.odoo-community.org/runbot/149/12.0
+ :target: https://runbot.odoo-community.org/runbot/149/13.0
Bug Tracker
===========
@@ -64,7 +64,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-`feedback `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -109,6 +109,6 @@ Current `maintainer `__:
|maintainer-moylop260|
-This module is part of the `OCA/server-tools `_ project on GitHub.
+This module is part of the `OCA/server-tools `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/company_country/__manifest__.py b/company_country/__manifest__.py
index fad56b085..109a2339a 100644
--- a/company_country/__manifest__.py
+++ b/company_country/__manifest__.py
@@ -3,14 +3,14 @@
{
"name": "Company Country",
"summary": "Set country to main company",
- "version": "12.0.1.0.0",
+ "version": "13.0.1.0.0",
"category": "base",
- "website": "https://github.com/OCA/server-tools/tree/12.0/company_country",
- "maintainers": ['moylop260'],
+ "website": "https://github.com/OCA/server-tools/tree/13.0/company_country",
+ "maintainers": ["moylop260"],
"author": "Vauxoo, Odoo Community Association (OCA)",
"license": "AGPL-3",
"depends": [],
- "data": ['data/res_config.xml'],
+ "data": ["data/res_config.xml"],
"sequence": 1,
"auto_install": False,
"installable": True,
diff --git a/company_country/i18n/company_country.pot b/company_country/i18n/company_country.pot
index fd4925afe..2d801cc6e 100644
--- a/company_country/i18n/company_country.pot
+++ b/company_country/i18n/company_country.pot
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 12.0\n"
+"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: <>\n"
"Language-Team: \n"
diff --git a/company_country/models/res_config.py b/company_country/models/res_config.py
index ab2721234..7346ff350 100644
--- a/company_country/models/res_config.py
+++ b/company_country/models/res_config.py
@@ -7,29 +7,34 @@ from odoo.exceptions import ValidationError
class CompanyCountryConfigSettings(models.TransientModel):
- _name = 'company.country.config.settings'
- _description = 'Company Country Configuration Settings'
+ _name = "company.country.config.settings"
+ _description = "Company Country Configuration Settings"
@api.model
def load_company_country(self, country_code=None):
if not country_code:
- country_code = os.environ.get('COUNTRY')
+ 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": None})
return
if not country_code:
- l10n_to_install = self.env['ir.module.module'].search([
- ('state', '=', 'to install'),
- ('name', '=like', 'l10n_%')], limit=1)
+ l10n_to_install = self.env["ir.module.module"].search(
+ [("state", "=", "to install"), ("name", "=like", "l10n_%")], limit=1
+ )
if not l10n_to_install:
raise ValidationError(
- _('Error COUNTRY environment variable with country code '
- 'not defined and no localization found in pool.'))
- country_code = l10n_to_install.name.split('l10n_')[1][:2].upper()
+ _(
+ "Error COUNTRY environment variable with country code "
+ "not defined and no localization found in pool."
+ )
+ )
+ country_code = l10n_to_install.name.split("l10n_")[1][:2].upper()
- country = self.env['res.country'].search([
- ('code', 'ilike', country_code)], limit=1)
+ country = self.env["res.country"].search(
+ [("code", "ilike", country_code)], limit=1
+ )
if not country:
raise ValidationError(
- _('Country code %s not found. Use ISO 3166 codes 2 letters'))
- self.env.ref('base.main_company').write({'country_id': country.id})
+ _("Country code %s not found. Use ISO 3166 codes 2 letters")
+ )
+ self.env.ref("base.main_company").write({"country_id": country.id})
diff --git a/company_country/readme/CONTRIBUTORS.rst b/company_country/readme/CONTRIBUTORS.rst
index 230f2b69b..aecc7027e 100644
--- a/company_country/readme/CONTRIBUTORS.rst
+++ b/company_country/readme/CONTRIBUTORS.rst
@@ -1,2 +1 @@
* Moisés López
-
diff --git a/company_country/readme/CREDITS.rst b/company_country/readme/CREDITS.rst
index 2f99b446d..d0ec12698 100644
--- a/company_country/readme/CREDITS.rst
+++ b/company_country/readme/CREDITS.rst
@@ -1,2 +1 @@
Vauxoo
-
diff --git a/company_country/readme/DESCRIPTION.rst b/company_country/readme/DESCRIPTION.rst
index 3b4985157..09aa697f9 100644
--- a/company_country/readme/DESCRIPTION.rst
+++ b/company_country/readme/DESCRIPTION.rst
@@ -1,2 +1,2 @@
-This module allow set a country to main company in order to use the hook of
+This module allow set a country to main company in order to use the hook of
account that install l10n_** based on country of main company.
diff --git a/company_country/readme/USAGE.rst b/company_country/readme/USAGE.rst
index 6f0149c3f..cb3673b3c 100644
--- a/company_country/readme/USAGE.rst
+++ b/company_country/readme/USAGE.rst
@@ -4,4 +4,4 @@ To use this module, you need to:
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
- :target: https://runbot.odoo-community.org/runbot/149/12.0
+ :target: https://runbot.odoo-community.org/runbot/149/13.0
diff --git a/company_country/static/description/index.html b/company_country/static/description/index.html
index f753d6094..21a70a48a 100644
--- a/company_country/static/description/index.html
+++ b/company_country/static/description/index.html
@@ -367,7 +367,7 @@ ul.auto-toc {
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-

+

This module allow set a country to main company in order to use the hook of
account that install l10n_** based on country of main company.
Table of contents
@@ -406,14 +406,14 @@ account that install l10n_** based on country of main company.
- Just start server installing your main module.
-
+
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-feedback.
+
feedback.
Do not contact contributors directly about support or help with technical issues.
diff --git a/company_country/tests/test_company_country.py b/company_country/tests/test_company_country.py
index 72a9f4eac..0ac2d0fee 100644
--- a/company_country/tests/test_company_country.py
+++ b/company_country/tests/test_company_country.py
@@ -8,39 +8,46 @@ from odoo.tests.common import TransactionCase
class TestCompanyCountry(TransactionCase):
-
def setUp(self):
super(TestCompanyCountry, self).setUp()
- self.wizard = self.env['company.country.config.settings']
- 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.main_company.write({'country_id': self.us_country.id})
- self.env_country = os.environ.get('COUNTRY')
+ self.wizard = self.env["company.country.config.settings"]
+ 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.main_company.write({"country_id": self.us_country.id})
+ self.env_country = os.environ.get("COUNTRY")
def tearDown(self):
super(TestCompanyCountry, self).tearDown()
- os.environ['COUNTRY'] = self.env_country
+ os.environ["COUNTRY"] = self.env_country
def test01_company_country_changed(self):
- self.wizard.load_company_country(country_code='MX')
+ self.wizard.load_company_country(country_code="MX")
self.assertEqual(self.main_company.country_id, self.mx_country)
def test02_country_environment_values(self):
# Country Code unknown, should raise
with self.assertRaises(ValidationError):
- self.wizard.load_company_country(country_code='BAD')
+ self.wizard.load_company_country(country_code="BAD")
# COUNTRY as empty string, should unset Country of main company
- os.environ['COUNTRY'] = ""
+ os.environ["COUNTRY"] = ""
self.wizard.load_company_country()
self.assertEqual(self.main_company.country_id.id, False)
+ def test03_conuntry_environ_not_set(self):
+ del os.environ["COUNTRY"]
+
+ # COUNTRY environment not set but l10n marked to install
+ l10n_mx = self.env["ir.module.module"].search([("name", "=", "l10n_mx")])
+ l10n_mx.write({"state": "to install"})
+ self.wizard.load_company_country()
+ self.assertEqual(self.main_company.country_id, self.mx_country)
+
# COUNTRY environment variable not set, should raise
with self.assertRaises(ValidationError):
- l10n_to_install = self.env['ir.module.module'].search([
- ('state', '=', 'to install'),
- ('name', '=like', 'l10n_%')])
- l10n_to_install.write({'state': 'uninstalled'})
- del os.environ['COUNTRY']
+ l10n_to_install = self.env["ir.module.module"].search(
+ [("state", "=", "to install"), ("name", "=like", "l10n_%")]
+ )
+ l10n_to_install.write({"state": "uninstalled"})
self.wizard.load_company_country()