mirror of
https://github.com/OCA/server-backend.git
synced 2025-02-18 09:52:42 +02:00
[MIG] base_import_match: Migration to 14.0
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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):
|
||||
|
||||
2
base_import_match/tests/import_data/res_partner_dbid.csv
Normal file
2
base_import_match/tests/import_data/res_partner_dbid.csv
Normal file
@@ -0,0 +1,2 @@
|
||||
.id,vat,name
|
||||
10,BE099999999,Deco Addict External DBID Changed
|
||||
|
@@ -0,0 +1,2 @@
|
||||
id,vat,name
|
||||
base.res_partner_2,BE077777777,Deco Addict External ID Changed
|
||||
|
@@ -0,0 +1,2 @@
|
||||
name,vat,is_company
|
||||
Deco Addict Changed,BE0477472701,False
|
||||
|
@@ -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")
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user