diff --git a/__manifest__.py b/__manifest__.py
index 2097420890306516a1f89d83d59491529eb14cef..5b101fd91094c5e787ad8f98c689dab66f9cbb8d 100755
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
{
'name': 'Library pyecharts',
- 'version': '12.0.0.1',
+ 'version': '15.0.0.1',
'description': '',
'author': 'huaqiangyan@163.com',
'depends': ['web'],
@@ -27,6 +27,13 @@
'library_pyecharts/static/src/js/theme_infographic.js',
'library_pyecharts/static/src/js/theme_roma.js',
'library_pyecharts/static/src/js/theme_shine.js',
+ 'library_pyecharts/static/src/js/bar_render.js',
+ 'library_pyecharts/static/src/js/view_bar.js',
+ 'library_pyecharts/static/src/js/pie_render.js',
+ 'library_pyecharts/static/src/js/view_pie.js',
+
+ # 'library_pyecharts/static/src/js/**/*',
+ # 'library_pyecharts/static/src/css/**/*',
],
'web.assets_qweb': [
'library_pyecharts/static/src/xml/**/*',
diff --git a/controllers/echarts.py b/controllers/echarts.py
index c56f670b9718c16225b15e95eaf7c4fc42d5be65..396916f01b2d5a0dd3c0236c0f2f056d1a5394af 100755
--- a/controllers/echarts.py
+++ b/controllers/echarts.py
@@ -26,7 +26,7 @@ class Demo(http.Controller):
class PyEcharts(http.Controller):
@http.route('/pyecharts', auth='public', type='http', cors='*', methods=['POST', 'GET'], csrf=False)
- def pyecharts(self):
+ def pyecharts(self, model=None, etype=None):
"""
{
'column': 2 / 1,
@@ -66,13 +66,8 @@ class PyEcharts(http.Controller):
'content': notice.content,
'ntype': notice.ntype,
})
+ dashboard_dict['echarts_data'] = _get_chart(label=etype)
return json.dumps(dashboard_dict)
- # return json.dumps({
- # 'bar1': json.loads(bar1_base()),
- # 'bar2': json.loads(bar2_base()),
- # 'bar3': json.loads(bar3_base()),
- # 'bar4': json.loads(bar4_base()),
- # })
def _get_chart(label=None):
diff --git a/models/__init__.py b/models/__init__.py
index 820f9f3b36b020eb74802c224050e93cc613f9a4..748cdaeac8ef77750021957be94fc2f23eeecba4 100644
--- a/models/__init__.py
+++ b/models/__init__.py
@@ -1,3 +1,4 @@
from . import echarts_type
from . import dashboard
from . import notice
+from . import view_type
diff --git a/models/view_type.py b/models/view_type.py
new file mode 100644
index 0000000000000000000000000000000000000000..2cb42b80c2680b6e231fa8c956f5defd2b25f0da
--- /dev/null
+++ b/models/view_type.py
@@ -0,0 +1,13 @@
+from odoo import fields, models, api, _
+
+
+class View(models.Model):
+ _inherit = 'ir.ui.view'
+
+ type = fields.Selection(selection_add=[('bar', 'Bar'), ('pie', 'Pie')])
+
+
+class ActWindowView(models.Model):
+ _inherit = 'ir.actions.act_window.view'
+
+ view_mode = fields.Selection(selection_add=[('bar', "Bar"), ('pie', 'Pie')], ondelete={'bar': 'cascade', 'pie': 'cascade'})
diff --git a/static/img/21111200.jpg b/static/img/21111200.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3f09dcd98ef290365a21aa3e81b8b2500cc91d3a
Binary files /dev/null and b/static/img/21111200.jpg differ
diff --git a/static/img/21111201.jpg b/static/img/21111201.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2a23636afc7cbe2090c250dc1bd15a19617c1d63
Binary files /dev/null and b/static/img/21111201.jpg differ
diff --git a/static/src/js/bar_render.js b/static/src/js/bar_render.js
new file mode 100755
index 0000000000000000000000000000000000000000..ca06951a468a79872c8aad91a4b011d8db30a832
--- /dev/null
+++ b/static/src/js/bar_render.js
@@ -0,0 +1,46 @@
+odoo.define('library_pyecharts.BarRenderer', function (require) {
+ 'use strict';
+
+ var AbstractRenderer = require('web.AbstractRenderer');
+
+
+ return AbstractRenderer.extend({
+
+
+ template: 'BarTemplate',
+
+
+ _consoleBtn: function() {
+ console.log(this.state.model);
+
+ },
+
+ init: function(parent, data){
+ return this._super.apply(this, arguments);
+ },
+
+ start: function(){
+ this._consoleBtn();
+ var model = this.state.model;
+ $(document).ready(function() {
+ $.ajax({
+ type: "GET",
+ url: "/pyecharts",
+ data: {model: model, etype: "Bar"},
+ dataType: 'json',
+ success: function (result) {
+ var echartsData = result.echarts_data;
+ var bar = document.getElementById("bar");
+ var chart = echarts.init(bar, 'shine', {renderer: 'canvas'});
+ chart.setOption(echartsData);
+ },
+ error: function (request) {
+ console.log("error")
+ },
+ });
+ });
+ return true;
+ },
+ });
+
+});
diff --git a/static/src/js/pie_render.js b/static/src/js/pie_render.js
new file mode 100755
index 0000000000000000000000000000000000000000..11fd9aabf09bafd630556293450e257844cdfeaf
--- /dev/null
+++ b/static/src/js/pie_render.js
@@ -0,0 +1,46 @@
+odoo.define('library_pyecharts.PieRenderer', function (require) {
+ 'use strict';
+
+ var AbstractRenderer = require('web.AbstractRenderer');
+
+
+ return AbstractRenderer.extend({
+
+
+ template: 'PieTemplate',
+
+
+ _consoleBtn: function() {
+ console.log(this.state.model);
+
+ },
+
+ init: function(parent, data){
+ return this._super.apply(this, arguments);
+ },
+
+ start: function(){
+ this._consoleBtn();
+ var model = this.state.model;
+ $(document).ready(function() {
+ $.ajax({
+ type: "GET",
+ url: "/pyecharts",
+ data: {model: model, etype: "Pie"},
+ dataType: 'json',
+ success: function (result) {
+ var echartsData = result.echarts_data;
+ var pie = document.getElementById("pie");
+ var chart = echarts.init(pie, 'shine', {renderer: 'canvas'});
+ chart.setOption(echartsData);
+ },
+ error: function (request) {
+ console.log("error")
+ },
+ });
+ });
+ return true;
+ },
+ });
+
+});
diff --git a/static/src/js/view_bar.js b/static/src/js/view_bar.js
new file mode 100755
index 0000000000000000000000000000000000000000..89a08a3ac7186957175bbaf22020829713114f65
--- /dev/null
+++ b/static/src/js/view_bar.js
@@ -0,0 +1,19 @@
+odoo.define('library_pyecharts.view_bar', function (require) {
+ "use strict";
+
+ var BasicView = require('web.BasicView');
+ var BarRenderer = require('library_pyecharts.BarRenderer');
+
+ var viewRegistry = require('web.view_registry');
+
+ var BarView = BasicView.extend({
+ display_name: 'Bar View',
+ icon: 'fa-video-camera',
+ config: _.extend({}, BasicView.prototype.config, {
+ Renderer: BarRenderer,
+ }),
+ viewType: 'bar',
+ });
+ viewRegistry.add('bar', BarView);
+ return BarView
+});
diff --git a/static/src/js/view_pie.js b/static/src/js/view_pie.js
new file mode 100755
index 0000000000000000000000000000000000000000..aeca9c9b22756705186fc5cf1e3ff9a239e180ec
--- /dev/null
+++ b/static/src/js/view_pie.js
@@ -0,0 +1,19 @@
+odoo.define('library_pyecharts.view_pie', function (require) {
+ "use strict";
+
+ var BasicView = require('web.BasicView');
+ var PieRenderer = require('library_pyecharts.PieRenderer');
+
+ var viewRegistry = require('web.view_registry');
+
+ var PieView = BasicView.extend({
+ display_name: 'Pie View',
+ icon: 'fa-video-camera',
+ config: _.extend({}, BasicView.prototype.config, {
+ Renderer: PieRenderer,
+ }),
+ viewType: 'pie',
+ });
+ viewRegistry.add('pie', PieView);
+ return PieView
+});
diff --git a/static/src/xml/bar_template.xml b/static/src/xml/bar_template.xml
new file mode 100755
index 0000000000000000000000000000000000000000..3c86cd3971d36f1c57ad7883bc7c900c614f45e5
--- /dev/null
+++ b/static/src/xml/bar_template.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
diff --git a/static/src/xml/pie_template.xml b/static/src/xml/pie_template.xml
new file mode 100755
index 0000000000000000000000000000000000000000..0cd770f3c391bf4f4d60e7a1e3652f602c236e50
--- /dev/null
+++ b/static/src/xml/pie_template.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
diff --git a/views/echarts_notice_view.xml b/views/echarts_notice_view.xml
index e3fe65c4e30a0bab955030ef1b02f146b96902c3..2babafda6ad4da396330bbc379f6eb80a0e2af98 100644
--- a/views/echarts_notice_view.xml
+++ b/views/echarts_notice_view.xml
@@ -32,10 +32,30 @@
+
+ Notice Bar
+ echarts.notice
+
+
+
+
+
+
+
+
+ Notice Pie
+ echarts.notice
+
+
+
+
+
+
+
Echarts Notice
echarts.notice
- tree,form
+ tree,form,bar,pie
Create Echarts Notice