Overview Dashboard (Tiles)

web_dashboard_tile
REPOSITORY
REPOSITORYOCA/web
GIT
GIThttps://github.com/OCA/web.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/web/tree/16.0/web_dashboard_tile
VERSION
VERSION 1.0.2
CATEGORY
CATEGORYweb
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), GRAP, initOS GmbH & Co. KG, Iván Todorovich <ivan.todorovich@gmail.com>
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), GRAP, initOS GmbH & Co. KG, Iván Todorovich <ivan.todorovich@gmail.com>
COMMITTERS
COMMITTERSSylvain LE GAL, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/web
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:54
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - web
    - base
    - spreadsheet_dashboard
    - spreadsheet
    - bus
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
view_tile_category_form tile.category form New
view_tile_category_tree tile.category tree New
view_tile_tile_form tile.tile form New
view_tile_tile_kanban tile.tile kanban New
view_tile_tile_search tile.tile search New
view_tile_tile_tree tile.tile tree New
Models touched (2)

New fields (7)
  • action_id Many2one → ir.actions.act_window
    comodel_name='ir.actions.act_window' readonly=True string='Odoo Action'
  • active Boolean
    default=True
  • menu_id Many2one → ir.ui.menu
    comodel_name='ir.ui.menu' readonly=True string='Odoo Menu'
  • name Char
    required=True
  • sequence Integer
    default=10 required=True
  • tile_ids One2many → tile.tile
    comodel_name='tile.tile' inverse_name='category_id' string='Tiles'
  • tile_qty Integer
    compute='_compute_tile_qty' store=True string='Tiles Quantity'
Public methods (3)
  • create(self, vals_list)
    @api.model_create_multi
  • unlink(self)
  • write(self, vals)

New fields (29)
  • action_id Many2one → ir.actions.act_window
    comodel_name='ir.actions.act_window' domain="[('res_model', '=', model_name)]" help='Let empty to use the default action related to the selected model.' string='Action'
  • active Boolean
    compute='_compute_active' readonly=True search='_search_active'
  • background_color Char
    default='#0E6C7E'
  • category_id Many2one → tile.category
    comodel_name='tile.category' ondelete='CASCADE' required=True string='Category'
  • domain Text
    default='[]' required=True
  • domain_error Char
    compute='_compute_data'
  • font_color Char
    default='#FFFFFF'
  • group_ids Many2many → res.groups
    comodel_name='res.groups' help='If this field is set, only users of this group can view this tile. Please note that it will only work for global tiles (that is, when User field is left empty)' string='Groups'
  • hidden Boolean
    compute='_compute_data' search='_search_hidden'
  • hide_if_null Boolean
    help='If checked, the item will be hidden if the primary value is null.' string='Hide if null'
  • model_id Many2one → ir.model
    comodel_name='ir.model' ondelete='cascade' required=True string='Model'
  • model_name Char
    related='model_id.model' string='Model name'
  • name Char
    required=True
  • primary_error Char
    compute='_compute_data'
  • primary_field_id Many2one → ir.model.fields
    comodel_name='ir.model.fields' domain="[('model_id', '=', model_id), ('ttype', 'in', ['float', 'integer', 'monetary'])]" string='Primary Field'
  • primary_format Char
    help="Python Format String valid with str.format()\nie: '{:,} Kgs' will output '1,000 Kgs' if value is 1000."
  • primary_formated_value Char
    compute='_compute_data'
  • primary_function Selection
    default='count' required=True selection=FIELD_FUNCTION_SELECTION
  • primary_helper Char
    compute='_compute_helper' store=True
  • primary_value Float
    compute='_compute_data'
  • secondary_error Char
    compute='_compute_data'
  • secondary_field_id Many2one → ir.model.fields
    comodel_name='ir.model.fields' domain="[('model_id', '=', model_id), ('ttype', 'in', ['float', 'integer', 'monetary'])]" string='Secondary Field'
  • secondary_format Char
    help="Python Format String valid with str.format()\nie: '{:,} Kgs' will output '1,000 Kgs' if value is 1000."
  • secondary_formated_value Char
    compute='_compute_data'
  • secondary_function Selection
    selection=FIELD_FUNCTION_SELECTION
  • secondary_helper Char
    compute='_compute_helper' store=True
  • secondary_value Float
    compute='_compute_data'
  • sequence Integer
    default=0 required=True
  • user_id Many2one → res.users
    comodel_name='res.users' string='User'
Public methods (1)
  • open_link(self)
REPOSITORY
REPOSITORYOCA/web
GIT
GIThttps://github.com/OCA/web.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/web/tree/12.0/web_dashboard_tile
VERSION
VERSION 2.0.0
CATEGORY
CATEGORYweb
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), GRAP, initOS GmbH & Co. KG, Iván Todorovich <ivan.todorovich@gmail.com>
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), GRAP, initOS GmbH & Co. KG, Iván Todorovich <ivan.todorovich@gmail.com>
COMMITTERS
COMMITTERSStéphane Bidoul, Sylvain LE GAL, Daniel Reis, OCA Transbot, oca-travis, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/web
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:23
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/web:
    - web_widget_color
odoo/odoo:
    - web
    - base
    - board
    - mail
    - base_setup
    - bus
    - web_tour
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
assets_backend assets_backend ir.ui.view qweb Inherits web.assets_backend
view_tile_category_form tile.category form New
view_tile_category_tree tile.category tree New
view_tile_tile_form tile.tile form New
view_tile_tile_kanban tile.tile kanban New
view_tile_tile_search tile.tile search New
view_tile_tile_tree tile.tile tree New
Models touched (2)

New fields (7)
  • action_id Many2one → ir.actions.act_window
    comodel_name='ir.actions.act_window' readonly=True string='Odoo Action'
  • active Boolean
    default=True
  • menu_id Many2one → ir.ui.menu
    comodel_name='ir.ui.menu' readonly=True string='Odoo Menu'
  • name Char
    required=True
  • sequence Integer
    default=10 required=True
  • tile_ids One2many → tile.tile
    comodel_name='tile.tile' inverse_name='category_id' string='Tiles'
  • tile_qty Integer
    compute='_compute_tile_qty' store=True string='Tiles Quantity'
Public methods (3)
  • create(self, vals)
    @api.model
  • unlink(self)
  • write(self, vals)

New fields (27)
  • action_id Many2one → ir.actions.act_window
    comodel_name='ir.actions.act_window' domain="[('res_model', '=', model_name)]" help='Let empty to use the default action related to the selected model.' string='Action'
  • active Boolean
    compute='_compute_active' readonly=True search='_search_active'
  • background_color Char
    default='#0E6C7E'
  • category_id Many2one → tile.category
    comodel_name='tile.category' ondelete='CASCADE' required=True string='Category'
  • domain Text
    default='[]'
  • error Char
    compute='_compute_data' string='Error Details'
  • font_color Char
    default='#FFFFFF'
  • group_ids Many2many → res.groups
    comodel_name='res.groups' help='If this field is set, only users of this group can view this tile. Please note that it will only work for global tiles (that is, when User field is left empty)' string='Groups'
  • hidden Boolean
    compute='_compute_data' search='_search_hidden' string='Hidden'
  • hide_if_null Boolean
    help='If checked, the item will be hidden if the primary value is null.' string='Hide if null'
  • model_id Many2one → ir.model
    comodel_name='ir.model' required=True string='Model'
  • model_name Char
    related='model_id.model' string='Model name'
  • name Char
    required=True
  • primary_field_id Many2one → ir.model.fields
    comodel_name='ir.model.fields' domain="[('model_id', '=', model_id), ('ttype', 'in', ['float', 'integer', 'monetary'])]" string='Primary Field'
  • primary_format Char
    help="Python Format String valid with str.format()\nie: '{:,} Kgs' will output '1,000 Kgs' if value is 1000." string='Primary Format'
  • primary_formated_value Char
    compute='_compute_data' string='Primary Formated Value'
  • primary_function Selection
    default='count' required=True selection=FIELD_FUNCTION_SELECTION string='Primary Function'
  • primary_helper Char
    compute='_compute_helper' store=True string='Primary Helper'
  • primary_value Float
    compute='_compute_data' string='Primary Value'
  • secondary_field_id Many2one → ir.model.fields
    comodel_name='ir.model.fields' domain="[('model_id', '=', model_id), ('ttype', 'in', ['float', 'integer', 'monetary'])]" string='Secondary Field'
  • secondary_format Char
    help="Python Format String valid with str.format()\nie: '{:,} Kgs' will output '1,000 Kgs' if value is 1000." string='Secondary Format'
  • secondary_formated_value Char
    compute='_compute_data' string='Secondary Formated Value'
  • secondary_function Selection
    selection=FIELD_FUNCTION_SELECTION string='Secondary Function'
  • secondary_helper Char
    compute='_compute_helper' store=True string='Secondary Helper'
  • secondary_value Float
    compute='_compute_data' string='Secondary Value'
  • sequence Integer
    default=0 required=True
  • user_id Many2one → res.users
    comodel_name='res.users' string='User'
Public methods (3)
  • add(self, vals)
    @api.model
  • open_link(self)
    @api.multi
  • search(self, args, offset=0, limit=None, order=None, count=False)
REPOSITORY
REPOSITORYOCA/web
GIT
GIThttps://github.com/OCA/web.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/web/tree/10.0/web_dashboard_tile
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYweb
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), GRAP, initOS GmbH & Co. KG
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), GRAP, initOS GmbH & Co. KG
COMMITTERS
COMMITTERSPedro M. Baeza, Stéphane Bidoul (ACSONE)
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:20:00
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/web:
    - web_widget_color
odoo/odoo:
    - web
    - base
    - board
    - mail
    - base_setup
    - web_kanban
    - bus
    - web_tour
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
assets_backend web_dashboard_tile assets ir.ui.view qweb Inherits web.assets_backend
dashboard_tile_tile_form_view tile.tile form New
dashboard_tile_tile_kanban_view tile.tile kanban New
dashboard_tile_tile_tree_view tile.tile tree New
Models touched (1)

New fields (14)
  • action_id Many2one → ir.actions.act_window
    comodel_name='ir.actions.act_window' string='Action'
  • active Boolean
    compute='_get_tile_info' readonly=True search='_search_active'
  • background_color Char
    default='#0E6C7E' oldname='color'
  • computed_value Float
    compute='_get_tile_info'
  • count Integer
    compute='_get_tile_info'
  • domain Text
    default='[]'
  • field_function Selection
    selection=[('min', 'Minimum'), ('max', 'Maximum'), ('sum', 'Sum'), ('avg', 'Average'), ('median', 'Median')] string='Function'
  • field_id Many2one → ir.model.fields
    comodel_name='ir.model.fields' domain="[('model_id', '=', model_id), ('ttype', 'in', ['float', 'int'])]" string='Field'
  • font_color Char
    default='#FFFFFF'
  • helper Char
    compute='_get_tile_info'
  • model_id Many2one → ir.model
    comodel_name='ir.model' required=True string='Model'
  • name Char
    required=True
  • sequence Integer
    default=0 required=True
  • user_id Many2one → res.users
    comodel_name='res.users' string='User'
Public methods (3)
  • add(self, vals)
    @api.model
  • median(self, aList)
  • open_link(self)
    @api.multi
REPOSITORY
REPOSITORYOCA/web
GIT
GIThttps://github.com/OCA/web.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/web/tree/9.0/web_dashboard_tile
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYweb
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), GRAP, initOS GmbH & Co. KG
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), GRAP, initOS GmbH & Co. KG
COMMITTERS
COMMITTERSPedro M. Baeza, Sylvain LE GAL, Stéphane Bidoul (ACSONE), Katherine Zaoral, OCA Transbot, David Beal, Nicolas Mac Rouillon
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:23
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/web:
    - web_widget_color
odoo/odoo:
    - web
    - base
    - board
    - mail
    - base_setup
    - web_kanban
    - bus
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
assets_backend web_dashboard_tile assets ir.ui.view qweb Inherits web.assets_backend
dashboard_tile_category_form_view tile.category form New
dashboard_tile_category_tree_view tile.category tree New
dashboard_tile_tile_form_view tile.tile form New
dashboard_tile_tile_kanban_view tile.tile kanban New
dashboard_tile_tile_tree_view tile.tile tree New
Models touched (2)

New fields (3)
  • fold Boolean
    args: 'Folded by default'
  • name Char
    required=True
  • sequence Integer
    default=0 help='Used to order the tile categories'
Public methods (0)

No public methods.

New fields (22)
  • action_id Many2one → ir.actions.act_window
    args: 'ir.actions.act_window', 'Action'
  • active Boolean
    compute='_compute_active' readonly=True search='_search_active'
  • background_color Char
    default='#0E6C7E' oldname='color'
  • category_id Many2one → tile.category
    args: 'tile.category', 'Category'
  • domain Text
    default='[]'
  • error Char
    compute='_compute_data' string='Error Details'
  • font_color Char
    default='#FFFFFF'
  • group_ids Many2many → res.groups
    help='If this field is set, only users of this group can view this tile. Please note that it will only work for global tiles (that is, when User field is left empty)' string='Groups' args: 'res.groups'
  • model_id Many2one → ir.model
    required=True args: 'ir.model', 'Model'
  • name Char
    required=True
  • primary_field_id Many2one → ir.model.fields
    domain="[('model_id', '=', model_id), ('ttype', 'in', ['float', 'integer', 'monetary'])]" string='Field' args: 'ir.model.fields'
  • primary_format Char
    help="Python Format String valid with str.format()\nie: '{:,} Kgs' will output '1,000 Kgs' if value is 1000." string='Format'
  • primary_function Selection
    default='count' string='Function' args: FIELD_FUNCTION_SELECTION
  • primary_helper Char
    compute='_compute_helper' string='Helper'
  • primary_value Char
    compute='_compute_data' string='Value'
  • secondary_field_id Many2one → ir.model.fields
    domain="[('model_id', '=', model_id), ('ttype', 'in', ['float', 'integer', 'monetary'])]" string='Secondary Field' args: 'ir.model.fields'
  • secondary_format Char
    help="Python Format String valid with str.format()\nie: '{:,} Kgs' will output '1,000 Kgs' if value is 1000." string='Secondary Format'
  • secondary_function Selection
    string='Secondary Function' args: FIELD_FUNCTION_SELECTION
  • secondary_helper Char
    compute='_compute_helper' string='Secondary Helper'
  • secondary_value Char
    compute='_compute_data' string='Secondary Value'
  • sequence Integer
    default=0 required=True
  • user_id Many2one → res.users
    args: 'res.users', 'User'
Public methods (2)
  • add(self, vals)
    @api.model
  • open_link(self)
    @api.multi
REPOSITORY
REPOSITORYOCA/web
GIT
GIThttps://github.com/OCA/web.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/web/tree/8.0/web_dashboard_tile
VERSION
VERSION 4.0.0
CATEGORY
CATEGORYweb
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), GRAP, initOS GmbH & Co. KG
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), GRAP, initOS GmbH & Co. KG
COMMITTERS
COMMITTERSStéphane Bidoul, Pedro M. Baeza, Sylvain LE GAL, GitHub, Stéphane Bidoul (ACSONE), OCA Transbot, Markus Schneider, oca-travis, Weblate, Iván Todorovich, Matjaž Mozetič
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:25
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/web:
    - web_widget_color
odoo/odoo:
    - web
    - base
    - board
    - mail
    - base_setup
    - web_kanban
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
assets_backend web_dashboard_tile assets ir.ui.view qweb Inherits web.assets_backend
dashboard_tile_tile_form_view tile.tile form New
dashboard_tile_tile_kanban_view tile.tile kanban New
dashboard_tile_tile_tree_view tile.tile tree New
Models touched (1)

New fields (21)
  • action_id Many2one → ir.actions.act_window
    args: 'ir.actions.act_window', 'Action'
  • active Boolean
    compute='_compute_active' readonly=True search='_search_active'
  • background_color Char
    default='#0E6C7E' oldname='color'
  • domain Text
    default='[]'
  • error Char
    compute='_compute_data' string='Error Details'
  • font_color Char
    default='#FFFFFF'
  • group_ids Many2many → res.groups
    help='If this field is set, only users of this group can view this tile. Please note that it will only work for global tiles (that is, when User field is left empty)' string='Groups' args: 'res.groups'
  • model_id Many2one → ir.model
    required=True args: 'ir.model', 'Model'
  • name Char
    required=True
  • primary_field_id Many2one → ir.model.fields
    domain="[('model_id', '=', model_id), ('ttype', 'in', ['float', 'integer'])]" string='Field' args: 'ir.model.fields'
  • primary_format Char
    help="Python Format String valid with str.format()\nie: '{:,} Kgs' will output '1,000 Kgs' if value is 1000." string='Format'
  • primary_function Selection
    default='count' string='Function' args: FIELD_FUNCTION_SELECTION
  • primary_helper Char
    compute='_compute_helper' string='Helper'
  • primary_value Char
    compute='_compute_data' string='Value'
  • secondary_field_id Many2one → ir.model.fields
    domain="[('model_id', '=', model_id), ('ttype', 'in', ['float', 'integer'])]" string='Secondary Field' args: 'ir.model.fields'
  • secondary_format Char
    help="Python Format String valid with str.format()\nie: '{:,} Kgs' will output '1,000 Kgs' if value is 1000." string='Secondary Format'
  • secondary_function Selection
    string='Secondary Function' args: FIELD_FUNCTION_SELECTION
  • secondary_helper Char
    compute='_compute_helper' string='Secondary Helper'
  • secondary_value Char
    compute='_compute_data' string='Secondary Value'
  • sequence Integer
    default=0 required=True
  • user_id Many2one → res.users
    args: 'res.users', 'User'
Public methods (2)
  • add(self, vals)
    @api.model
  • open_link(self)
    @api.multi
REPOSITORY
REPOSITORYOCA/web
GIT
GIThttps://github.com/OCA/web.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/web/tree/7.0/web_dashboard_tile
VERSION
VERSION 1.0.1
CATEGORY
CATEGORY
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), GRAP, initOS GmbH & Co. KG
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), GRAP, initOS GmbH & Co. KG
COMMITTERS
COMMITTERSAlexandre Fayolle, Sylvain LE GAL, OCA Transbot, Markus Schneider
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 18:07:00
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/web:
    - web_widget_color
odoo/odoo:
    - web
    - board
    - base
    - mail
    - base_setup
    - web_kanban
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Add Tiles to Dashboard
======================
Features:
---------
module to give you a dashboard where you can configure tile from any view
and add them as short cut.

* Tile can be:
    * displayed only for a user;
    * global for all users (In that case, some tiles will be hidden if
      the current user doesn't have access to the given model);
* The tile displays items count of a given model restricted to a given domain;
* Optionnaly, the tile can display the result of a function of a field;
    * Function is one of sum/avg/min/max/median;
    * Field must be integer or float;

Screenshot:
-----------
* Dashboad sample, displaying Sale Orders to invoice:
.. image:: web_dashboard_tile/static/src/img/screenshot_dashboard.png
* Tree view displayed when user click on the tile:
.. image:: web_dashboard_tile/static/src/img/screenshot_action_click.png


Kown issues/limits:
-------------------
* can not edit tile from dashboard (color, sequence, function, ...);
* context are ignored;
* date filter can not be relative;
* combine domain of menue and filter so can not restore origin filter;

possible future improvments:
----------------------------
* support context_today;
* add icons;
* support client side action (like inbox);
    

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
dashboard_tile_tile_form_view tile.tile.form tile.tile form New
dashboard_tile_tile_kanban_view tile.tile.kanban tile.tile kanban New
dashboard_tile_tile_tree_view tile.tile.tree tile.tile tree New
Models touched (1)

New fields (0)

No new fields.

Public methods (3)
  • add(self, cr, uid, vals, context=None)
  • median(self, aList)
  • open_link(self, cr, uid, ids, context=None)