diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index a8973d760fa..a50eba07259 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -1329,7 +1329,6 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt }, process_statbutton: function ($button) { var self = this; - console.log('yenrst'); if ($button.children().length) { $button.children().each(function() { self.process($(this)); @@ -2837,6 +2836,52 @@ instance.web.form.FieldProgressBar = instance.web.form.AbstractField.extend({ } }); +/** + The PercentPie field expect a float from 0 to 100. +*/ +instance.web.form.FieldPercentPie = instance.web.form.AbstractField.extend({ + template: 'FieldPercentPie', + + render_value: function() { + var value = this.get('value'), + formatted_value = Math.round(value || 0) + '%', + svg = this.$('svg')[0]; + + svg.innerHTML = ""; + nv.addGraph(function() { + var size=43; + var chart = nv.models.pieChart() + .width(size) + .height(size) + .margin({top: 0, right: 0, bottom: 0, left: 0}) + .donut(true) + .showLegend(false) + .showLabels(false) + .donutRatio(0.62); + + d3.select(svg) + .datum([{'x': 'value', 'y': value}, {'x': 'complement', 'y': 100 - value}]) + .transition() + .call(chart) + .attr('width', size) + .attr('height',size); + + d3.select(svg) + .append("text") + .attr("x", size/2) + .attr("y", size/2 + 3) + .style("font-size", "10px") + .style("font-weight", "bold") + .attr("text-anchor", "middle") + .text(formatted_value); + + return chart; + }); + + } +}); + + instance.web.form.FieldSelection = instance.web.form.AbstractField.extend(instance.web.form.ReinitializeFieldMixin, { template: 'FieldSelection', @@ -5884,6 +5929,29 @@ instance.web.form.X2ManyCounter = instance.web.form.AbstractField.extend(instanc } }); +/** + This field can be applied on many2many and one2many. It is a read-only field that will + display a simple string "