[MIG] base_import_match: Migration to 14.0

This commit is contained in:
Jesus Ramoneda
2021-02-25 17:19:14 +01:00
committed by Augusto Weiss
parent 5c7cbfddc0
commit a8b5e3835e
8 changed files with 60 additions and 6 deletions

View File

@@ -14,13 +14,13 @@ Base Import Match
: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--backend-lightgray.png?logo=github
:target: https://github.com/OCA/server-backend/tree/13.0/base_import_match
:target: https://github.com/OCA/server-backend/tree/14.0/base_import_match
:alt: OCA/server-backend
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/server-backend-13-0/server-backend-13-0-base_import_match
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/253/13.0
:target: https://runbot.odoo-community.org/runbot/253/14.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -151,6 +151,6 @@ 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.
This module is part of the `OCA/server-backend <https://github.com/OCA/server-backend/tree/13.0/base_import_match>`_ project on GitHub.
This module is part of the `OCA/server-backend <https://github.com/OCA/server-backend/tree/14.0/base_import_match>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

@@ -35,6 +35,7 @@ class Base(models.AbstractModel):
if xmlid:
# Skip rows with ID, they do not need all this
row["id"] = xmlid
newdata.append(tuple(row[f] for f in clean_fields))
continue
elif dbid:
# Find the xmlid for this dbid

View File

@@ -160,13 +160,16 @@ class BaseImportMatchField(models.Model):
)
@api.depends("conditional", "field_id", "imported_value")
def _compute_display_name(self):
def name_get(self):
result = []
for one in self:
pattern = u"{name} ({cond})" if one.conditional else u"{name}"
one.display_name = pattern.format(
name = pattern.format(
name=one.field_id.name,
cond=one.imported_value,
)
result.append((one.id, name))
return result
@api.onchange("field_id", "match_id", "conditional", "imported_value")
def _onchange_match_id_name(self):

View File

@@ -0,0 +1,2 @@
.id,vat,name
10,BE099999999,Deco Addict External DBID Changed
1 .id vat name
2 10 BE099999999 Deco Addict External DBID Changed

View File

@@ -0,0 +1,2 @@
id,vat,name
base.res_partner_2,BE077777777,Deco Addict External ID Changed
1 id vat name
2 base.res_partner_2 BE077777777 Deco Addict External ID Changed

View File

@@ -0,0 +1,2 @@
name,vat,is_company
Deco Addict Changed,BE0477472701,False
1 name vat is_company
2 Deco Addict Changed BE0477472701 False

View File

@@ -27,6 +27,22 @@ class ImportCase(TransactionCase):
}
)
def test_res_partner_external_id(self):
"""Change name based on External ID."""
deco_addict = self.env.ref("base.res_partner_2")
record = self._base_import_record("res.partner", "res_partner_external_id")
record.do(["id", "vat", "name"], [], OPTIONS)
deco_addict.env.cache.invalidate()
self.assertEqual(deco_addict.name, "Deco Addict External ID Changed")
def test_res_partner_dbid(self):
"""Change name based on DB ID."""
deco_addict = self.env.ref("base.res_partner_2")
record = self._base_import_record("res.partner", "res_partner_dbid")
record.do([".id", "vat", "name"], [], OPTIONS)
deco_addict.env.cache.invalidate()
self.assertEqual(deco_addict.name, "Deco Addict External DBID Changed")
def test_res_partner_vat(self):
"""Change name based on VAT."""
deco_addict = self.env.ref("base.res_partner_2")
@@ -36,6 +52,17 @@ class ImportCase(TransactionCase):
deco_addict.env.cache.invalidate()
self.assertEqual(deco_addict.name, "Deco Addict Changed")
def test_res_partner_invalid_combination_vat(self):
"""Change name based on VAT."""
deco_addict = self.env.ref("base.res_partner_2")
deco_addict.vat = "BE0477472701"
record = self._base_import_record(
"res.partner", "res_partner_invalid_combination_vat"
)
record.do(["name", "vat", "is_company"], [], OPTIONS)
deco_addict.env.cache.invalidate()
self.assertEqual(deco_addict.name, deco_addict.name)
def test_res_partner_parent_name_is_company(self):
"""Change email based on parent_id, name and is_company."""
record = self._base_import_record(
@@ -63,6 +90,16 @@ class ImportCase(TransactionCase):
self.env.ref("base.res_partner_address_4").function, "Function Changed"
)
def test_res_partner_name_duplicated(self):
"""Change function based on name."""
record = self._base_import_record("res.partner", "res_partner_name")
partner_1 = self.env.ref("base.res_partner_address_4")
partner_2 = self.env.ref("base.res_partner_2")
function = partner_1.function
partner_2.name = partner_1.name
record.do(["function", "name"], [], OPTIONS)
self.assertEqual(self.env.ref("base.res_partner_address_4").function, function)
def test_res_users_login(self):
"""Change name based on login."""
record = self._base_import_record("res.users", "res_users_login")

View File

@@ -69,6 +69,13 @@
</search>
</field>
</record>
<act_window name="Import Match" res_model="base_import.match" id="match_action" />
<record id="match_action" model="ir.actions.act_window">
<field name="type">ir.actions.act_window</field>
<field name="name">Import Match</field>
<field name="res_model">base_import.match</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem id="match_menu" action="match_action" parent="base.next_id_9" />
</odoo>