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