Initial commit: Odoo 18.0-20251222 extra-addons
This commit is contained in:
223
web_widget_bokeh_chart/README.rst
Executable file
223
web_widget_bokeh_chart/README.rst
Executable file
@@ -0,0 +1,223 @@
|
||||
======================
|
||||
Web Widget Bokeh Chart
|
||||
======================
|
||||
|
||||
..
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!! This file is generated by oca-gen-addon-readme !!
|
||||
!! changes will be overwritten. !!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!! source digest: sha256:68a7602ff694c2f64f58b06737f39dd42cd2e76bce05f95ef2b540124ff0d98f
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png
|
||||
:target: https://odoo-community.org/page/development-status
|
||||
:alt: Production/Stable
|
||||
.. |badge2| image:: https://img.shields.io/badge/licence-LGPL--3-blue.png
|
||||
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
|
||||
:alt: License: LGPL-3
|
||||
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github
|
||||
:target: https://github.com/OCA/web/tree/18.0/web_widget_bokeh_chart
|
||||
:alt: OCA/web
|
||||
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
|
||||
:target: https://translation.odoo-community.org/projects/web-18-0/web-18-0-web_widget_bokeh_chart
|
||||
:alt: Translate me on Weblate
|
||||
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
|
||||
:target: https://runboat.odoo-community.org/builds?repo=OCA/web&target_branch=18.0
|
||||
:alt: Try me on Runboat
|
||||
|
||||
|badge1| |badge2| |badge3| |badge4| |badge5|
|
||||
|
||||
This module add the possibility to insert Bokeh charts into Odoo
|
||||
standard views.
|
||||
|
||||
|Bokeh Chart inserted into an Odoo view|
|
||||
|
||||
`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>`__.
|
||||
|
||||
.. |Bokeh Chart inserted into an Odoo view| image:: https://raw.githubusercontent.com/OCA/web/18.0/web_widget_bokeh_chart/static/description/example.png
|
||||
|
||||
**Table of contents**
|
||||
|
||||
.. contents::
|
||||
:local:
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
You need to install the python bokeh library:
|
||||
|
||||
::
|
||||
|
||||
pip3 install bokeh==3.1.1
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
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
|
||||
|
||||
Known issues / Roadmap
|
||||
======================
|
||||
|
||||
1. On 17, we could remove the char field and only use the Json Field
|
||||
|
||||
Bug Tracker
|
||||
===========
|
||||
|
||||
Bugs are tracked on `GitHub Issues <https://github.com/OCA/web/issues>`_.
|
||||
In case of trouble, please check there if your issue has already been reported.
|
||||
If you spotted it first, help us to smash it by providing a detailed and welcomed
|
||||
`feedback <https://github.com/OCA/web/issues/new?body=module:%20web_widget_bokeh_chart%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
|
||||
|
||||
Do not contact contributors directly about support or help with technical issues.
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
Authors
|
||||
-------
|
||||
|
||||
* ForgeFlow
|
||||
* Creu Blanca
|
||||
|
||||
Contributors
|
||||
------------
|
||||
|
||||
- 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>
|
||||
|
||||
Other credits
|
||||
-------------
|
||||
|
||||
- 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)
|
||||
|
||||
Maintainers
|
||||
-----------
|
||||
|
||||
This module is maintained by the OCA.
|
||||
|
||||
.. image:: https://odoo-community.org/logo.png
|
||||
:alt: Odoo Community Association
|
||||
:target: https://odoo-community.org
|
||||
|
||||
OCA, or the Odoo Community Association, is a nonprofit organization whose
|
||||
mission is to support the collaborative development of Odoo features and
|
||||
promote its widespread use.
|
||||
|
||||
.. |maintainer-LoisRForgeFlow| image:: https://github.com/LoisRForgeFlow.png?size=40px
|
||||
:target: https://github.com/LoisRForgeFlow
|
||||
:alt: LoisRForgeFlow
|
||||
.. |maintainer-JasminSForgeFlow| image:: https://github.com/JasminSForgeFlow.png?size=40px
|
||||
:target: https://github.com/JasminSForgeFlow
|
||||
:alt: JasminSForgeFlow
|
||||
|
||||
Current `maintainers <https://odoo-community.org/page/maintainer-role>`__:
|
||||
|
||||
|maintainer-LoisRForgeFlow| |maintainer-JasminSForgeFlow|
|
||||
|
||||
This module is part of the `OCA/web <https://github.com/OCA/web/tree/18.0/web_widget_bokeh_chart>`_ project on GitHub.
|
||||
|
||||
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
|
||||
Reference in New Issue
Block a user