mirror of
https://github.com/OCA/web.git
synced 2025-02-22 13:21:25 +02:00
[9.0][ADD] web_widget_bokeh_chart
This commit is contained in:
committed by
Christopher Ormaza
parent
dd34be2563
commit
42d66d62c6
97
web_widget_bokeh_chart/README.rst
Normal file
97
web_widget_bokeh_chart/README.rst
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
.. image:: https://img.shields.io/badge/licence-LGPL--3-blue.svg
|
||||||
|
:alt: License LGPL-3
|
||||||
|
|
||||||
|
======================
|
||||||
|
Web Widget Bokeh Chart
|
||||||
|
======================
|
||||||
|
|
||||||
|
This module add the posibility to insert Bokeh charts into Odoo standard views.
|
||||||
|
|
||||||
|
.. image:: /web_widget_bokeh_chart/static/description/example.png
|
||||||
|
:alt: Bokeh Chart inserted into an Odoo view
|
||||||
|
:width: 600 px
|
||||||
|
|
||||||
|
`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>`_.
|
||||||
|
|
||||||
|
Installation
|
||||||
|
============
|
||||||
|
|
||||||
|
You need to install the python bokeh library::
|
||||||
|
|
||||||
|
pip install bokeh==0.12.7
|
||||||
|
|
||||||
|
Usage
|
||||||
|
=====
|
||||||
|
|
||||||
|
To insert a Bokeh chart in a view proceed as follows:
|
||||||
|
|
||||||
|
#. Declare a text computed field like this::
|
||||||
|
|
||||||
|
bokeh_chart = fields.Text(
|
||||||
|
string='Bokeh Chart',
|
||||||
|
compute=_compute_bokeh_chart)
|
||||||
|
|
||||||
|
#. 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)
|
||||||
|
# (...)
|
||||||
|
# Get the html components and convert them to string into the field.
|
||||||
|
script, div = components(p)
|
||||||
|
rec.bokeh_chart = '%s%s' % (div, script)
|
||||||
|
|
||||||
|
#. 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>
|
||||||
|
|
||||||
|
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 smash it by providing detailed and
|
||||||
|
welcomed feedback.
|
||||||
|
|
||||||
|
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)
|
||||||
|
|
||||||
|
Contributors
|
||||||
|
------------
|
||||||
|
|
||||||
|
* Jordi Ballester Alomar <jordi.ballester@eficent.com>
|
||||||
|
* Lois Rilo Antelo <lois.rilo@eficent.com>
|
||||||
|
|
||||||
|
Maintainer
|
||||||
|
----------
|
||||||
|
|
||||||
|
.. image:: http://odoo-community.org/logo.png
|
||||||
|
:alt: Odoo Community Association
|
||||||
|
:target: http://odoo-community.org
|
||||||
|
|
||||||
|
This module is maintained by the OCA.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
To contribute to this module, please visit http://odoo-community.org.
|
||||||
1
web_widget_bokeh_chart/__init__.py
Normal file
1
web_widget_bokeh_chart/__init__.py
Normal file
@@ -0,0 +1 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
22
web_widget_bokeh_chart/__openerp__.py
Normal file
22
web_widget_bokeh_chart/__openerp__.py
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
|
||||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).#
|
||||||
|
|
||||||
|
{
|
||||||
|
"name": "Web Widget Bokeh Chart",
|
||||||
|
"category": "Hidden",
|
||||||
|
"summary": "This widget allows to display charts using Bokeh library.",
|
||||||
|
"author": "Eficent, "
|
||||||
|
"Odoo Community Association (OCA)",
|
||||||
|
"version": "9.0.1.0.0",
|
||||||
|
"website": "https://github.com/OCA/web",
|
||||||
|
"depends": ["web"],
|
||||||
|
"data": [
|
||||||
|
"views/web_widget_bokeh_chart.xml",
|
||||||
|
],
|
||||||
|
"external_dependencies": {
|
||||||
|
"python": ['bokeh'],
|
||||||
|
},
|
||||||
|
"auto_install": False,
|
||||||
|
"license": "AGPL-3",
|
||||||
|
}
|
||||||
BIN
web_widget_bokeh_chart/static/description/example.png
Normal file
BIN
web_widget_bokeh_chart/static/description/example.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 152 KiB |
BIN
web_widget_bokeh_chart/static/description/icon.png
Normal file
BIN
web_widget_bokeh_chart/static/description/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.4 KiB |
@@ -0,0 +1,21 @@
|
|||||||
|
odoo.define('web_widget_bokeh_chart', function (require) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
var core = require('web.core');
|
||||||
|
var form_common = require('web.form_common');
|
||||||
|
var formats = require('web.formats');
|
||||||
|
var Model = require('web.Model');
|
||||||
|
|
||||||
|
var QWeb = core.qweb;
|
||||||
|
|
||||||
|
var BokehChartWidget = form_common.AbstractField.extend({
|
||||||
|
render_value: function() {
|
||||||
|
var val = this.get('value');
|
||||||
|
this.$el.html(val);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
core.form_widget_registry.add('bokeh_chart', BokehChartWidget);
|
||||||
|
return {
|
||||||
|
BokehChartWidget: BokehChartWidget
|
||||||
|
};
|
||||||
|
});
|
||||||
535
web_widget_bokeh_chart/static/src/lib/bokeh/bokeh-0.12.7.css
Normal file
535
web_widget_bokeh_chart/static/src/lib/bokeh/bokeh-0.12.7.css
Normal file
File diff suppressed because one or more lines are too long
44686
web_widget_bokeh_chart/static/src/lib/bokeh/bokeh-0.12.7.js
Normal file
44686
web_widget_bokeh_chart/static/src/lib/bokeh/bokeh-0.12.7.js
Normal file
File diff suppressed because one or more lines are too long
1835
web_widget_bokeh_chart/static/src/lib/bokeh/bokeh-widgets-0.12.7.css
Normal file
1835
web_widget_bokeh_chart/static/src/lib/bokeh/bokeh-widgets-0.12.7.css
Normal file
File diff suppressed because it is too large
Load Diff
5383
web_widget_bokeh_chart/static/src/lib/bokeh/bokeh-widgets-0.12.7.js
Normal file
5383
web_widget_bokeh_chart/static/src/lib/bokeh/bokeh-widgets-0.12.7.js
Normal file
File diff suppressed because it is too large
Load Diff
15
web_widget_bokeh_chart/views/web_widget_bokeh_chart.xml
Normal file
15
web_widget_bokeh_chart/views/web_widget_bokeh_chart.xml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<odoo>
|
||||||
|
|
||||||
|
<template id="assets_backend" name="web_widget_bokeh_chart assets"
|
||||||
|
inherit_id="web.assets_backend">
|
||||||
|
<xpath expr="." position="inside">
|
||||||
|
<link rel="stylesheet" href="/web_widget_bokeh_chart/static/src/lib/bokeh/bokeh-0.12.7.css"/>
|
||||||
|
<link rel="stylesheet" href="/web_widget_bokeh_chart/static/src/lib/bokeh/bokeh-widgets-0.12.7.css"/>
|
||||||
|
<script type="text/javascript" src="/web_widget_bokeh_chart/static/src/lib/bokeh/bokeh-0.12.7.js"/>
|
||||||
|
<script type="text/javascript" src="/web_widget_bokeh_chart/static/src/lib/bokeh/bokeh-widgets-0.12.7.js"/>
|
||||||
|
<script type="text/javascript" src="/web_widget_bokeh_chart/static/src/js/web_widget_bokeh_chart.js"/>
|
||||||
|
</xpath>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
</odoo>
|
||||||
Reference in New Issue
Block a user