Manage model export profiles

base_export_manager
REPOSITORY
REPOSITORYOCA/server-ux
GIT
GIThttps://github.com/OCA/server-ux.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-ux/tree/18.0/base_export_manager
VERSION
VERSION 1.0.2
CATEGORY
CATEGORYPersonalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), LasLabs, Ursa Information Systems, brain-tec AG
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), LasLabs, Ursa Information Systems, brain-tec AG
COMMITTERS
COMMITTERSVíctor Martínez, OCA-git-bot, oca-ci, bt-crodriguez
WEBSITE
WEBSITEhttps://github.com/OCA/server-ux
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:16
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - web
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module extends the export capability:

1.  It allows an admin to manage export profiles (`ir.exports`) that
    Odoo stores internally but does not show anywhere.
2.  It also adds a new column to access rights to enable/disable export
    and override the export method to check if the user is allowed to
    export. Export is enabled by default.

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
ir_exports_form_view Export Profile form ir.exports form New
ir_exports_tree_view Export Profile tree ir.exports list New
ir_model_access_view_form ir.model.access.form.base_export_manager ir.model.access xpath Inherits base.ir_access_view_form
ir_model_access_view_tree ir.model.access.list.base_export_manager ir.model.access xpath Inherits base.ir_access_view_tree
ir_model_access_view_tree_edition ir.model.access.list.edition.base_export_manager ir.model.access xpath Inherits base.ir_access_view_tree_edition
ir_model_view_form ir.model.form.base_export_manager ir.model xpath Inherits base.view_model_form
res_groups_view_form res.groups.form res.groups xpath Inherits base.view_groups_form
Models touched (5)

New fields (3)
  • model_id Many2one → ir.model
    compute='_compute_model_id' compute_sudo=True domain=[('transient', '=', False)] help='Database model to export.' inverse='_inverse_model_id' store=True args: 'ir.model', 'Model'
  • name Char
    required=True
  • resource Char
    help="Model's technical name." readonly=True
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi
    Check required values when creating the record. Odoo's export dialog populates ``resource``, while this module's new form populates ``model_id``. At least one of them is required to trigger the methods that fill up the other, so this should fail if one is missing.

New fields (11)
  • field1_id Many2one → ir.model.fields
    domain="[('model_id', '=', model1_id)]" args: 'ir.model.fields', 'First field'
  • field2_id Many2one → ir.model.fields
    domain="[('model_id', '=', model2_id)]" args: 'ir.model.fields', 'Second field'
  • field3_id Many2one → ir.model.fields
    domain="[('model_id', '=', model3_id)]" args: 'ir.model.fields', 'Third field'
  • field4_id Many2one → ir.model.fields
    domain="[('model_id', '=', model4_id)]" args: 'ir.model.fields', 'Fourth field'
  • label Char
    compute='_compute_label' compute_sudo=True
  • model1_id Many2one → ir.model
    readonly=True related='export_id.model_id' related_sudo=True args: 'ir.model', 'First model'
  • model2_id Many2one → ir.model
    compute='_compute_model2_id' compute_sudo=True args: 'ir.model', 'Second model'
  • model3_id Many2one → ir.model
    compute='_compute_model3_id' compute_sudo=True args: 'ir.model', 'Third model'
  • model4_id Many2one → ir.model
    compute='_compute_model4_id' compute_sudo=True args: 'ir.model', 'Fourth model'
  • name Char
    compute='_compute_name' compute_sudo=True help="Field's technical name." inverse='_inverse_name' store=True
  • sequence Integer
Public methods (2)
  • field_n(self, n, only_name=False)
    Helper to choose the field according to its indentation level. :param int n: Number of the indentation level to choose the field, from 1 to 3. :param bool only_name: Return only the field name, or return its value.
  • model_n(self, n, only_name=False)
    Helper to choose the model according to its indentation level. :param int n: Number of the indentation level to choose the model, from 1 to 3. :param bool only_name: Return only the model name, or return its value.

New fields (0)

No new fields.

Public methods (1)
  • session_info(self)
    Odoo implementation doesn't allow add more access types, so we send all models where the user has the 'export' access over the session dictionary. TODO: Use other way to don't send all this data every time.

New fields (1)
  • perm_export Boolean
    default=True args: 'Export Access'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • fetch_export_models(self)
    @api.model
    Gets all models where the user has export access.
REPOSITORY
REPOSITORYOCA/server-ux
GIT
GIThttps://github.com/OCA/server-ux.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-ux/tree/17.0/base_export_manager
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYPersonalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), LasLabs, Ursa Information Systems, brain-tec AG
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), LasLabs, Ursa Information Systems, brain-tec AG
COMMITTERS
COMMITTERSVíctor Martínez, Weblate, OCA-git-bot, oca-ci, david-s73
WEBSITE
WEBSITEhttps://github.com/OCA/server-ux
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:08
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - web
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module extends the export capability:

1.  It allows an admin to manage export profiles (`ir.exports`) that
    Odoo stores internally but does not show anywhere.
2.  It also adds a new column to access rights to enable/disable export
    and override the export method to check if the user is allowed to
    export. Export is enabled by default.

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
ir_exports_form_view Export Profile form ir.exports form New
ir_exports_tree_view Export Profile tree ir.exports tree New
ir_model_access_view_form ir.model.access.form.base_export_manager ir.model.access xpath Inherits base.ir_access_view_form
ir_model_access_view_tree ir.model.access.tree.base_export_manager ir.model.access xpath Inherits base.ir_access_view_tree
ir_model_access_view_tree_edition ir.model.access.tree.edition.base_export_manager ir.model.access xpath Inherits base.ir_access_view_tree_edition
ir_model_view_form ir.model.form.base_export_manager ir.model xpath Inherits base.view_model_form
res_groups_view_form res.groups.form res.groups xpath Inherits base.view_groups_form
Models touched (5)

New fields (3)
  • model_id Many2one → ir.model
    compute='_compute_model_id' compute_sudo=True domain=[('transient', '=', False)] help='Database model to export.' inverse='_inverse_model_id' store=True args: 'ir.model', 'Model'
  • name Char
    required=True
  • resource Char
    help="Model's technical name." readonly=True
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi
    Check required values when creating the record. Odoo's export dialog populates ``resource``, while this module's new form populates ``model_id``. At least one of them is required to trigger the methods that fill up the other, so this should fail if one is missing.

New fields (11)
  • field1_id Many2one → ir.model.fields
    domain="[('model_id', '=', model1_id)]" args: 'ir.model.fields', 'First field'
  • field2_id Many2one → ir.model.fields
    domain="[('model_id', '=', model2_id)]" args: 'ir.model.fields', 'Second field'
  • field3_id Many2one → ir.model.fields
    domain="[('model_id', '=', model3_id)]" args: 'ir.model.fields', 'Third field'
  • field4_id Many2one → ir.model.fields
    domain="[('model_id', '=', model4_id)]" args: 'ir.model.fields', 'Fourth field'
  • label Char
    compute='_compute_label' compute_sudo=True
  • model1_id Many2one → ir.model
    readonly=True related='export_id.model_id' related_sudo=True args: 'ir.model', 'First model'
  • model2_id Many2one → ir.model
    compute='_compute_model2_id' compute_sudo=True args: 'ir.model', 'Second model'
  • model3_id Many2one → ir.model
    compute='_compute_model3_id' compute_sudo=True args: 'ir.model', 'Third model'
  • model4_id Many2one → ir.model
    compute='_compute_model4_id' compute_sudo=True args: 'ir.model', 'Fourth model'
  • name Char
    compute='_compute_name' compute_sudo=True help="Field's technical name." inverse='_inverse_name' store=True
  • sequence Integer
Public methods (2)
  • field_n(self, n, only_name=False)
    Helper to choose the field according to its indentation level. :param int n: Number of the indentation level to choose the field, from 1 to 3. :param bool only_name: Return only the field name, or return its value.
  • model_n(self, n, only_name=False)
    Helper to choose the model according to its indentation level. :param int n: Number of the indentation level to choose the model, from 1 to 3. :param bool only_name: Return only the model name, or return its value.

New fields (0)

No new fields.

Public methods (1)
  • session_info(self)
    Odoo implementation doesn't allow add more access types, so we send all models where the user has the 'export' access over the session dictionary. TODO: Use other way to don't send all this data every time.

New fields (1)
  • perm_export Boolean
    default=True args: 'Export Access'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • fetch_export_models(self)
    @api.model
    Gets all models where the user has export access.
REPOSITORY
REPOSITORYOCA/server-ux
GIT
GIThttps://github.com/OCA/server-ux.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-ux/tree/16.0/base_export_manager
VERSION
VERSION 1.0.3
CATEGORY
CATEGORYPersonalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), LasLabs, Ursa Information Systems, brain-tec AG
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), LasLabs, Ursa Information Systems, brain-tec AG
COMMITTERS
COMMITTERSVíctor Martínez, Weblate, OCA-git-bot, oca-ci, Christopher Ormaza, Simon Maillard, Stefan
WEBSITE
WEBSITEhttps://github.com/OCA/server-ux
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:54
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - web
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
ir_exports_form_view Export Profile form ir.exports form New
ir_exports_tree_view Export Profile tree ir.exports tree New
ir_model_access_view_form ir.model.access.form.base_export_manager ir.model.access xpath Inherits base.ir_access_view_form
ir_model_access_view_tree ir.model.access.tree.base_export_manager ir.model.access xpath Inherits base.ir_access_view_tree
ir_model_access_view_tree_edition ir.model.access.tree.edition.base_export_manager ir.model.access xpath Inherits base.ir_access_view_tree_edition
ir_model_view_form ir.model.form.base_export_manager ir.model xpath Inherits base.view_model_form
res_groups_view_form res.groups.form res.groups xpath Inherits base.view_groups_form
Models touched (5)

New fields (3)
  • model_id Many2one → ir.model
    compute='_compute_model_id' compute_sudo=True domain=[('transient', '=', False)] help='Database model to export.' inverse='_inverse_model_id' store=True args: 'ir.model', 'Model'
  • name Char
    required=True
  • resource Char
    help="Model's technical name." readonly=True
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi
    Check required values when creating the record. Odoo's export dialog populates ``resource``, while this module's new form populates ``model_id``. At least one of them is required to trigger the methods that fill up the other, so this should fail if one is missing.

New fields (11)
  • field1_id Many2one → ir.model.fields
    domain="[('model_id', '=', model1_id)]" args: 'ir.model.fields', 'First field'
  • field2_id Many2one → ir.model.fields
    domain="[('model_id', '=', model2_id)]" args: 'ir.model.fields', 'Second field'
  • field3_id Many2one → ir.model.fields
    domain="[('model_id', '=', model3_id)]" args: 'ir.model.fields', 'Third field'
  • field4_id Many2one → ir.model.fields
    domain="[('model_id', '=', model4_id)]" args: 'ir.model.fields', 'Fourth field'
  • label Char
    compute='_compute_label' compute_sudo=True
  • model1_id Many2one → ir.model
    readonly=True related='export_id.model_id' related_sudo=True args: 'ir.model', 'First model'
  • model2_id Many2one → ir.model
    compute='_compute_model2_id' compute_sudo=True args: 'ir.model', 'Second model'
  • model3_id Many2one → ir.model
    compute='_compute_model3_id' compute_sudo=True args: 'ir.model', 'Third model'
  • model4_id Many2one → ir.model
    compute='_compute_model4_id' compute_sudo=True args: 'ir.model', 'Fourth model'
  • name Char
    compute='_compute_name' compute_sudo=True help="Field's technical name." inverse='_inverse_name' store=True
  • sequence Integer
Public methods (2)
  • field_n(self, n, only_name=False)
    Helper to choose the field according to its indentation level. :param int n: Number of the indentation level to choose the field, from 1 to 3. :param bool only_name: Return only the field name, or return its value.
  • model_n(self, n, only_name=False)
    Helper to choose the model according to its indentation level. :param int n: Number of the indentation level to choose the model, from 1 to 3. :param bool only_name: Return only the model name, or return its value.

New fields (0)

No new fields.

Public methods (1)
  • session_info(self)
    Odoo implementation doesn't allow add more access types, so we send all models where the user has the 'export' access over the session dictionary. TODO: Use other way to don't send all this data every time.

New fields (1)
  • perm_export Boolean
    default=True args: 'Export Access'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • fetch_export_models(self)
    @api.model
    Gets all models where the user has export access.
REPOSITORY
REPOSITORYOCA/server-ux
GIT
GIThttps://github.com/OCA/server-ux.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-ux/tree/15.0/base_export_manager
VERSION
VERSION 1.0.3
CATEGORY
CATEGORYPersonalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), LasLabs, Ursa Information Systems, brain-tec AG
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), LasLabs, Ursa Information Systems, brain-tec AG
COMMITTERS
COMMITTERSPedro M. Baeza, Víctor Martínez, nicolas, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/server-ux
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:39
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - web
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
ir_exports_form_view Export Profile form ir.exports form New
ir_exports_tree_view Export Profile tree ir.exports tree New
ir_model_access_view_form ir.model.access.form.base_export_manager ir.model.access xpath Inherits base.ir_access_view_form
ir_model_access_view_tree ir.model.access.tree.base_export_manager ir.model.access xpath Inherits base.ir_access_view_tree
ir_model_access_view_tree_edition ir.model.access.tree.edition.base_export_manager ir.model.access xpath Inherits base.ir_access_view_tree_edition
ir_model_view_form ir.model.form.base_export_manager ir.model xpath Inherits base.view_model_form
res_groups_view_form res.groups.form res.groups xpath Inherits base.view_groups_form
Models touched (5)

New fields (3)
  • model_id Many2one → ir.model
    compute='_compute_model_id' compute_sudo=True domain=[('transient', '=', False)] help='Database model to export.' inverse='_inverse_model_id' store=True args: 'ir.model', 'Model'
  • name Char
    required=True
  • resource Char
    help="Model's technical name." readonly=True
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi
    Check required values when creating the record. Odoo's export dialog populates ``resource``, while this module's new form populates ``model_id``. At least one of them is required to trigger the methods that fill up the other, so this should fail if one is missing.

New fields (11)
  • field1_id Many2one → ir.model.fields
    domain="[('model_id', '=', model1_id)]" args: 'ir.model.fields', 'First field'
  • field2_id Many2one → ir.model.fields
    domain="[('model_id', '=', model2_id)]" args: 'ir.model.fields', 'Second field'
  • field3_id Many2one → ir.model.fields
    domain="[('model_id', '=', model3_id)]" args: 'ir.model.fields', 'Third field'
  • field4_id Many2one → ir.model.fields
    domain="[('model_id', '=', model4_id)]" args: 'ir.model.fields', 'Fourth field'
  • label Char
    compute='_compute_label' compute_sudo=True
  • model1_id Many2one → ir.model
    readonly=True related='export_id.model_id' related_sudo=True args: 'ir.model', 'First model'
  • model2_id Many2one → ir.model
    compute='_compute_model2_id' compute_sudo=True args: 'ir.model', 'Second model'
  • model3_id Many2one → ir.model
    compute='_compute_model3_id' compute_sudo=True args: 'ir.model', 'Third model'
  • model4_id Many2one → ir.model
    compute='_compute_model4_id' compute_sudo=True args: 'ir.model', 'Fourth model'
  • name Char
    compute='_compute_name' compute_sudo=True help="Field's technical name." inverse='_inverse_name' store=True
  • sequence Integer
Public methods (2)
  • field_n(self, n, only_name=False)
    Helper to choose the field according to its indentation level. :param int n: Number of the indentation level to choose the field, from 1 to 3. :param bool only_name: Return only the field name, or return its value.
  • model_n(self, n, only_name=False)
    Helper to choose the model according to its indentation level. :param int n: Number of the indentation level to choose the model, from 1 to 3. :param bool only_name: Return only the model name, or return its value.

New fields (0)

No new fields.

Public methods (1)
  • session_info(self)
    Odoo implementation doesn't allow add more access types, so we send all models where the user has the 'export' access over the session dictionary. TODO: Use other way to don't send all this data every time.

New fields (1)
  • perm_export Boolean
    default=True args: 'Export Access'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • fetch_export_models(self)
    @api.model
    Gets all models where the user has export access.
REPOSITORY
REPOSITORYOCA/server-ux
GIT
GIThttps://github.com/OCA/server-ux.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-ux/tree/14.0/base_export_manager
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYPersonalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), LasLabs, Ursa Information Systems, brain-tec AG
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), LasLabs, Ursa Information Systems, brain-tec AG
COMMITTERS
COMMITTERSEnric Tobella, Pierre Verkest, OCA Transbot, Sébastien BEAU, oca-travis, Weblate, OCA-git-bot, oca-ci, Kevin Khao, oca-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/server-ux
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:07
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - web
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
assets_backend Add technical name to field items ir.ui.view qweb Inherits web.assets_backend
ir_exports_form_view Export Profile form ir.exports form New
ir_exports_tree_view Export Profile tree ir.exports tree New
ir_model_access_view_form ir.model.access.form.base_export_manager ir.model.access xpath Inherits base.ir_access_view_form
ir_model_access_view_tree ir.model.access.tree.base_export_manager ir.model.access xpath Inherits base.ir_access_view_tree
ir_model_access_view_tree_edition ir.model.access.tree.edition.base_export_manager ir.model.access xpath Inherits base.ir_access_view_tree_edition
ir_model_view_form ir.model.form.base_export_manager ir.model xpath Inherits base.view_model_form
res_groups_view_form res.groups.form res.groups xpath Inherits base.view_groups_form
Models touched (5)

New fields (3)
  • model_id Many2one → ir.model
    compute='_compute_model_id' domain=[('transient', '=', False)] help='Database model to export.' inverse='_inverse_model_id' store=True args: 'ir.model', 'Model'
  • name Char
    required=True
  • resource Char
    help="Model's technical name." readonly=True
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi
    Check required values when creating the record. Odoo's export dialog populates ``resource``, while this module's new form populates ``model_id``. At least one of them is required to trigger the methods that fill up the other, so this should fail if one is missing.

New fields (11)
  • field1_id Many2one → ir.model.fields
    domain="[('model_id', '=', model1_id)]" args: 'ir.model.fields', 'First field'
  • field2_id Many2one → ir.model.fields
    domain="[('model_id', '=', model2_id)]" args: 'ir.model.fields', 'Second field'
  • field3_id Many2one → ir.model.fields
    domain="[('model_id', '=', model3_id)]" args: 'ir.model.fields', 'Third field'
  • field4_id Many2one → ir.model.fields
    domain="[('model_id', '=', model4_id)]" args: 'ir.model.fields', 'Fourth field'
  • label Char
    compute='_compute_label'
  • model1_id Many2one → ir.model
    default=<expr> readonly=True related='export_id.model_id' args: 'ir.model', 'First model'
  • model2_id Many2one → ir.model
    compute='_compute_model2_id' args: 'ir.model', 'Second model'
  • model3_id Many2one → ir.model
    compute='_compute_model3_id' args: 'ir.model', 'Third model'
  • model4_id Many2one → ir.model
    compute='_compute_model4_id' args: 'ir.model', 'Fourth model'
  • name Char
    compute='_compute_name' help="Field's technical name." inverse='_inverse_name' store=True
  • sequence Integer
Public methods (2)
  • field_n(self, n, only_name=False)
    Helper to choose the field according to its indentation level. :param int n: Number of the indentation level to choose the field, from 1 to 3. :param bool only_name: Return only the field name, or return its value.
  • model_n(self, n, only_name=False)
    Helper to choose the model according to its indentation level. :param int n: Number of the indentation level to choose the model, from 1 to 3. :param bool only_name: Return only the model name, or return its value.

New fields (0)

No new fields.

Public methods (1)
  • session_info(self)
    Odoo implementation doesn't allow add more access types, so we send all models where the user has the 'export' access over the session dictionary. TODO: Use other way to don't send all this data every time.

New fields (1)
  • perm_export Boolean
    default=True args: 'Export Access'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • fetch_export_models(self)
    @api.model
    Gets all models where the user has export access.
REPOSITORY
REPOSITORYOCA/server-ux
GIT
GIThttps://github.com/OCA/server-ux.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-ux/tree/13.0/base_export_manager
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYPersonalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), LasLabs, Ursa Information Systems, brain-tec AG
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), LasLabs, Ursa Information Systems, brain-tec AG
COMMITTERS
COMMITTERSPedro M. Baeza, Alexandre Díaz, OCA Transbot, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/server-ux
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:17
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - web
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
assets_backend Add technical name to field items ir.ui.view qweb Inherits web.assets_backend
ir_exports_form_view Export Profile form ir.exports form New
ir_exports_tree_view Export Profile tree ir.exports tree New
ir_model_access_view_form ir.model.access.form.base_export_manager ir.model.access xpath Inherits base.ir_access_view_form
ir_model_access_view_tree ir.model.access.tree.base_export_manager ir.model.access xpath Inherits base.ir_access_view_tree
ir_model_access_view_tree_edition ir.model.access.tree.edition.base_export_manager ir.model.access xpath Inherits base.ir_access_view_tree_edition
ir_model_view_form ir.model.form.base_export_manager ir.model xpath Inherits base.view_model_form
res_groups_view_form res.groups.form res.groups xpath Inherits base.view_groups_form
Models touched (5)

New fields (3)
  • model_id Many2one → ir.model
    compute='_compute_model_id' domain=[('transient', '=', False)] help='Database model to export.' inverse='_inverse_model_id' store=True args: 'ir.model', 'Model'
  • name Char
    required=True
  • resource Char
    help="Model's technical name." readonly=True
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi
    Check required values when creating the record. Odoo's export dialog populates ``resource``, while this module's new form populates ``model_id``. At least one of them is required to trigger the methods that fill up the other, so this should fail if one is missing.

New fields (11)
  • field1_id Many2one → ir.model.fields
    domain="[('model_id', '=', model1_id)]" args: 'ir.model.fields', 'First field'
  • field2_id Many2one → ir.model.fields
    domain="[('model_id', '=', model2_id)]" args: 'ir.model.fields', 'Second field'
  • field3_id Many2one → ir.model.fields
    domain="[('model_id', '=', model3_id)]" args: 'ir.model.fields', 'Third field'
  • field4_id Many2one → ir.model.fields
    domain="[('model_id', '=', model4_id)]" args: 'ir.model.fields', 'Fourth field'
  • label Char
    compute='_compute_label'
  • model1_id Many2one → ir.model
    default=<expr> readonly=True related='export_id.model_id' args: 'ir.model', 'First model'
  • model2_id Many2one → ir.model
    compute='_compute_model2_id' args: 'ir.model', 'Second model'
  • model3_id Many2one → ir.model
    compute='_compute_model3_id' args: 'ir.model', 'Third model'
  • model4_id Many2one → ir.model
    compute='_compute_model4_id' args: 'ir.model', 'Fourth model'
  • name Char
    compute='_compute_name' help="Field's technical name." inverse='_inverse_name' store=True
  • sequence Integer
Public methods (2)
  • field_n(self, n, only_name=False)
    Helper to choose the field according to its indentation level. :param int n: Number of the indentation level to choose the field, from 1 to 3. :param bool only_name: Return only the field name, or return its value.
  • model_n(self, n, only_name=False)
    Helper to choose the model according to its indentation level. :param int n: Number of the indentation level to choose the model, from 1 to 3. :param bool only_name: Return only the model name, or return its value.

New fields (0)

No new fields.

Public methods (1)
  • session_info(self)
    Odoo implementation doesn't allow add more access types, so we send all models where the user has the 'export' access over the session dictionary. TODO: Use other way to don't send all this data every time.

New fields (1)
  • perm_export Boolean
    default=True args: 'Export Access'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • fetch_export_models(self)
    @api.model
    Gets all models where the user has export access.
REPOSITORY
REPOSITORYOCA/server-ux
GIT
GIThttps://github.com/OCA/server-ux.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-ux/tree/12.0/base_export_manager
VERSION
VERSION 1.1.1
CATEGORY
CATEGORYPersonalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), LasLabs, Ursa Information Systems, brain-tec AG
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), LasLabs, Ursa Information Systems, brain-tec AG
COMMITTERS
COMMITTERSPedro M. Baeza, OCA Transbot, Sébastien BEAU, oca-travis, OCA-git-bot, Olivier Jossen
WEBSITE
WEBSITEhttps://github.com/OCA/server-ux
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:22
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - web
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
assets_backend Add technical name to field items ir.ui.view qweb Inherits web.assets_backend
ir_exports_form_view Export Profile form ir.exports form New
ir_exports_tree_view Export Profile tree ir.exports tree New
ir_model_access_view_form ir.model.access.form.base_export_manager ir.model.access xpath Inherits base.ir_access_view_form
ir_model_access_view_tree ir.model.access.tree.base_export_manager ir.model.access xpath Inherits base.ir_access_view_tree
ir_model_view_form ir.model.form.base_export_manager ir.model xpath Inherits base.view_model_form
res_groups_view_form res.groups.form res.groups xpath Inherits base.view_groups_form
Models touched (5)

New fields (3)
  • model_id Many2one → ir.model
    compute='_compute_model_id' domain=[('transient', '=', False)] help='Database model to export.' inverse='_inverse_model_id' store=True args: 'ir.model', 'Model'
  • name Char
    required=True
  • resource Char
    help="Model's technical name." readonly=True required=False
Public methods (1)
  • create(self, vals)
    @api.model
    Check required values when creating the record. Odoo's export dialog populates ``resource``, while this module's new form populates ``model_id``. At least one of them is required to trigger the methods that fill up the other, so this should fail if one is missing.

New fields (11)
  • field1_id Many2one → ir.model.fields
    domain="[('model_id', '=', model1_id)]" args: 'ir.model.fields', 'First field'
  • field2_id Many2one → ir.model.fields
    domain="[('model_id', '=', model2_id)]" args: 'ir.model.fields', 'Second field'
  • field3_id Many2one → ir.model.fields
    domain="[('model_id', '=', model3_id)]" args: 'ir.model.fields', 'Third field'
  • field4_id Many2one → ir.model.fields
    domain="[('model_id', '=', model4_id)]" args: 'ir.model.fields', 'Fourth field'
  • label Char
    compute='_compute_label'
  • model1_id Many2one → ir.model
    default=<expr> readonly=True related='export_id.model_id' args: 'ir.model', 'First model'
  • model2_id Many2one → ir.model
    compute='_compute_model2_id' args: 'ir.model', 'Second model'
  • model3_id Many2one → ir.model
    compute='_compute_model3_id' args: 'ir.model', 'Third model'
  • model4_id Many2one → ir.model
    compute='_compute_model4_id' args: 'ir.model', 'Fourth model'
  • name Char
    compute='_compute_name' help="Field's technical name." inverse='_inverse_name' readonly=True required=False store=True
  • sequence Integer
Public methods (2)
  • field_n(self, n, only_name=False)
    @api.multi
    Helper to choose the field according to its indentation level. :param int n: Number of the indentation level to choose the field, from 1 to 3. :param bool only_name: Return only the field name, or return its value.
  • model_n(self, n, only_name=False)
    @api.multi
    Helper to choose the model according to its indentation level. :param int n: Number of the indentation level to choose the model, from 1 to 3. :param bool only_name: Return only the model name, or return its value.

New fields (0)

No new fields.

Public methods (1)
  • session_info(self)

New fields (1)
  • perm_export Boolean
    default=True args: 'Export Access'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • fetch_export_models(self)
    @api.model
REPOSITORY
REPOSITORYOCA/server-ux
GIT
GIThttps://github.com/OCA/server-ux.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-ux/tree/11.0/base_export_manager
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYPersonalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), LasLabs, Ursa Information Systems
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), LasLabs, Ursa Information Systems
COMMITTERS
COMMITTERSPedro M. Baeza, OCA Transbot, oca-travis, OCA-git-bot, OCA Git Bot
WEBSITE
WEBSITEhttps://www.tecnativa.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:24:00
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - web
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
assets_backend Add technical name to field items ir.ui.view qweb Inherits web.assets_backend
ir_exports_form_view Export Profile form ir.exports form New
ir_exports_tree_view Export Profile tree ir.exports tree New
ir_model_access_view_form ir.model.access.form.base_export_manager ir.model.access xpath Inherits base.ir_access_view_form
ir_model_access_view_tree ir.model.access.tree.base_export_manager ir.model.access xpath Inherits base.ir_access_view_tree
ir_model_view_form ir.model.form.base_export_manager ir.model xpath Inherits base.view_model_form
res_groups_view_form res.groups.form res.groups xpath Inherits base.view_groups_form
Models touched (4)

New fields (3)
  • model_id Many2one → ir.model
    compute='_compute_model_id' domain=[('transient', '=', False)] help='Database model to export.' inverse='_inverse_model_id' store=True args: 'ir.model', 'Model'
  • name Char
    required=True
  • resource Char
    help="Model's technical name." readonly=True required=False
Public methods (1)
  • create(self, vals)
    @api.model
    Check required values when creating the record. Odoo's export dialog populates ``resource``, while this module's new form populates ``model_id``. At least one of them is required to trigger the methods that fill up the other, so this should fail if one is missing.

New fields (11)
  • field1_id Many2one → ir.model.fields
    domain="[('model_id', '=', model1_id)]" args: 'ir.model.fields', 'First field'
  • field2_id Many2one → ir.model.fields
    domain="[('model_id', '=', model2_id)]" args: 'ir.model.fields', 'Second field'
  • field3_id Many2one → ir.model.fields
    domain="[('model_id', '=', model3_id)]" args: 'ir.model.fields', 'Third field'
  • field4_id Many2one → ir.model.fields
    domain="[('model_id', '=', model4_id)]" args: 'ir.model.fields', 'Fourth field'
  • label Char
    compute='_compute_label'
  • model1_id Many2one → ir.model
    default=<expr> readonly=True related='export_id.model_id' args: 'ir.model', 'First model'
  • model2_id Many2one → ir.model
    compute='_compute_model2_id' args: 'ir.model', 'Second model'
  • model3_id Many2one → ir.model
    compute='_compute_model3_id' args: 'ir.model', 'Third model'
  • model4_id Many2one → ir.model
    compute='_compute_model4_id' args: 'ir.model', 'Fourth model'
  • name Char
    compute='_compute_name' help="Field's technical name." inverse='_inverse_name' readonly=True required=False store=True
  • sequence Integer
Public methods (2)
  • field_n(self, n, only_name=False)
    @api.multi
    Helper to choose the field according to its indentation level. :param int n: Number of the indentation level to choose the field, from 1 to 3. :param bool only_name: Return only the field name, or return its value.
  • model_n(self, n, only_name=False)
    @api.multi
    Helper to choose the model according to its indentation level. :param int n: Number of the indentation level to choose the model, from 1 to 3. :param bool only_name: Return only the model name, or return its value.

New fields (1)
  • perm_export Boolean
    default=True args: 'Export Access'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • fetch_export_models(self)
    @api.model
REPOSITORY
REPOSITORYOCA/server-tools
GIT
GIThttps://github.com/OCA/server-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-tools/tree/10.0/base_export_manager
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYPersonalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), LasLabs, Ursa Information Systems
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), LasLabs, Ursa Information Systems
COMMITTERS
COMMITTERSPedro M. Baeza, GitHub, Jairo Llopis, Stéphane Bidoul (ACSONE), OCA Transbot, oca-travis
WEBSITE
WEBSITEhttps://www.tecnativa.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:20:00
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - web
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
assets_backend Add technical name to field items ir.ui.view qweb Inherits web.assets_backend
ir_exports_form_view Export Profile form ir.exports form New
ir_exports_tree_view Export Profile tree ir.exports tree New
ir_model_access_view_form ir.model.access.form.base_export_manager ir.model.access xpath Inherits base.ir_access_view_form
ir_model_access_view_tree ir.model.access.tree.base_export_manager ir.model.access xpath Inherits base.ir_access_view_tree
ir_model_view_form ir.model.form.base_export_manager ir.model xpath Inherits base.view_model_form
res_groups_view_form res.groups.form res.groups xpath Inherits base.view_groups_form
Models touched (4)

New fields (3)
  • model_id Many2one → ir.model
    compute='_compute_model_id' domain=[('transient', '=', False)] help='Database model to export.' inverse='_inverse_model_id' store=True args: 'ir.model', 'Model'
  • name Char
    required=True
  • resource Char
    help="Model's technical name." readonly=True required=False
Public methods (1)
  • create(self, vals)
    @api.model
    Check required values when creating the record. Odoo's export dialog populates ``resource``, while this module's new form populates ``model_id``. At least one of them is required to trigger the methods that fill up the other, so this should fail if one is missing.

New fields (11)
  • field1_id Many2one → ir.model.fields
    domain="[('model_id', '=', model1_id)]" args: 'ir.model.fields', 'First field'
  • field2_id Many2one → ir.model.fields
    domain="[('model_id', '=', model2_id)]" args: 'ir.model.fields', 'Second field'
  • field3_id Many2one → ir.model.fields
    domain="[('model_id', '=', model3_id)]" args: 'ir.model.fields', 'Third field'
  • field4_id Many2one → ir.model.fields
    domain="[('model_id', '=', model4_id)]" args: 'ir.model.fields', 'Fourth field'
  • label Char
    compute='_compute_label'
  • model1_id Many2one → ir.model
    default=<expr> readonly=True related='export_id.model_id' args: 'ir.model', 'First model'
  • model2_id Many2one → ir.model
    compute='_compute_model2_id' args: 'ir.model', 'Second model'
  • model3_id Many2one → ir.model
    compute='_compute_model3_id' args: 'ir.model', 'Third model'
  • model4_id Many2one → ir.model
    compute='_compute_model4_id' args: 'ir.model', 'Fourth model'
  • name Char
    compute='_compute_name' help="Field's technical name." inverse='_inverse_name' readonly=True required=False store=True
  • sequence Integer
Public methods (2)
  • field_n(self, n, only_name=False)
    @api.multi
    Helper to choose the field according to its indentation level. :param int n: Number of the indentation level to choose the field, from 1 to 3. :param bool only_name: Return only the field name, or return its value.
  • model_n(self, n, only_name=False)
    @api.multi
    Helper to choose the model according to its indentation level. :param int n: Number of the indentation level to choose the model, from 1 to 3. :param bool only_name: Return only the model name, or return its value.

New fields (1)
  • perm_export Boolean
    default=True args: 'Export Access'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • fetch_export_models(self)
    @api.model
REPOSITORY
REPOSITORYOCA/server-tools
GIT
GIThttps://github.com/OCA/server-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-tools/tree/9.0/base_export_manager
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYPersonalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), LasLabs, Antiun Ingeniería S.L., Ursa Information Systems
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), LasLabs, Antiun Ingeniería S.L., Ursa Information Systems
COMMITTERS
COMMITTERSMaxime Chambreuil, Pedro M. Baeza, GitHub, Stéphane Bidoul (ACSONE), OCA Transbot, oca-travis
WEBSITE
WEBSITEhttp://www.antiun.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:23
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - web
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
assets_backend Add technical name to field items ir.ui.view qweb Inherits web.assets_backend
ir_exports_form_view Export Profile form ir.exports form New
ir_exports_tree_view Export Profile tree ir.exports tree New
ir_model_access_view_form ir.model.access.form.base_export_manager ir.model.access xpath Inherits base.ir_access_view_form
ir_model_access_view_tree ir.model.access.tree.base_export_manager ir.model.access xpath Inherits base.ir_access_view_tree
ir_model_view_form ir.model.form.base_export_manager ir.model xpath Inherits base.view_model_form
res_groups_view_form res.groups.form res.groups xpath Inherits base.view_groups_form
Models touched (4)

New fields (3)
  • model_id Many2one → ir.model
    compute='_compute_model_id' domain=[('transient', '=', False)] help='Database model to export.' inverse='_inverse_model_id' store=True args: 'ir.model', 'Model'
  • name Char
    required=True
  • resource Char
    help="Model's technical name." readonly=True required=False
Public methods (1)
  • create(self, vals)
    @api.model
    Check required values when creating the record. Odoo's export dialog populates ``resource``, while this module's new form populates ``model_id``. At least one of them is required to trigger the methods that fill up the other, so this should fail if one is missing.

New fields (9)
  • field1_id Many2one → ir.model.fields
    domain="[('model_id', '=', model1_id)]" args: 'ir.model.fields', 'First field'
  • field2_id Many2one → ir.model.fields
    domain="[('model_id', '=', model2_id)]" args: 'ir.model.fields', 'Second field'
  • field3_id Many2one → ir.model.fields
    domain="[('model_id', '=', model3_id)]" args: 'ir.model.fields', 'Third field'
  • label Char
    compute='_compute_label'
  • model1_id Many2one → ir.model
    default=<expr> readonly=True related='export_id.model_id' args: 'ir.model', 'First model'
  • model2_id Many2one → ir.model
    compute='_compute_model2_id' args: 'ir.model', 'Second model'
  • model3_id Many2one → ir.model
    compute='_compute_model3_id' args: 'ir.model', 'Third model'
  • name Char
    compute='_compute_name' help="Field's technical name." inverse='_inverse_name' readonly=True required=False store=True
  • sequence Integer
Public methods (2)
  • field_n(self, n, only_name=False)
    @api.multi
    Helper to choose the field according to its indentation level. :param int n: Number of the indentation level to choose the field, from 1 to 3. :param bool only_name: Return only the field name, or return its value.
  • model_n(self, n, only_name=False)
    @api.multi
    Helper to choose the model according to its indentation level. :param int n: Number of the indentation level to choose the model, from 1 to 3. :param bool only_name: Return only the model name, or return its value.

New fields (1)
  • perm_export Boolean
    default=True args: 'Export Access'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • fetch_export_models(self)
    @api.model
REPOSITORY
REPOSITORYOCA/server-tools
GIT
GIThttps://github.com/OCA/server-tools.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-tools/tree/8.0/base_export_manager
VERSION
VERSION 2.1.0
CATEGORY
CATEGORYPersonalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA), Antiun Ingeniería S.L.
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA), Antiun Ingeniería S.L.
COMMITTERS
COMMITTERSPedro M. Baeza, Jairo Llopis, Stéphane Bidoul (ACSONE), OCA Transbot, oca-travis, Hans Henrik Gabelgaard
WEBSITE
WEBSITEhttp://www.antiun.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:25
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - web
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
assets_backend Add technical name to field items ir.ui.view qweb Inherits web.assets_backend
ir_exports_form_view Export Profile form ir.exports form New
ir_exports_tree_view Export Profile tree ir.exports tree New
Models touched (2)

New fields (3)
  • model_id Many2one → ir.model
    compute='_compute_model_id' domain=[('osv_memory', '=', False)] help='Database model to export.' inverse='_inverse_model_id' store=True args: 'ir.model', 'Model'
  • name Char
    required=True
  • resource Char
    help="Model's technical name." readonly=True required=False
Public methods (1)
  • create(self, vals)
    @api.model
    Check required values when creating the record. Odoo's export dialog populates ``resource``, while this module's new form populates ``model_id``. At least one of them is required to trigger the methods that fill up the other, so this should fail if one is missing.

New fields (11)
  • field1_id Many2one → ir.model.fields
    domain="[('model_id', '=', model1_id)]" args: 'ir.model.fields', 'First field'
  • field2_id Many2one → ir.model.fields
    domain="[('model_id', '=', model2_id)]" args: 'ir.model.fields', 'Second field'
  • field3_id Many2one → ir.model.fields
    domain="[('model_id', '=', model3_id)]" args: 'ir.model.fields', 'Third field'
  • field4_id Many2one → ir.model.fields
    domain="[('model_id', '=', model4_id)]" args: 'ir.model.fields', 'Fourth field'
  • label Char
    compute='_compute_label'
  • model1_id Many2one → ir.model
    default=<expr> readonly=True related='export_id.model_id' args: 'ir.model', 'First model'
  • model2_id Many2one → ir.model
    compute='_compute_model2_id' args: 'ir.model', 'Second model'
  • model3_id Many2one → ir.model
    compute='_compute_model3_id' args: 'ir.model', 'Third model'
  • model4_id Many2one → ir.model
    compute='_compute_model4_id' args: 'ir.model', 'Fourth model'
  • name Char
    compute='_compute_name' help="Field's technical name." inverse='_inverse_name' required=False store=True
  • sequence Integer
Public methods (2)
  • field_n(self, n, only_name=False)
    @api.multi
    Helper to choose the field according to its indentation level. :param int n: Number of the indentation level to choose the field, from 1 to 3. :param bool only_name: Return only the field name, or return its value.
  • model_n(self, n, only_name=False)
    @api.multi
    Helper to choose the model according to its indentation level. :param int n: Number of the indentation level to choose the model, from 1 to 3. :param bool only_name: Return only the model name, or return its value.
STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/server-ux
PULL REQUEST
PULL REQUEST[19.0][MIG] base_export_manager: Migration to 19.0 (#1309)
STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/server-ux
PULL REQUEST
PULL REQUEST[19.0][MIG] base_export_manager: Migration to 19.0 (#1188)