| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/server-backend |
| GIT | |
| GIT | https://github.com/OCA/server-backend.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/server-backend/tree/18.0/base_import_match |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Tools |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, Celina Devigili |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/server-backend |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:19 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base_import - web - base |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | By default, when importing data (like CSV import) with the `base_import`
module, Odoo follows this rule:
- If you import the XMLID of a record, make an **update**.
- If you do not, **create** a new record.
This module allows you to set additional rules to match if a given
import is an update or a new record.
This is useful when you need to sync heterogeneous databases, and the
field you use to match records in those databases with Odoo's is not the
XMLID but the name, VAT, email, etc.
After installing this module, the import logic will be changed to:
- If you import the XMLID of a record, make an **update**.
- If you do not:
- If there are import match rules for the model you are importing:
- Discard the rules that require fields you are not importing.
- Traverse the remaining rules one by one in order to find a match
in the database.
- Skip the rule if it requires a special condition that is not
satisfied.
- If one match is found:
- Stop traversing the rest of valid rules.
- **Update** that record.
- If zero or multiple matches are found:
- Continue with the next rule.
- If all rules are exhausted and no single match is found:
- **Create** a new record.
- If there are no match rules for your model:
- **Create** a new record.
By default 2 rules are installed for production instances:
- One rule that will allow you to update companies based on their VAT,
when `is_company` is `True`.
- One rule that will allow you to update users based on their login.
In demo instances there are more examples. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
match_form_view |
Import match form view | base_import.match | form | New |
match_search_view |
Import match search view | base_import.match | search | New |
match_tree_view |
Import match list view | base_import.match | list | New |
No new fields.
Public methods (1)load(self, fields, data)
field_ids
One2many → base_import.match.field
comodel_name='base_import.match.field'
help='Fields that will define an unique key.'
inverse_name='match_id'
required=True
string='Fields'
model_id
Many2one → ir.model
domain=[('transient', '=', False)]
help='In this model you will apply the match.'
ondelete='cascade'
required=True
args: 'ir.model', 'Model'
model_name
Char
index=True
related='model_id.model'
store=True
string='Model name'
name
Char
compute='_compute_name'
index=True
store=True
sequence
Integer
index=True
No public methods.
conditional
Boolean
help='Enable if you want to use this field only in some conditions.'
field_id
Many2one → ir.model.fields
comodel_name='ir.model.fields'
domain="[('model_id', '=', model_id)]"
help='Field that will be part of an unique key.'
ondelete='cascade'
required=True
string='Field'
imported_value
Char
help="If the imported value is not this, the whole matching rule will be discarded. Be careful, this data is always treated as a string, and comparison is case-sensitive so if you set 'True', it will NOT match '1' nor 'true', only EXACTLY 'True'."
match_id
Many2one → base_import.match
comodel_name='base_import.match'
ondelete='cascade'
required=True
string='Match'
model_id
Many2one
related='match_id.model_id'
name
Char
related='field_id.name'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/server-backend |
| GIT | |
| GIT | https://github.com/OCA/server-backend.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/server-backend/tree/17.0/base_import_match |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Tools |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | OCA-git-bot, oca-ci, sygel |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/server-backend |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:20:11 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base_import - web - base |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | By default, when importing data (like CSV import) with the `base_import`
module, Odoo follows this rule:
- If you import the XMLID of a record, make an **update**.
- If you do not, **create** a new record.
This module allows you to set additional rules to match if a given
import is an update or a new record.
This is useful when you need to sync heterogeneous databases, and the
field you use to match records in those databases with Odoo's is not the
XMLID but the name, VAT, email, etc.
After installing this module, the import logic will be changed to:
- If you import the XMLID of a record, make an **update**.
- If you do not:
- If there are import match rules for the model you are importing:
- Discard the rules that require fields you are not importing.
- Traverse the remaining rules one by one in order to find a match
in the database.
- Skip the rule if it requires a special condition that is not
satisfied.
- If one match is found:
- Stop traversing the rest of valid rules.
- **Update** that record.
- If zero or multiple matches are found:
- Continue with the next rule.
- If all rules are exhausted and no single match is found:
- **Create** a new record.
- If there are no match rules for your model:
- **Create** a new record.
By default 2 rules are installed for production instances:
- One rule that will allow you to update companies based on their VAT,
when `is_company` is `True`.
- One rule that will allow you to update users based on their login.
In demo instances there are more examples. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
match_form_view |
Import match form view | base_import.match | form | New |
match_search_view |
Import match search view | base_import.match | search | New |
match_tree_view |
Import match tree view | base_import.match | tree | New |
No new fields.
Public methods (1)load(self, fields, data)
field_ids
One2many → base_import.match.field
comodel_name='base_import.match.field'
help='Fields that will define an unique key.'
inverse_name='match_id'
required=True
string='Fields'
model_id
Many2one → ir.model
domain=[('transient', '=', False)]
help='In this model you will apply the match.'
ondelete='cascade'
required=True
args: 'ir.model', 'Model'
model_name
Char
index=True
related='model_id.model'
store=True
string='Model name'
name
Char
compute='_compute_name'
index=True
store=True
sequence
Integer
index=True
No public methods.
conditional
Boolean
help='Enable if you want to use this field only in some conditions.'
field_id
Many2one → ir.model.fields
comodel_name='ir.model.fields'
domain="[('model_id', '=', model_id)]"
help='Field that will be part of an unique key.'
ondelete='cascade'
required=True
string='Field'
imported_value
Char
help="If the imported value is not this, the whole matching rule will be discarded. Be careful, this data is always treated as a string, and comparison is case-sensitive so if you set 'True', it will NOT match '1' nor 'true', only EXACTLY 'True'."
match_id
Many2one → base_import.match
comodel_name='base_import.match'
ondelete='cascade'
required=True
string='Match'
model_id
Many2one
related='match_id.model_id'
name
Char
related='field_id.name'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/server-backend |
| GIT | |
| GIT | https://github.com/OCA/server-backend.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/server-backend/tree/16.0/base_import_match |
| VERSION | |
| VERSION | 1.1.0 |
| CATEGORY | |
| CATEGORY | Tools |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, Gil Arasa Verge, anjeel.haria |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/server-backend |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:54:00 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base_import - web - base |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
match_form_view |
Import match form view | base_import.match | form | New |
match_search_view |
Import match search view | base_import.match | search | New |
match_tree_view |
Import match tree view | base_import.match | tree | New |
No new fields.
Public methods (1)load(self, fields, data)
field_ids
One2many → base_import.match.field
comodel_name='base_import.match.field'
help='Fields that will define an unique key.'
inverse_name='match_id'
required=True
string='Fields'
model_id
Many2one → ir.model
domain=[('transient', '=', False)]
help='In this model you will apply the match.'
ondelete='cascade'
required=True
args: 'ir.model', 'Model'
model_name
Char
index=True
related='model_id.model'
store=True
string='Model name'
name
Char
compute='_compute_name'
index=True
store=True
sequence
Integer
index=True
No public methods.
conditional
Boolean
help='Enable if you want to use this field only in some conditions.'
field_id
Many2one → ir.model.fields
comodel_name='ir.model.fields'
domain="[('model_id', '=', model_id)]"
help='Field that will be part of an unique key.'
ondelete='cascade'
required=True
string='Field'
imported_value
Char
help="If the imported value is not this, the whole matching rule will be discarded. Be careful, this data is always treated as a string, and comparison is case-sensitive so if you set 'True', it will NOT match '1' nor 'true', only EXACTLY 'True'."
match_id
Many2one → base_import.match
comodel_name='base_import.match'
ondelete='cascade'
required=True
string='Match'
model_id
Many2one
related='match_id.model_id'
name
Char
related='field_id.name'
name_get(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/server-backend |
| GIT | |
| GIT | https://github.com/OCA/server-backend.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/server-backend/tree/15.0/base_import_match |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Tools |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Sébastien Alix, Augusto Weiss, Weblate, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/server-backend |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:46:43 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base_import - web - base |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
match_form_view |
Import match form view | base_import.match | form | New |
match_search_view |
Import match search view | base_import.match | search | New |
match_tree_view |
Import match tree view | base_import.match | tree | New |
No new fields.
Public methods (1)load(self, fields, data)
field_ids
One2many → base_import.match.field
comodel_name='base_import.match.field'
help='Fields that will define an unique key.'
inverse_name='match_id'
required=True
string='Fields'
model_id
Many2one → ir.model
domain=[('transient', '=', False)]
help='In this model you will apply the match.'
ondelete='cascade'
required=True
args: 'ir.model', 'Model'
model_name
Char
index=True
related='model_id.model'
store=True
string='Model name'
name
Char
compute='_compute_name'
index=True
store=True
sequence
Integer
index=True
No public methods.
conditional
Boolean
help='Enable if you want to use this field only in some conditions.'
field_id
Many2one → ir.model.fields
comodel_name='ir.model.fields'
domain="[('model_id', '=', model_id)]"
help='Field that will be part of an unique key.'
ondelete='cascade'
required=True
string='Field'
imported_value
Char
help="If the imported value is not this, the whole matching rule will be discarded. Be careful, this data is always treated as a string, and comparison is case-sensitive so if you set 'True', it will NOT match '1' nor 'true', only EXACTLY 'True'."
match_id
Many2one → base_import.match
comodel_name='base_import.match'
ondelete='cascade'
required=True
string='Match'
model_id
Many2one
related='match_id.model_id'
name
Char
related='field_id.name'
name_get(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/server-backend |
| GIT | |
| GIT | https://github.com/OCA/server-backend.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/server-backend/tree/14.0/base_import_match |
| VERSION | |
| VERSION | 1.0.2 |
| CATEGORY | |
| CATEGORY | Tools |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Daniel Reis, Enric Tobella, OCA Transbot, oca-travis, Weblate, OCA-git-bot, oca-ci, Jesus Ramoneda, oca-git-bot |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/server-backend |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:41:12 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base_import - web - base |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
match_form_view |
Import match form view | base_import.match | form | New |
match_search_view |
Import match search view | base_import.match | search | New |
match_tree_view |
Import match tree view | base_import.match | tree | New |
No new fields.
Public methods (1)load(self, fields, data)
field_ids
One2many → base_import.match.field
comodel_name='base_import.match.field'
help='Fields that will define an unique key.'
inverse_name='match_id'
required=True
string='Fields'
model_id
Many2one → ir.model
domain=[('transient', '=', False)]
help='In this model you will apply the match.'
ondelete='cascade'
required=True
args: 'ir.model', 'Model'
model_name
Char
index=True
related='model_id.model'
store=True
string='Model name'
name
Char
compute='_compute_name'
index=True
store=True
sequence
Integer
index=True
No public methods.
conditional
Boolean
help='Enable if you want to use this field only in some conditions.'
field_id
Many2one → ir.model.fields
comodel_name='ir.model.fields'
domain="[('model_id', '=', model_id)]"
help='Field that will be part of an unique key.'
ondelete='cascade'
required=True
string='Field'
imported_value
Char
help="If the imported value is not this, the whole matching rule will be discarded. Be careful, this data is always treated as a string, and comparison is case-sensitive so if you set 'True', it will NOT match '1' nor 'true', only EXACTLY 'True'."
match_id
Many2one → base_import.match
comodel_name='base_import.match'
ondelete='cascade'
required=True
string='Match'
model_id
Many2one
related='match_id.model_id'
name
Char
related='field_id.name'
name_get(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/server-backend |
| GIT | |
| GIT | https://github.com/OCA/server-backend.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/server-backend/tree/13.0/base_import_match |
| VERSION | |
| VERSION | 1.0.3 |
| CATEGORY | |
| CATEGORY | Tools |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Katherine Zaoral, JordiMForgeFlow, oca-travis, Weblate, OCA-git-bot, Radovan Skolnik, Rad0van |
| WEBSITE | |
| WEBSITE | https://tecnativa.com |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:20 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base_import - web - base |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
match_form_view |
Import match form view | base_import.match | form | New |
match_search_view |
Import match search view | base_import.match | search | New |
match_tree_view |
Import match tree view | base_import.match | tree | New |
No new fields.
Public methods (1)load(self, fields, data)
field_ids
One2many → base_import.match.field
comodel_name='base_import.match.field'
help='Fields that will define an unique key.'
inverse_name='match_id'
required=True
string='Fields'
model_id
Many2one → ir.model
domain=[('transient', '=', False)]
help='In this model you will apply the match.'
ondelete='cascade'
required=True
args: 'ir.model', 'Model'
model_name
Char
index=True
related='model_id.model'
store=True
string='Model name'
name
Char
compute='_compute_name'
index=True
store=True
sequence
Integer
index=True
No public methods.
conditional
Boolean
help='Enable if you want to use this field only in some conditions.'
field_id
Many2one → ir.model.fields
comodel_name='ir.model.fields'
domain="[('model_id', '=', model_id)]"
help='Field that will be part of an unique key.'
ondelete='cascade'
required=True
string='Field'
imported_value
Char
help="If the imported value is not this, the whole matching rule will be discarded. Be careful, this data is always treated as a string, and comparison is case-sensitive so if you set 'True', it will NOT match '1' nor 'true', only EXACTLY 'True'."
match_id
Many2one → base_import.match
comodel_name='base_import.match'
ondelete='cascade'
required=True
string='Match'
model_id
Many2one
related='match_id.model_id'
name
Char
related='field_id.name'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/server-backend |
| GIT | |
| GIT | https://github.com/OCA/server-backend.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/server-backend/tree/12.0/base_import_match |
| VERSION | |
| VERSION | 1.1.1 |
| CATEGORY | |
| CATEGORY | Tools |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Daniel Reis, OCA Transbot, oca-travis, Weblate, OCA-git-bot, ernesto, hugues de keyzer |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/server-backend |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:29:25 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base_import - web - base |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
match_form_view |
Import match form view | base_import.match | form | New |
match_search_view |
Import match search view | base_import.match | search | New |
match_tree_view |
Import match tree view | base_import.match | tree | New |
No new fields.
Public methods (1)load(self, fields, data)
field_ids
One2many → base_import.match.field
comodel_name='base_import.match.field'
help='Fields that will define an unique key.'
inverse_name='match_id'
required=True
string='Fields'
model_id
Many2one → ir.model
domain=[('transient', '=', False)]
help='In this model you will apply the match.'
ondelete='cascade'
required=True
args: 'ir.model', 'Model'
model_name
Char
index=True
related='model_id.model'
store=True
string='Model name'
name
Char
compute='_compute_name'
index=True
store=True
sequence
Integer
index=True
No public methods.
conditional
Boolean
help='Enable if you want to use this field only in some conditions.'
field_id
Many2one → ir.model.fields
comodel_name='ir.model.fields'
domain="[('model_id', '=', model_id)]"
help='Field that will be part of an unique key.'
ondelete='cascade'
required=True
string='Field'
imported_value
Char
help="If the imported value is not this, the whole matching rule will be discarded. Be careful, this data is always treated as a string, and comparison is case-sensitive so if you set 'True', it will NOT match '1' nor 'true', only EXACTLY 'True'."
match_id
Many2one → base_import.match
comodel_name='base_import.match'
ondelete='cascade'
required=True
string='Match'
model_id
Many2one
related='match_id.model_id'
name
Char
related='field_id.name'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/server-backend |
| GIT | |
| GIT | https://github.com/OCA/server-backend.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/server-backend/tree/11.0/base_import_match |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Tools |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), Grupo ESOC Ingeniería de Servicios |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), Grupo ESOC Ingeniería de Servicios |
| COMMITTERS | |
| COMMITTERS | oca-travis, Weblate, OCA-git-bot, Marçal Isern |
| WEBSITE | |
| WEBSITE | https://tecnativa.com |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:24:02 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base_import - web - base |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
match_form_view |
Import match form view | base_import.match | form | New |
match_search_view |
Import match search view | base_import.match | search | New |
match_tree_view |
Import match tree view | base_import.match | tree | New |
No new fields.
Public methods (1)load(self, fields, data)
field_ids
One2many → base_import.match.field
comodel_name='base_import.match.field'
help='Fields that will define an unique key.'
inverse_name='match_id'
required=True
string='Fields'
model_id
Many2one → ir.model
domain=[('transient', '=', False)]
help='In this model you will apply the match.'
ondelete='cascade'
required=True
args: 'ir.model', 'Model'
model_name
Char
index=True
related='model_id.model'
store=True
name
Char
compute='_compute_name'
index=True
store=True
sequence
Integer
index=True
No public methods.
conditional
Boolean
help='Enable if you want to use this field only in some conditions.'
field_id
Many2one → ir.model.fields
comodel_name='ir.model.fields'
domain="[('model_id', '=', model_id)]"
help='Field that will be part of an unique key.'
ondelete='cascade'
required=True
string='Field'
imported_value
Char
help="If the imported value is not this, the whole matching rule will be discarded. Be careful, this data is always treated as a string, and comparison is case-sensitive so if you set 'True', it will NOT match '1' nor 'true', only EXACTLY 'True'."
match_id
Many2one → base_import.match
comodel_name='base_import.match'
ondelete='cascade'
required=True
string='Match'
model_id
Many2one
related='match_id.model_id'
name
Char
related='field_id.name'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/server-tools |
| GIT | |
| GIT | https://github.com/OCA/server-tools.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/server-tools/tree/10.0/base_import_match |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Tools |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), Grupo ESOC Ingeniería de Servicios |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), Grupo ESOC Ingeniería de Servicios |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, OCA Transbot, oca-travis, Weblate |
| WEBSITE | |
| WEBSITE | https://tecnativa.com |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:20:00 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base_import - web - base - web_kanban |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
match_form_view |
Import match form view | base_import.match | form | New |
match_search_view |
Import match search view | base_import.match | search | New |
match_tree_view |
Import match tree view | base_import.match | tree | New |
No new fields.
Public methods (1)load(self, fields, data)
field_ids
One2many → base_import.match.field
comodel_name='base_import.match.field'
help='Fields that will define an unique key.'
inverse_name='match_id'
required=True
string='Fields'
model_id
Many2one → ir.model
domain=[('transient', '=', False)]
help='In this model you will apply the match.'
ondelete='cascade'
required=True
args: 'ir.model', 'Model'
model_name
Char
index=True
related='model_id.model'
store=True
name
Char
compute='_compute_name'
index=True
store=True
sequence
Integer
index=True
No public methods.
conditional
Boolean
help='Enable if you want to use this field only in some conditions.'
field_id
Many2one → ir.model.fields
comodel_name='ir.model.fields'
domain="[('model_id', '=', model_id)]"
help='Field that will be part of an unique key.'
ondelete='cascade'
required=True
string='Field'
imported_value
Char
help="If the imported value is not this, the whole matching rule will be discarded. Be careful, this data is always treated as a string, and comparison is case-sensitive so if you set 'True', it will NOT match '1' nor 'true', only EXACTLY 'True'."
match_id
Many2one → base_import.match
comodel_name='base_import.match'
ondelete='cascade'
required=True
string='Match'
model_id
Many2one
related='match_id.model_id'
name
Char
related='field_id.name'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/server-tools |
| GIT | |
| GIT | https://github.com/OCA/server-tools.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/server-tools/tree/9.0/base_import_match |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Tools |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), Grupo ESOC Ingeniería de Servicios |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), Grupo ESOC Ingeniería de Servicios |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Jairo Llopis, OCA Transbot, oca-travis, Weblate |
| WEBSITE | |
| WEBSITE | https://tecnativa.com |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:15:23 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base_import - web - base |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
match_form_view |
Import match form view | base_import.match | form | New |
match_search_view |
Import match search view | base_import.match | search | New |
match_tree_view |
Import match tree view | base_import.match | tree | New |
field_ids
One2many → base_import.match.field
comodel_name='base_import.match.field'
help='Fields that will define an unique key.'
inverse_name='match_id'
required=True
string='Fields'
model_id
Many2one → ir.model
domain=[('transient', '=', False)]
help='In this model you will apply the match.'
ondelete='cascade'
required=True
args: 'ir.model', 'Model'
model_name
Char
index=True
related='model_id.model'
store=True
name
Char
compute='_compute_name'
index=True
store=True
sequence
Integer
index=True
create(self, vals)
unlink(self)
write(self, vals)
conditional
Boolean
help='Enable if you want to use this field only in some conditions.'
field_id
Many2one → ir.model.fields
comodel_name='ir.model.fields'
domain="[('model_id', '=', model_id)]"
help='Field that will be part of an unique key.'
ondelete='cascade'
required=True
string='Field'
imported_value
Char
help="If the imported value is not this, the whole matching rule will be discarded. Be careful, this data is always treated as a string, and comparison is case-sensitive so if you set 'True', it will NOT match '1' nor 'true', only EXACTLY 'True'."
match_id
Many2one → base_import.match
comodel_name='base_import.match'
ondelete='cascade'
required=True
string='Match'
model_id
Many2one
related='match_id.model_id'
name
Char
related='field_id.name'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/server-tools |
| GIT | |
| GIT | https://github.com/OCA/server-tools.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/server-tools/tree/8.0/base_import_match |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Tools |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Grupo ESOC Ingeniería de Servicios |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Grupo ESOC Ingeniería de Servicios |
| COMMITTERS | |
| COMMITTERS | Jairo Llopis, Moisés López, Stéphane Bidoul (ACSONE), OCA Transbot, Moises Lopez - https://www.vauxoo.com/, oca-travis, Weblate |
| WEBSITE | |
| WEBSITE | https://grupoesoc.es |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:11:25 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base_import - web - base |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
match_form_view |
Import match form view | base_import.match | form | New |
match_search_view |
Import match search view | base_import.match | search | New |
match_tree_view |
Import match tree view | base_import.match | tree | New |
field_ids
One2many → base_import.match.field
comodel_name='base_import.match.field'
help='Fields that will define an unique key.'
inverse_name='match_id'
required=True
string='Fields'
model_id
Many2one → ir.model
domain=[('osv_memory', '=', False)]
help='In this model you will apply the match.'
ondelete='cascade'
required=True
args: 'ir.model', 'Model'
model_name
Char
index=True
related='model_id.model'
store=True
name
Char
compute='_compute_name'
index=True
store=True
sequence
Integer
index=True
create(self, vals)
unlink(self)
write(self, vals)
conditional
Boolean
help='Enable if you want to use this field only in some conditions.'
field_id
Many2one → ir.model.fields
comodel_name='ir.model.fields'
domain="[('model_id', '=', model_id)]"
help='Field that will be part of an unique key.'
ondelete='cascade'
required=True
string='Field'
imported_value
Char
help="If the imported value is not this, the whole matching rule will be discarded. Be careful, this data is always treated as a string, and comparison is case-sensitive so if you set 'True', it will NOT match '1' nor 'true', only EXACTLY 'True'."
match_id
Many2one → base_import.match
comodel_name='base_import.match'
ondelete='cascade'
required=True
string='Match'
model_id
Many2one
related='match_id.model_id'
name
Char
related='field_id.name'
No public methods.
| STATUS | |
|---|---|
| STATUS | Open migration PR - not merged yet for this version |
| REPOSITORY | |
| REPOSITORY | OCA/server-backend |
| PULL REQUEST | |
| PULL REQUEST | [19.0][MIG] base_import_match: Migration to 19.0 (#467) |