Merge PR #1516 into 12.0

Signed-off-by JordiBForgeFlow
pull/1554/head
OCA-git-bot 2020-03-17 09:58:20 +00:00
commit 183b9b0925
12 changed files with 1638 additions and 0 deletions

View File

@ -2,3 +2,6 @@
bokeh==1.1.0
# web_widget_plotly_chart
plotly==4.1.0
# web_widget_mpld3_chart
matplotlib>=2.0.0
mpld3==0.3

View File

@ -0,0 +1 @@
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).

View File

@ -0,0 +1,21 @@
# Copyright 2019 ForgeFlow, S.L.
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
{
"name": "Web Widget mpld3 Chart",
"category": "Hidden",
"summary": "This widget allows to display charts using MPLD3 library.",
"author": "ForgeFlow, "
"Odoo Community Association (OCA)",
"version": "12.0.1.0.0",
"website": "https://github.com/OCA/web",
"depends": ["web"],
"data": [
"views/web_widget_mpld3_chart.xml",
],
"external_dependencies": {
"python": ['mpld3'],
},
"auto_install": False,
"license": "LGPL-3",
}

View File

@ -0,0 +1 @@
* Jordi Ballester Alomar <jordi.ballester@eficent.com>

View File

@ -0,0 +1,4 @@
* This module uses the library `mpld3 <https://github.com/mpld3/mpld3>`__
which is under the open-source BSD 3-clause "New" or "Revised" License.
Copyright (c) 2013, Jake Vanderplas
* Odoo Community Association (OCA)

View File

@ -0,0 +1,5 @@
This module adds the possibility to insert mpld3 charts into Odoo standard views.
This is an interactive D3js-based viewer which brings matplotlib graphics to the browser.
If you want to see some samples of mpld3's capabilities follow this `link
<http://mpld3.github.io/>`_.

View File

@ -0,0 +1,3 @@
You need to install the python mpld3 library::
pip install mpld3

View File

@ -0,0 +1,28 @@
To insert a mpld3 chart in a view proceed as follows:
#. Import the required libraries::
import matplotlib.pyplot as plt, mpld3
#. Declare a text computed field like this::
mpld3_chart = fields.Text(
string='Mpld3 Chart',
compute='_compute_mpld3_chart',
)
#. In its computed method do::
def _compute_mpld3_chart(self):
for rec in self:
# Design your mpld3 figure:
plt.scatter([1, 10], [5, 9])
figure = plt.figure()
rec.mpld3_chart = mpld3.fig_to_html(figure)
#. In the view, add something like this wherever you want to display your
mpld3 chart::
<div>
<field name="mpld3_chart" widget="mpld3_chart" nolabel="1"/>
</div>

View File

@ -0,0 +1,17 @@
odoo.define('web_widget_mpld3_chart', function (require) {
"use strict";
var fieldRegistry = require('web.field_registry');
var AbstractField = require('web.AbstractField');
var Mpld3ChartWidget = AbstractField.extend({
start: function() {
var val = this.value;
this.$el.html(val);
}
});
fieldRegistry.add('mpld3_chart', Mpld3ChartWidget);
return {
Mpld3ChartWidget: Mpld3ChartWidget
};
});

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="assets_backend" name="web_widget_mpld3_chart assets"
inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<script type="text/javascript" src="/web_widget_mpld3_chart/static/src/lib/d3/d3.v3.min.js"/>
<script type="text/javascript" src="/web_widget_mpld3_chart/static/src/lib/mpld3/mpld3.v0.3.1.dev1.js"/>
<script type="text/javascript" src="/web_widget_mpld3_chart/static/src/js/web_widget_mpld3_chart.js"/>
</xpath>
</template>
</odoo>