Repository
OCA/reporting-engine · module folder · Try on Runboat
Module version
1.1.0
Category
Productivity
Folder size
1.3 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/reporting-engine
Last tracking update
2026-08-07 08:23:12
Authors
Odoo Community Association (OCA), Onestein
Maintainers
Odoo Community Association (OCA), Onestein
Committers
Weblate, OCA-git-bot, oca-ci, Antonio David Ruban Espinal
Odoo dependencies
Python dependencies
None
System dependencies
graphviz
Required by
bi_view_editor_spreadsheet_dashboard
Description
BI View Editor is a tool integrated in Odoo that allows users define and
execute their own reports without the need to code.

Purpose:

- The BI View Editor is used to create reports not already contained in
  the standard Odoo, combining data from existing sources.
- It has been designed to be used by users with little or no knowledge
  of the technical architecture of Odoo. Users visually link business
  objects and select the fields to visualize.
- The BI View Editor offers users different types of representations,
  including tree, graph, pivot views.

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
view_bi_view_editor_view_form bve.view form New
view_bi_view_editor_view_tree bve.view tree New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (5)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (15)
  • action_id Many2one → ir.actions.act_window
    string='Action' args: 'ir.actions.act_window'
  • data Char
    compute='_compute_serialized_data' help="Use the special query builder to define the query to generate your report dataset. NOTE: To be edited, the query should be in 'Draft' status." inverse='_inverse_serialized_data'
  • er_diagram_image Binary
    compute='_compute_er_diagram_image'
  • field_ids One2many → bve.view.line
    domain=['|', ('join_node', '=', -1), ('join_node', '=', False)] string='Fields' args: 'bve.view.line', 'bve_view_id'
  • group_ids Many2many → res.groups
    help='User groups allowed to see the generated report; if NO groups are specified the report will be public for everyone.' string='Groups' args: 'res.groups'
  • line_ids One2many → bve.view.line
    string='Lines' args: 'bve.view.line', 'bve_view_id'
  • model_name Char
    compute='_compute_model_name' store=True
  • name Char
    copy=False required=True translate=True
  • note Text
    string='Notes'
  • over_condition Text
    help="Condition to be inserted in the OVER part of the ID's row_number function.\nFor instance, 'ORDER BY t1.id' would create IDs ordered in the same way as t1's IDs; otherwise IDs are assigned with no specific order."
  • query Text
    compute='_compute_sql_query'
  • relation_ids One2many → bve.view.line
    domain=[('join_node', '!=', -1), ('join_node', '!=', False)] string='Relations' args: 'bve.view.line', 'bve_view_id'
  • state Selection
    copy=False default='draft' args: [('draft', 'Draft'), ('created', 'Created')]
  • user_ids Many2many → res.users
    compute='_compute_users' store=True string='Users' args: 'res.users'
  • view_id Many2one → ir.ui.view
    string='View' args: 'ir.ui.view'
Public methods (6)
  • action_create(self)
  • action_reset(self)
  • copy(self, default=None)
  • get_clean_list(self, data_dict)
    @api.model
  • open_view(self)
  • unlink(self)

New fields (20)
  • bve_view_id Many2one → bve.view
    ondelete='cascade' args: 'bve.view'
  • column Boolean
  • description Char
    translate=True
  • field_id Many2one → ir.model.fields
    args: 'ir.model.fields'
  • field_name Char
    compute='_compute_model_field_name' store=True
  • in_list Boolean
  • join_model_id Many2one → ir.model
    args: 'ir.model'
  • join_node Char
  • left_join Boolean
  • list_attr Selection
    default='sum' string='List Attribute' args: [('sum', 'Sum'), ('avg', 'Average')]
  • measure Boolean
  • model_id Many2one → ir.model
    args: 'ir.model'
  • model_name Char
    related='model_id.model' store=True string='Model Name'
  • name Char
    compute='_compute_name'
  • relation Char
  • row Boolean
  • sequence Integer
    default=1
  • table_alias Char
    required=True
  • ttype Char
    string='Type'
  • view_field_type Char
    compute='_compute_view_field_type'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (6)
  • get_fields(self, model_id)
    @api.model
  • get_join_nodes(self, field_data, new_field)
    @api.model
    Return list of field dicts of join nodes Return all possible join nodes to add new_field to the query containing model_ids.
  • get_model_list(self, model_table_map)
  • get_models(self, table_model_map=None)
    @api.model
    Return list of model dicts for all available models.
  • get_related_models(self, model_table_map)
    @api.model
    Return list of model dicts for all models that can be joined with the already selected models.
  • get_relation_list(self, model_table_map)

New fields (0)

No new fields.

Public methods (2)
  • default_get(self, fields_list)
    @api.model
  • menu_create(self)

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…