mirror of
https://github.com/OCA/server-backend.git
synced 2025-02-18 09:52:42 +02:00
[MIG] base_import_match: Migration to 15.0
This commit is contained in:
committed by
anjeel.haria
parent
883110ad91
commit
8efe66fe1a
@@ -4,7 +4,7 @@
|
|||||||
{
|
{
|
||||||
"name": "Base Import Match",
|
"name": "Base Import Match",
|
||||||
"summary": "Try to avoid duplicates before importing",
|
"summary": "Try to avoid duplicates before importing",
|
||||||
"version": "14.0.1.0.0",
|
"version": "15.0.1.0.0",
|
||||||
"category": "Tools",
|
"category": "Tools",
|
||||||
"website": "https://github.com/OCA/server-backend",
|
"website": "https://github.com/OCA/server-backend",
|
||||||
"author": "Tecnativa, " "Odoo Community Association (OCA)",
|
"author": "Tecnativa, " "Odoo Community Association (OCA)",
|
||||||
|
|||||||
@@ -18,6 +18,14 @@ class Base(models.AbstractModel):
|
|||||||
# We only need to patch this call if there are usable rules for it
|
# We only need to patch this call if there are usable rules for it
|
||||||
if self.env["base_import.match"]._usable_rules(self._name, fields):
|
if self.env["base_import.match"]._usable_rules(self._name, fields):
|
||||||
newdata = list()
|
newdata = list()
|
||||||
|
# Change .id (dbid) by id (xmlid)
|
||||||
|
if ".id" in fields:
|
||||||
|
column = fields.index(".id")
|
||||||
|
fields[column] = "id"
|
||||||
|
# data[0][column] = "id"
|
||||||
|
for values in data:
|
||||||
|
dbid = int(values[column])
|
||||||
|
values[column] = self.browse(dbid).get_external_id().get(dbid)
|
||||||
# Data conversion to ORM format
|
# Data conversion to ORM format
|
||||||
import_fields = list(map(models.fix_import_export_id_paths, fields))
|
import_fields = list(map(models.fix_import_export_id_paths, fields))
|
||||||
converted_data = self._convert_records(
|
converted_data = self._convert_records(
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
.id,vat,name
|
10,BE0999999999,Deco Addict External DBID Changed
|
||||||
10,BE099999999,Deco Addict External DBID Changed
|
11,BE0888888888,Gemini Furniture External DBID Changed
|
||||||
|
|||||||
|
@@ -1,2 +1 @@
|
|||||||
email,name
|
|
||||||
floyd.steward34@example.com,Floyd Steward Changed
|
floyd.steward34@example.com,Floyd Steward Changed
|
||||||
|
|||||||
|
@@ -1,2 +1 @@
|
|||||||
id,vat,name
|
|
||||||
base.res_partner_2,BE077777777,Deco Addict External ID Changed
|
base.res_partner_2,BE077777777,Deco Addict External ID Changed
|
||||||
|
|||||||
|
@@ -1,2 +1 @@
|
|||||||
name,vat,is_company
|
|
||||||
Deco Addict Changed,BE0477472701,False
|
Deco Addict Changed,BE0477472701,False
|
||||||
|
|||||||
|
@@ -1,2 +1 @@
|
|||||||
function,name
|
|
||||||
Function Changed,Floyd Steward
|
Function Changed,Floyd Steward
|
||||||
|
|||||||
|
@@ -1,2 +1 @@
|
|||||||
name,is_company,parent_id/id,email
|
|
||||||
Floyd Steward,False,base.res_partner_2,floyd.steward34.changed@example.com
|
Floyd Steward,False,base.res_partner_2,floyd.steward34.changed@example.com
|
||||||
|
|||||||
|
@@ -1,2 +1 @@
|
|||||||
name,vat,is_company
|
|
||||||
Deco Addict Changed,BE0477472701,True
|
Deco Addict Changed,BE0477472701,True
|
||||||
|
|||||||
|
@@ -1,2 +1 @@
|
|||||||
login,name
|
|
||||||
demo,Demo User Changed
|
demo,Demo User Changed
|
||||||
|
|||||||
|
@@ -31,24 +31,28 @@ class ImportCase(TransactionCase):
|
|||||||
"""Change name based on External ID."""
|
"""Change name based on External ID."""
|
||||||
deco_addict = self.env.ref("base.res_partner_2")
|
deco_addict = self.env.ref("base.res_partner_2")
|
||||||
record = self._base_import_record("res.partner", "res_partner_external_id")
|
record = self._base_import_record("res.partner", "res_partner_external_id")
|
||||||
record.do(["id", "vat", "name"], [], OPTIONS)
|
record.execute_import(["id", "vat", "name"], [], OPTIONS)
|
||||||
deco_addict.env.cache.invalidate()
|
deco_addict.env.cache.invalidate()
|
||||||
self.assertEqual(deco_addict.name, "Deco Addict External ID Changed")
|
self.assertEqual(deco_addict.name, "Deco Addict External ID Changed")
|
||||||
|
|
||||||
def test_res_partner_dbid(self):
|
def test_res_partner_dbid(self):
|
||||||
"""Change name based on DB ID."""
|
"""Change name based on DB ID."""
|
||||||
deco_addict = self.env.ref("base.res_partner_2")
|
deco_addict = self.env.ref("base.res_partner_2")
|
||||||
|
gemini_furniture = self.env.ref("base.res_partner_3")
|
||||||
record = self._base_import_record("res.partner", "res_partner_dbid")
|
record = self._base_import_record("res.partner", "res_partner_dbid")
|
||||||
record.do([".id", "vat", "name"], [], OPTIONS)
|
record.execute_import([".id", "vat", "name"], [], OPTIONS)
|
||||||
deco_addict.env.cache.invalidate()
|
deco_addict.env.cache.invalidate()
|
||||||
self.assertEqual(deco_addict.name, "Deco Addict External DBID Changed")
|
self.assertEqual(deco_addict.name, "Deco Addict External DBID Changed")
|
||||||
|
self.assertEqual(
|
||||||
|
gemini_furniture.name, "Gemini Furniture External DBID Changed"
|
||||||
|
)
|
||||||
|
|
||||||
def test_res_partner_vat(self):
|
def test_res_partner_vat(self):
|
||||||
"""Change name based on VAT."""
|
"""Change name based on VAT."""
|
||||||
deco_addict = self.env.ref("base.res_partner_2")
|
deco_addict = self.env.ref("base.res_partner_2")
|
||||||
deco_addict.vat = "BE0477472701"
|
deco_addict.vat = "BE0477472701"
|
||||||
record = self._base_import_record("res.partner", "res_partner_vat")
|
record = self._base_import_record("res.partner", "res_partner_vat")
|
||||||
record.do(["name", "vat", "is_company"], [], OPTIONS)
|
record.execute_import(["name", "vat", "is_company"], [], OPTIONS)
|
||||||
deco_addict.env.cache.invalidate()
|
deco_addict.env.cache.invalidate()
|
||||||
self.assertEqual(deco_addict.name, "Deco Addict Changed")
|
self.assertEqual(deco_addict.name, "Deco Addict Changed")
|
||||||
|
|
||||||
@@ -59,7 +63,7 @@ class ImportCase(TransactionCase):
|
|||||||
record = self._base_import_record(
|
record = self._base_import_record(
|
||||||
"res.partner", "res_partner_invalid_combination_vat"
|
"res.partner", "res_partner_invalid_combination_vat"
|
||||||
)
|
)
|
||||||
record.do(["name", "vat", "is_company"], [], OPTIONS)
|
record.execute_import(["name", "vat", "is_company"], [], OPTIONS)
|
||||||
deco_addict.env.cache.invalidate()
|
deco_addict.env.cache.invalidate()
|
||||||
self.assertEqual(deco_addict.name, deco_addict.name)
|
self.assertEqual(deco_addict.name, deco_addict.name)
|
||||||
|
|
||||||
@@ -68,7 +72,9 @@ class ImportCase(TransactionCase):
|
|||||||
record = self._base_import_record(
|
record = self._base_import_record(
|
||||||
"res.partner", "res_partner_parent_name_is_company"
|
"res.partner", "res_partner_parent_name_is_company"
|
||||||
)
|
)
|
||||||
record.do(["name", "is_company", "parent_id/id", "email"], [], OPTIONS)
|
record.execute_import(
|
||||||
|
["name", "is_company", "parent_id/id", "email"], [], OPTIONS
|
||||||
|
)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
self.env.ref("base.res_partner_address_4").email,
|
self.env.ref("base.res_partner_address_4").email,
|
||||||
"floyd.steward34.changed@example.com",
|
"floyd.steward34.changed@example.com",
|
||||||
@@ -77,7 +83,7 @@ class ImportCase(TransactionCase):
|
|||||||
def test_res_partner_email(self):
|
def test_res_partner_email(self):
|
||||||
"""Change name based on email."""
|
"""Change name based on email."""
|
||||||
record = self._base_import_record("res.partner", "res_partner_email")
|
record = self._base_import_record("res.partner", "res_partner_email")
|
||||||
record.do(["email", "name"], [], OPTIONS)
|
record.execute_import(["email", "name"], [], OPTIONS)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
self.env.ref("base.res_partner_address_4").name, "Floyd Steward Changed"
|
self.env.ref("base.res_partner_address_4").name, "Floyd Steward Changed"
|
||||||
)
|
)
|
||||||
@@ -85,7 +91,7 @@ class ImportCase(TransactionCase):
|
|||||||
def test_res_partner_name(self):
|
def test_res_partner_name(self):
|
||||||
"""Change function based on name."""
|
"""Change function based on name."""
|
||||||
record = self._base_import_record("res.partner", "res_partner_name")
|
record = self._base_import_record("res.partner", "res_partner_name")
|
||||||
record.do(["function", "name"], [], OPTIONS)
|
record.execute_import(["function", "name"], [], OPTIONS)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
self.env.ref("base.res_partner_address_4").function, "Function Changed"
|
self.env.ref("base.res_partner_address_4").function, "Function Changed"
|
||||||
)
|
)
|
||||||
@@ -97,11 +103,11 @@ class ImportCase(TransactionCase):
|
|||||||
partner_2 = self.env.ref("base.res_partner_2")
|
partner_2 = self.env.ref("base.res_partner_2")
|
||||||
function = partner_1.function
|
function = partner_1.function
|
||||||
partner_2.name = partner_1.name
|
partner_2.name = partner_1.name
|
||||||
record.do(["function", "name"], [], OPTIONS)
|
record.execute_import(["function", "name"], [], OPTIONS)
|
||||||
self.assertEqual(self.env.ref("base.res_partner_address_4").function, function)
|
self.assertEqual(self.env.ref("base.res_partner_address_4").function, function)
|
||||||
|
|
||||||
def test_res_users_login(self):
|
def test_res_users_login(self):
|
||||||
"""Change name based on login."""
|
"""Change name based on login."""
|
||||||
record = self._base_import_record("res.users", "res_users_login")
|
record = self._base_import_record("res.users", "res_users_login")
|
||||||
record.do(["login", "name"], [], OPTIONS)
|
record.execute_import(["login", "name"], [], OPTIONS)
|
||||||
self.assertEqual(self.env.ref("base.user_demo").name, "Demo User Changed")
|
self.assertEqual(self.env.ref("base.user_demo").name, "Demo User Changed")
|
||||||
|
|||||||
@@ -44,7 +44,7 @@
|
|||||||
<field name="name">Import match tree view</field>
|
<field name="name">Import match tree view</field>
|
||||||
<field name="model">base_import.match</field>
|
<field name="model">base_import.match</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="Import Match">
|
<tree>
|
||||||
<field name="name" />
|
<field name="name" />
|
||||||
<field name="sequence" invisible="True" />
|
<field name="sequence" invisible="True" />
|
||||||
</tree>
|
</tree>
|
||||||
|
|||||||
Reference in New Issue
Block a user