SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
Business Intelligence
Develop cube views for your own objects
Content
1. BI/Graph View
2. Technical Overview
3. Preparing Data
4. Displaying cube views
5. Case study: cross models
6. Conclusion
BI/Graph View
BI/Graph View
measure : can be aggregated (right now, only summed)
dimension : can be grouped
·
·
A Short History of BI in Odoo
pre 2014: list view + group bys, graph view
Q1/Q2 2014: graph view rewrite -> pivot table + graphs,
lots of backend work
future: ? we're looking at searchview/BI view integration.
·
·
·
Technical Overview
Odoo architecture
Anatomy of BI/Graph View
pivot tablepivot table: keeps the data, calls the ORM
graph widgetgraph widget : user interaction
graph viewgraph view : client interaction
·
·
·
BI view xml
<record<record id="..." model="ir.ui.view">>
<field<field name="name">>crm.opportunity.report.graph</field></field>
<field<field name="model">>crm.lead.report</field></field>
<field<field name="arch" type="xml">>
<graph<graph string="Leads Analysis" type="pivot" stacked="True">>
<field<field name="date_deadline" type="row"/>/>
<field<field name="stage_id" type="col"/>/>
<field<field name="planned_revenue" type="measure"/>/>
</graph></graph>
</field></field>
</record></record>
BI view API
In graph tag:
string: title
stacked: if bar chart is stacked/not stacked (default=false)
type: mode (pivot, bar, pie, line) (default=bar)
In field tags, type attribute:
row : will be grouped by rows (dimension)
col : will be grouped by cols (dimension)
measure : will be aggregated
if no type, measure by default
·
·
·
·
·
·
·
Date/datetime
Always want to be different: date/datetime have a special
syntax for groupby:
field_date:day,
field_date:week,
field_date:month (default)
field_date:quarter,
field_date:year
<graph<graph string="Leads Analysis" type="pivot" stacked="True">>
<field<field name="date_deadline:week" type="row"/>/>
<field<field name="stage_id" type="col"/>/>
<field<field name="planned_revenue" type="measure"/>/>
</graph></graph>
·
·
·
·
·
Graph widget setup
Graph widget has two more options:
visible_ui (true) : indicate if UI is visible
heatmap_mode ('none') can be set to row/col/both
·
·
Preparing Data
Odoo Model
Odoo BI view will read the various fields. Depending on
their type, it will use them for
measures : every fields of type integer, float (except 'id')
dimensions :
right now: every fields defined in the 'group by'
category in the search bar.
later: every field that can be grouped by the db
·
·
·
·
Where is your data?
The data needs to satisfy two conditions:
be stored in the database (beware of functional fields not
stored)
be accessed from one single odoo model
If yes, you're done. If not, two possibilities:
can you extend a model? (stored functional fields,
relational fields)
can you create a custom model with a postgres view, to
link the various models with the data?
Bottom line: it needs to be in the DB
·
·
·
·
Extending a model
WARNING: old API... Do not try this at home!!!
classclass res_partner((osv..osv):):
_name == 'res.partner'
_inherit == 'res.partner'
defdef _total_invoice((self,, cr,, uid,, ids,, ......):):
......
# [insert here nice looking code to
# compute the total invoice of a customer]
......
returnreturn result
_columns == {{
'total_invoiced':: fields..function((_total_invoice,,
string=="Total Invoiced",, type=='float',, store==True))
}}
More advanced: Cross model
analysis
Example: purchase/report/purchase_report.py
All reporting views use that technique. Warning: bypass the
ORM
Displaying cube views
Edit in live
1. go to developer mode
2. edit action, add 'graph',
3. edit views, create 'graph'
4. profit!
Good for testing.
Adding a BI view with xml
Add the desired graph view:
<record<record id="view_project_task_graph" model="ir.ui.view">>
<field<field name="name">>project.task.graph</field></field>
<field<field name="model">>project.task</field></field>
<field<field name="arch" type="xml">>
<graph<graph string="Project Tasks" type="bar">>
<field<field name="project_id" type="row"/>/>
<field<field name="planned_hours" type="measure"/>/>
</graph></graph>
</field></field>
</record></record>
Adding a BI view with xml(2)
Add it to the action:
<record<record id="action_view_task" model="ir.actions.act_window">>
...
<field<field name="view_mode">>kanban,tree,form,calendar,gantt,graph</field></field>
...
You can force the correct view:
<field<field name="view_id" ref="view_project_task_graph"/>/>
Advanced: client action
In js, create a widget and append it to your view:
thisthis..graph_widget == newnew openerp..web_graph..Graph((
thisthis,,
some_model,,
some_domain,,
options););
thisthis..graph_widget..appendTo((thisthis..$el););
Future of BI in odoo?
Thank you

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

How to Define Many2many Field in Odoo 15
How to Define Many2many Field in Odoo 15How to Define Many2many Field in Odoo 15
How to Define Many2many Field in Odoo 15
 
Odoo development workflow with pip and virtualenv
Odoo development workflow with pip and virtualenvOdoo development workflow with pip and virtualenv
Odoo development workflow with pip and virtualenv
 
How to Define One2Many Field in Odoo 15
 How to Define One2Many Field in Odoo 15 How to Define One2Many Field in Odoo 15
How to Define One2Many Field in Odoo 15
 
Odoo Performance Limits
Odoo Performance LimitsOdoo Performance Limits
Odoo Performance Limits
 
How to Import data into OpenERP V7
How to Import data into OpenERP V7How to Import data into OpenERP V7
How to Import data into OpenERP V7
 
Odoo Experience 2018 - The Odoo JS Framework
Odoo Experience 2018 - The Odoo JS FrameworkOdoo Experience 2018 - The Odoo JS Framework
Odoo Experience 2018 - The Odoo JS Framework
 
Odoo - Create themes for website
Odoo - Create themes for websiteOdoo - Create themes for website
Odoo - Create themes for website
 
공간정보 스터디 2주차
공간정보 스터디 2주차공간정보 스터디 2주차
공간정보 스터디 2주차
 
View Inheritance in Odoo 16
View Inheritance in Odoo 16View Inheritance in Odoo 16
View Inheritance in Odoo 16
 
GitHub ActionsでiOSのCIを実現しよう
GitHub ActionsでiOSのCIを実現しようGitHub ActionsでiOSのCIを実現しよう
GitHub ActionsでiOSのCIを実現しよう
 
How to Use Constraint and SQL Constraint in Odoo 15
How to Use Constraint and SQL Constraint in Odoo 15How to Use Constraint and SQL Constraint in Odoo 15
How to Use Constraint and SQL Constraint in Odoo 15
 
Improving the performance of Odoo deployments
Improving the performance of Odoo deploymentsImproving the performance of Odoo deployments
Improving the performance of Odoo deployments
 
What is Computed Fields and @api Depends in Odoo 15
What is Computed Fields and @api Depends in Odoo 15What is Computed Fields and @api Depends in Odoo 15
What is Computed Fields and @api Depends in Odoo 15
 
What are Wizards - Defining and Launching in Odoo 15Wizards - Defining and La...
What are Wizards - Defining and Launching in Odoo 15Wizards - Defining and La...What are Wizards - Defining and Launching in Odoo 15Wizards - Defining and La...
What are Wizards - Defining and Launching in Odoo 15Wizards - Defining and La...
 
Set Default Values to Fields in Odoo 15
Set Default Values to Fields in Odoo 15Set Default Values to Fields in Odoo 15
Set Default Values to Fields in Odoo 15
 
Common Performance Pitfalls in Odoo apps
Common Performance Pitfalls in Odoo appsCommon Performance Pitfalls in Odoo apps
Common Performance Pitfalls in Odoo apps
 
超簡単! JettyをWindowsにインストール
超簡単! JettyをWindowsにインストール超簡単! JettyをWindowsにインストール
超簡単! JettyをWindowsにインストール
 
What is Delegation Inheritance in Odoo 15
What is Delegation Inheritance in Odoo 15What is Delegation Inheritance in Odoo 15
What is Delegation Inheritance in Odoo 15
 
Owl: The New Odoo UI Framework
Owl: The New Odoo UI FrameworkOwl: The New Odoo UI Framework
Owl: The New Odoo UI Framework
 
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3  ドメイン駆動設計 戦略的設計3週連続DDDその3  ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計
 

Similar a Odoo - Business intelligence: Develop cube views for your own objects

Drupal tips 'n tricks
Drupal tips 'n tricksDrupal tips 'n tricks
Drupal tips 'n tricks
John Tsevdos
 
The State of Front-end At CrowdTwist
The State of Front-end At CrowdTwistThe State of Front-end At CrowdTwist
The State of Front-end At CrowdTwist
Mark Fayngersh
 
An approach to implement model classes in zend
An approach to implement model classes in zendAn approach to implement model classes in zend
An approach to implement model classes in zend
swiss IT bridge
 

Similar a Odoo - Business intelligence: Develop cube views for your own objects (20)

Develop an App with the Odoo Framework
Develop an App with the Odoo FrameworkDevelop an App with the Odoo Framework
Develop an App with the Odoo Framework
 
Drupal Views development
Drupal Views developmentDrupal Views development
Drupal Views development
 
The Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
The Function, the Context, and the Data—Enabling ML Ops at Stitch FixThe Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
The Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
 
Simplify Feature Engineering in Your Data Warehouse
Simplify Feature Engineering in Your Data WarehouseSimplify Feature Engineering in Your Data Warehouse
Simplify Feature Engineering in Your Data Warehouse
 
Drupal tips 'n tricks
Drupal tips 'n tricksDrupal tips 'n tricks
Drupal tips 'n tricks
 
Social Networking using ROR
Social Networking using RORSocial Networking using ROR
Social Networking using ROR
 
Data herding
Data herdingData herding
Data herding
 
Data herding
Data herdingData herding
Data herding
 
Brainomics - CrEDIBLE 2013
Brainomics - CrEDIBLE 2013Brainomics - CrEDIBLE 2013
Brainomics - CrEDIBLE 2013
 
BRAINOMICS A management system for exploring and merging heterogeneous brain ...
BRAINOMICS A management system for exploring and merging heterogeneous brain ...BRAINOMICS A management system for exploring and merging heterogeneous brain ...
BRAINOMICS A management system for exploring and merging heterogeneous brain ...
 
Webinar: Scaling MongoDB
Webinar: Scaling MongoDBWebinar: Scaling MongoDB
Webinar: Scaling MongoDB
 
Idef v4
Idef v4Idef v4
Idef v4
 
Vanjs backbone-powerpoint
Vanjs backbone-powerpointVanjs backbone-powerpoint
Vanjs backbone-powerpoint
 
Making views - DrupalGov Canberra 2017
Making views - DrupalGov Canberra 2017Making views - DrupalGov Canberra 2017
Making views - DrupalGov Canberra 2017
 
Planbox Backbone MVC
Planbox Backbone MVCPlanbox Backbone MVC
Planbox Backbone MVC
 
MVC Demystified: Essence of Ruby on Rails
MVC Demystified: Essence of Ruby on RailsMVC Demystified: Essence of Ruby on Rails
MVC Demystified: Essence of Ruby on Rails
 
Data Modeling Comparison: Tableau, Cognos and Power BI
Data Modeling Comparison: Tableau, Cognos and Power BIData Modeling Comparison: Tableau, Cognos and Power BI
Data Modeling Comparison: Tableau, Cognos and Power BI
 
Mvc4 crud operations.-kemuning senja
Mvc4 crud operations.-kemuning senjaMvc4 crud operations.-kemuning senja
Mvc4 crud operations.-kemuning senja
 
The State of Front-end At CrowdTwist
The State of Front-end At CrowdTwistThe State of Front-end At CrowdTwist
The State of Front-end At CrowdTwist
 
An approach to implement model classes in zend
An approach to implement model classes in zendAn approach to implement model classes in zend
An approach to implement model classes in zend
 

Más de Odoo

Más de Odoo (20)

Timesheet Workshop: The Timesheet App People Love!
Timesheet Workshop: The Timesheet App People Love!Timesheet Workshop: The Timesheet App People Love!
Timesheet Workshop: The Timesheet App People Love!
 
Odoo 3D Product View with Google Model-Viewer
Odoo 3D Product View with Google Model-ViewerOdoo 3D Product View with Google Model-Viewer
Odoo 3D Product View with Google Model-Viewer
 
Keynote - Vision & Strategy
Keynote - Vision & StrategyKeynote - Vision & Strategy
Keynote - Vision & Strategy
 
Opening Keynote - Unveilling Odoo 14
Opening Keynote - Unveilling Odoo 14Opening Keynote - Unveilling Odoo 14
Opening Keynote - Unveilling Odoo 14
 
Extending Odoo with a Comprehensive Budgeting and Forecasting Capability
Extending Odoo with a Comprehensive Budgeting and Forecasting CapabilityExtending Odoo with a Comprehensive Budgeting and Forecasting Capability
Extending Odoo with a Comprehensive Budgeting and Forecasting Capability
 
Managing Multi-channel Selling with Odoo
Managing Multi-channel Selling with OdooManaging Multi-channel Selling with Odoo
Managing Multi-channel Selling with Odoo
 
Product Configurator: Advanced Use Case
Product Configurator: Advanced Use CaseProduct Configurator: Advanced Use Case
Product Configurator: Advanced Use Case
 
Accounting Automation: How Much Money We Saved and How?
Accounting Automation: How Much Money We Saved and How?Accounting Automation: How Much Money We Saved and How?
Accounting Automation: How Much Money We Saved and How?
 
Rock Your Logistics with Advanced Operations
Rock Your Logistics with Advanced OperationsRock Your Logistics with Advanced Operations
Rock Your Logistics with Advanced Operations
 
Transition from a cost to a flow-centric organization
Transition from a cost to a flow-centric organizationTransition from a cost to a flow-centric organization
Transition from a cost to a flow-centric organization
 
Synchronization: The Supply Chain Response to Overcome the Crisis
Synchronization: The Supply Chain Response to Overcome the CrisisSynchronization: The Supply Chain Response to Overcome the Crisis
Synchronization: The Supply Chain Response to Overcome the Crisis
 
Running a University with Odoo
Running a University with OdooRunning a University with Odoo
Running a University with Odoo
 
Down Payments on Purchase Orders in Odoo
Down Payments on Purchase Orders in OdooDown Payments on Purchase Orders in Odoo
Down Payments on Purchase Orders in Odoo
 
Odoo Implementation in Phases - Success Story of a Retail Chain 3Sach food
Odoo Implementation in Phases - Success Story of a Retail Chain 3Sach foodOdoo Implementation in Phases - Success Story of a Retail Chain 3Sach food
Odoo Implementation in Phases - Success Story of a Retail Chain 3Sach food
 
Migration from Salesforce to Odoo
Migration from Salesforce to OdooMigration from Salesforce to Odoo
Migration from Salesforce to Odoo
 
Preventing User Mistakes by Using Machine Learning
Preventing User Mistakes by Using Machine LearningPreventing User Mistakes by Using Machine Learning
Preventing User Mistakes by Using Machine Learning
 
Becoming an Odoo Expert: How to Prepare for the Certification
Becoming an Odoo Expert: How to Prepare for the Certification Becoming an Odoo Expert: How to Prepare for the Certification
Becoming an Odoo Expert: How to Prepare for the Certification
 
Instant Printing of any Odoo Report or Shipping Label
Instant Printing of any Odoo Report or Shipping LabelInstant Printing of any Odoo Report or Shipping Label
Instant Printing of any Odoo Report or Shipping Label
 
How Odoo helped an Organization Grow 3 Fold
How Odoo helped an Organization Grow 3 FoldHow Odoo helped an Organization Grow 3 Fold
How Odoo helped an Organization Grow 3 Fold
 
From Shopify to Odoo
From Shopify to OdooFrom Shopify to Odoo
From Shopify to Odoo
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 

Odoo - Business intelligence: Develop cube views for your own objects

  • 1. Business Intelligence Develop cube views for your own objects
  • 2. Content 1. BI/Graph View 2. Technical Overview 3. Preparing Data 4. Displaying cube views 5. Case study: cross models 6. Conclusion
  • 4. BI/Graph View measure : can be aggregated (right now, only summed) dimension : can be grouped · ·
  • 5. A Short History of BI in Odoo pre 2014: list view + group bys, graph view Q1/Q2 2014: graph view rewrite -> pivot table + graphs, lots of backend work future: ? we're looking at searchview/BI view integration. · · ·
  • 8. Anatomy of BI/Graph View pivot tablepivot table: keeps the data, calls the ORM graph widgetgraph widget : user interaction graph viewgraph view : client interaction · · ·
  • 9. BI view xml <record<record id="..." model="ir.ui.view">> <field<field name="name">>crm.opportunity.report.graph</field></field> <field<field name="model">>crm.lead.report</field></field> <field<field name="arch" type="xml">> <graph<graph string="Leads Analysis" type="pivot" stacked="True">> <field<field name="date_deadline" type="row"/>/> <field<field name="stage_id" type="col"/>/> <field<field name="planned_revenue" type="measure"/>/> </graph></graph> </field></field> </record></record>
  • 10. BI view API In graph tag: string: title stacked: if bar chart is stacked/not stacked (default=false) type: mode (pivot, bar, pie, line) (default=bar) In field tags, type attribute: row : will be grouped by rows (dimension) col : will be grouped by cols (dimension) measure : will be aggregated if no type, measure by default · · · · · · ·
  • 11. Date/datetime Always want to be different: date/datetime have a special syntax for groupby: field_date:day, field_date:week, field_date:month (default) field_date:quarter, field_date:year <graph<graph string="Leads Analysis" type="pivot" stacked="True">> <field<field name="date_deadline:week" type="row"/>/> <field<field name="stage_id" type="col"/>/> <field<field name="planned_revenue" type="measure"/>/> </graph></graph> · · · · ·
  • 12. Graph widget setup Graph widget has two more options: visible_ui (true) : indicate if UI is visible heatmap_mode ('none') can be set to row/col/both · ·
  • 14. Odoo Model Odoo BI view will read the various fields. Depending on their type, it will use them for measures : every fields of type integer, float (except 'id') dimensions : right now: every fields defined in the 'group by' category in the search bar. later: every field that can be grouped by the db · · · ·
  • 15. Where is your data? The data needs to satisfy two conditions: be stored in the database (beware of functional fields not stored) be accessed from one single odoo model If yes, you're done. If not, two possibilities: can you extend a model? (stored functional fields, relational fields) can you create a custom model with a postgres view, to link the various models with the data? Bottom line: it needs to be in the DB · · · ·
  • 16. Extending a model WARNING: old API... Do not try this at home!!! classclass res_partner((osv..osv):): _name == 'res.partner' _inherit == 'res.partner' defdef _total_invoice((self,, cr,, uid,, ids,, ......):): ...... # [insert here nice looking code to # compute the total invoice of a customer] ...... returnreturn result _columns == {{ 'total_invoiced':: fields..function((_total_invoice,, string=="Total Invoiced",, type=='float',, store==True)) }}
  • 17. More advanced: Cross model analysis Example: purchase/report/purchase_report.py All reporting views use that technique. Warning: bypass the ORM
  • 19. Edit in live 1. go to developer mode 2. edit action, add 'graph', 3. edit views, create 'graph' 4. profit! Good for testing.
  • 20. Adding a BI view with xml Add the desired graph view: <record<record id="view_project_task_graph" model="ir.ui.view">> <field<field name="name">>project.task.graph</field></field> <field<field name="model">>project.task</field></field> <field<field name="arch" type="xml">> <graph<graph string="Project Tasks" type="bar">> <field<field name="project_id" type="row"/>/> <field<field name="planned_hours" type="measure"/>/> </graph></graph> </field></field> </record></record>
  • 21. Adding a BI view with xml(2) Add it to the action: <record<record id="action_view_task" model="ir.actions.act_window">> ... <field<field name="view_mode">>kanban,tree,form,calendar,gantt,graph</field></field> ... You can force the correct view: <field<field name="view_id" ref="view_project_task_graph"/>/>
  • 22. Advanced: client action In js, create a widget and append it to your view: thisthis..graph_widget == newnew openerp..web_graph..Graph(( thisthis,, some_model,, some_domain,, options);); thisthis..graph_widget..appendTo((thisthis..$el););
  • 23. Future of BI in odoo?