Initial commit: Odoo 18.0-20251222 extra-addons
Some checks failed
pre-commit / pre-commit (push) Has been cancelled
tests / Detect unreleased dependencies (push) Has been cancelled
tests / test with OCB (push) Has been cancelled
tests / test with Odoo (push) Has been cancelled

This commit is contained in:
tocmo0nlord
2026-03-13 20:43:25 +00:00
parent 36e847a7df
commit adbe430761
9472 changed files with 1265727 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
- Jordi Ballester Alomar \<<jordi.ballester@forgeflow.com>\>
- Lois Rilo Antelo \<<lois.rilo@forgeflow.com>\>
- Artem Kostyuk \<<a.kostyuk@mobilunity.com>\>
- Christopher Ormaza \<<chris.ormaza@forgeflow.com>\>
- Enric Tobella \<<etobella@creublanca.es>\>
- Oriol Miranda Garrido \<<oriol.miranda@forgeflow.com>\>
- Bernat Puig Font \<<bernat.puig@forgeflow.com>\>

View File

@@ -0,0 +1,4 @@
- This module uses the library [Bokeh](https://github.com/bokeh/bokeh)
which is under the open-source BSD 3-clause "New" or "Revised"
License. Copyright (c) 2012, Anaconda, Inc.
- Odoo Community Association (OCA)

View File

@@ -0,0 +1,15 @@
This module add the possibility to insert Bokeh charts into Odoo
standard views.
![Bokeh Chart inserted into an Odoo view](../static/description/example.png)
[Bokeh](https://bokeh.pydata.org) is a Python interactive visualization
library that targets modern web browsers for presentation. Its goal is
to provide elegant, concise construction of basic exploratory and
advanced custom graphics in the style of D3.js, but also deliver this
capability with high-performance interactivity over very large or
streaming datasets. Bokeh can help anyone who would like to quickly and
easily create interactive plots, dashboards, and data applications.
If you want to see some samples of bokeh's capabilities follow this
[link](https://bokeh.pydata.org/en/latest/docs/gallery.html).

View File

@@ -0,0 +1,3 @@
You need to install the python bokeh library:
pip3 install bokeh==3.1.1

View File

@@ -0,0 +1 @@
1. On 17, we could remove the char field and only use the Json Field

View File

@@ -0,0 +1,67 @@
To insert a Bokeh chart in a view proceed as follows:
## Using a Char field
1. Declare a text computed field like this:
bokeh_chart = fields.Text(
string='Bokeh Chart',
compute='_compute_bokeh_chart',
)
2. At the top of the module add the following imports:
from bokeh.plotting import figure
from bokeh.embed import components
import json
3. In its computed method do:
def _compute_bokeh_chart(self):
for rec in self:
# Design your bokeh figure:
p = figure()
line = p.line([0, 2], [1, 8], line_width=5)
# (...)
# fill the record field with both markup and the script of a chart.
script, div = components(p, wrap_script=False)
rec.bokeh_chart = json.dumps({"div": div, "script": script})
4. In the view, add something like this wherever you want to display
your bokeh chart:
<div>
<field name="bokeh_chart" widget="bokeh_chart" nolabel="1"/>
</div>
## Using a Json field
1. Declare a json computed field like this:
bokeh_chart = fields.Json(
string='Bokeh Chart',
compute='_compute_bokeh_chart',
)
2. At the top of the module add the following imports:
from bokeh.plotting import figure
from bokeh.embed import components
3. In its computed method do:
def _compute_bokeh_chart(self):
for rec in self:
# Design your bokeh figure:
p = figure()
line = p.line([0, 2], [1, 8], line_width=5)
# (...)
# fill the record field with both markup and the script of a chart.
script, div = components(p, wrap_script=False)
rec.bokeh_chart = {"div": div, "script": script}
4. In the view, add something like this wherever you want to display
your bokeh chart:
<div>
<field name="bokeh_chart" widget="bokeh_chart_json