diff options
| -rw-r--r-- | addons/web/static/src/js/views/graph/graph_renderer.js | 9 | ||||
| -rw-r--r-- | addons/web/static/tests/views/graph_tests.js | 28 |
2 files changed, 32 insertions, 5 deletions
diff --git a/addons/web/static/src/js/views/graph/graph_renderer.js b/addons/web/static/src/js/views/graph/graph_renderer.js index b18e508d420..05852722083 100644 --- a/addons/web/static/src/js/views/graph/graph_renderer.js +++ b/addons/web/static/src/js/views/graph/graph_renderer.js @@ -365,7 +365,7 @@ return AbstractRenderer.extend({ } } - if (!tickValues) { + if (!tickValues.length) { tickValues = graphData.map(function (d, i) { return i; }); @@ -415,6 +415,13 @@ return AbstractRenderer.extend({ } } + // Delete first and last label because there is no enough space because + // of the tiny margins. + if (ticksLabels.length > 3) { + ticksLabels[0] = []; + ticksLabels[ticksLabels.length - 1] = []; + } + var $svgContainer = $('<div/>', {class: 'o_graph_svg_container'}); this.$el.append($svgContainer); var svg = d3.select($svgContainer[0]).append('svg'); diff --git a/addons/web/static/tests/views/graph_tests.js b/addons/web/static/tests/views/graph_tests.js index 595ed3f31dd..2d46cd4411c 100644 --- a/addons/web/static/tests/views/graph_tests.js +++ b/addons/web/static/tests/views/graph_tests.js @@ -26,6 +26,7 @@ QUnit.module('Views', { {id: 5, foo: 4, bar: false, product_id: 41, date: "2016-05-01"}, {id: 6, foo: 63, bar: false, product_id: 41}, {id: 7, foo: 42, bar: false, product_id: 41}, + {id: 8, foo: 48, bar: false, product_id: 41, date: "2016-04-01"}, ] }, product: { @@ -84,8 +85,8 @@ QUnit.module('Views', { // So, instead we will do some white box testing. assert.strictEqual(graph.model.chart.data[0].value, 3, "should have first datapoint with value 3"); - assert.strictEqual(graph.model.chart.data[1].value, 4, - "should have first datapoint with value 4"); + assert.strictEqual(graph.model.chart.data[1].value, 5, + "should have first datapoint with value 5"); graph.destroy(); done(); }); @@ -167,6 +168,24 @@ QUnit.module('Views', { }); }); + QUnit.test('displaying line chart data with multiple data point', function (assert) { + assert.expect(1); + + var graph = createView({ + View: GraphView, + model: "foo", + data: this.data, + arch: '<graph type="line">' + + '<field name="date"/>' + + '</graph>', + }); + + assert.strictEqual(graph.$('.nv-x text').text(), "March 2016May 2016", + "should contain intermediate x labels only"); + + graph.destroy(); + }); + QUnit.test('displaying line chart data with multiple groupbys', function (assert) { // this test makes sure the line chart shows all data labels (X axis) when // it is grouped by several fields @@ -731,7 +750,7 @@ QUnit.module('Views', { }); QUnit.test('Undefined should appear in bar, pie graph but not in line graph', function (assert) { - assert.expect(4); + assert.expect(5); var graph = createView({ View: GraphView, @@ -744,7 +763,8 @@ QUnit.module('Views', { }); assert.strictEqual(graph.$("svg.nvd3-svg:contains('Undefined')").length, 0); - assert.strictEqual(graph.$("svg.nvd3-svg:contains('January')").length, 1); + assert.strictEqual(graph.$("svg.nvd3-svg:contains('January')").length, 0); + assert.strictEqual(graph.$("svg.nvd3-svg:contains('March')").length, 1); graph.$buttons.find('.o_graph_button[data-mode=bar]').click(); assert.strictEqual(graph.$("svg.nvd3-svg:contains('Undefined')").length, 1); |
