[IMP] web: new pivot view, full rewrite of graph view

This commit is a split of the former graphview into a pivot view (the
tabular view) and graph view (the various charts).  The code was fully
rewritten.
* pivot view should be faster (better underlying data structure and
better algorithm)
* better integration with the web client (use of sidebar, of menu buttons,
bettor style)
* new feature: pivot view can be sorted
* new feature: pivot view cells can be clicked to open a list view with
the corresponding domain
* web_graph addon was removed, and the graph view code has been moved
to the addon web.
* the interaction with the searchbar was changed (no more column facet)
* better and simpler code for graph view
* mary corner cases in graph charts have been corrected (for ex, pie
chart with positive and negative numbers)
* graph/pivot correctly save their state when added to dashboard/saved
(state such as current measure, chart mode, column groupbys, ...)
This commit is contained in:
Géry Debongnie
2014-12-19 14:34:23 +01:00
parent 9f7a0c096f
commit 2c08dc0ba6
78 changed files with 1805 additions and 12389 deletions
+1 -1
View File
@@ -1 +1 @@
from . import main
from . import main, pivot
-4
View File
@@ -1638,7 +1638,3 @@ class Apps(http.Controller):
sakey = Session().save_session_action(action)
debug = '?debug' if req.debug else ''
return werkzeug.utils.redirect('/web{0}#sa={1}'.format(debug, sakey))
# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -11,12 +11,12 @@ except ImportError:
class TableExporter(http.Controller):
@http.route('/web_graph/check_xlwt', type='json', auth='none')
@http.route('/web/pivot/check_xlwt', type='json', auth='none')
def check_xlwt(self):
return xlwt is not None
@http.route('/web_graph/export_xls', type='http', auth="user")
@http.route('/web/pivot/export_xls', type='http', auth="user")
def export_xls(self, data, token):
jdata = simplejson.loads(data)
nbr_measures = jdata['nbr_measures']
@@ -63,7 +63,7 @@ class TableExporter(http.Controller):
worksheet.write(y,0, '', header_plain)
for measure in jdata['measure_row']:
style = header_bold if measure['is_bold'] else header_plain
worksheet.write(y, x, measure['text'], style);
worksheet.write(y, x, measure['measure'], style);
x = x + 1
y = y + 1
@@ -71,7 +71,7 @@ class TableExporter(http.Controller):
x = 0
for row in jdata['rows']:
worksheet.write(y, x, row['indent'] * ' ' + row['title'], header_plain)
for cell in row['cells']:
for cell in row['values']:
x = x + 1
if cell.get('is_bold', False):
worksheet.write(y, x, cell['value'], bold)
View File
+271 -206
View File
@@ -3,7 +3,7 @@
var nv = window.nv || {};
nv.version = '1.1.14b';
nv.version = '1.1.15b';
nv.dev = true //set false when in production
window.nv = nv;
@@ -68,7 +68,10 @@ nv.render = function render(step) {
nv.render.queue.splice(0, i);
if (nv.render.queue.length) setTimeout(arguments.callee, 0);
else { nv.render.active = false; nv.dispatch.render_end(); }
else {
nv.dispatch.render_end();
nv.render.active = false;
}
}, 0);
};
@@ -968,15 +971,16 @@ nv.utils.pjax = function(links, content) {
}
/* For situations where we want to approximate the width in pixels for an SVG:text element.
Most common instance is when the element is in a display:none; container.
Most common instance is when the element is in a display:none; container.
Forumla is : text.length * font-size * constant_factor
*/
nv.utils.calcApproxTextWidth = function (svgTextElem) {
if (svgTextElem instanceof d3.selection) {
if (typeof svgTextElem.style === 'function'
&& typeof svgTextElem.text === 'function') {
var fontSize = parseInt(svgTextElem.style("font-size").replace("px",""));
var textLength = svgTextElem.text().length;
return textLength * fontSize * 0.5;
return textLength * fontSize * 0.5;
}
return 0;
};
@@ -984,8 +988,8 @@ nv.utils.calcApproxTextWidth = function (svgTextElem) {
/* Numbers that are undefined, null or NaN, convert them to zeros.
*/
nv.utils.NaNtoZero = function(n) {
if (typeof n !== 'number'
|| isNaN(n)
if (typeof n !== 'number'
|| isNaN(n)
|| n === null
|| n === Infinity) return 0;
@@ -1109,7 +1113,7 @@ nv.utils.optionsFunc = function(args) {
return 'translate(' + scale(d) + ',0)'
})
.select('text')
.attr('dy', '0em')
.attr('dy', '-0.5em')
.attr('y', -axis.tickPadding())
.attr('text-anchor', 'middle')
.text(function(d,i) {
@@ -1267,7 +1271,7 @@ nv.utils.optionsFunc = function(args) {
if (scale(d) < scale.range()[1] + 10 || scale(d) > scale.range()[0] - 10) { // 10 is assuming text height is 16... if d is 0, leave it!
if (d > 1e-10 || d < -1e-10) // accounts for minor floating point errors... though could be problematic if the scale is EXTREMELY SMALL
d3.select(this).attr('opacity', 0);
d3.select(this).select('text').attr('opacity', 0); // Don't remove the ZERO line!!
}
});
@@ -1333,7 +1337,7 @@ nv.utils.optionsFunc = function(args) {
d3.rebind(chart, scale, 'domain', 'range', 'rangeBand', 'rangeBands'); //these are also accessible by chart.scale(), but added common ones directly for ease of use
chart.options = nv.utils.optionsFunc.bind(chart);
chart.margin = function(_) {
if(!arguments.length) return margin;
margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
@@ -2516,6 +2520,7 @@ nv.models.cumulativeLineChart = function() {
, average = function(d) { return d.average }
, dispatch = d3.dispatch('tooltipShow', 'tooltipHide', 'stateChange', 'changeState')
, transitionDuration = 250
, noErrorCheck = false //if set to TRUE, will bypass an error check in the indexify function.
;
xAxis
@@ -2547,36 +2552,8 @@ nv.models.cumulativeLineChart = function() {
nv.tooltip.show([left, top], content, null, null, offsetElement);
};
/*
//Moved to see if we can get better behavior to fix issue #315
var indexDrag = d3.behavior.drag()
.on('dragstart', dragStart)
.on('drag', dragMove)
.on('dragend', dragEnd);
function dragStart(d,i) {
d3.select(chart.container)
.style('cursor', 'ew-resize');
}
function dragMove(d,i) {
d.x += d3.event.dx;
d.i = Math.round(dx.invert(d.x));
d3.select(this).attr('transform', 'translate(' + dx(d.i) + ',0)');
chart.update();
}
function dragEnd(d,i) {
d3.select(chart.container)
.style('cursor', 'auto');
chart.update();
}
*/
//============================================================
function chart(selection) {
selection.each(function(data) {
var container = d3.select(this).classed('nv-chart-' + id, true),
@@ -2713,7 +2690,7 @@ nv.models.cumulativeLineChart = function() {
gEnter.append('g').attr('class', 'nv-avgLinesWrap').style("pointer-events","none");
gEnter.append('g').attr('class', 'nv-legendWrap');
gEnter.append('g').attr('class', 'nv-controlsWrap');
//------------------------------------------------------------
// Legend
@@ -2746,7 +2723,13 @@ nv.models.cumulativeLineChart = function() {
{ key: 'Re-scale y-axis', disabled: !rescaleY }
];
controls.width(140).color(['#444', '#444', '#444']);
controls
.width(140)
.color(['#444', '#444', '#444'])
.rightAlign(false)
.margin({top: 5, right: 0, bottom: 5, left: 20})
;
g.select('.nv-controlsWrap')
.datum(controlsData)
.attr('transform', 'translate(0,' + (-margin.top) +')')
@@ -2777,7 +2760,7 @@ nv.models.cumulativeLineChart = function() {
//------------------------------------------------------------
// Main Chart Component(s)
//------------------------------------------------------------
//Set up interactive layer
if (useInteractiveGuideline) {
@@ -2918,7 +2901,7 @@ nv.models.cumulativeLineChart = function() {
function updateZero() {
indexLine
.data([index]);
//When dragging the index line, turn off line transitions.
// Then turn them back on when done dragging.
var oldDuration = chart.transitionDuration();
@@ -2950,7 +2933,7 @@ nv.models.cumulativeLineChart = function() {
updateZero();
});
controls.dispatch.on('legendClick', function(d,i) {
controls.dispatch.on('legendClick', function(d,i) {
d.disabled = !d.disabled;
rescaleY = !d.disabled;
@@ -2961,7 +2944,7 @@ nv.models.cumulativeLineChart = function() {
legend.dispatch.on('stateChange', function(newState) {
state.disabled = newState.disabled;
state.disabled = newState.disabled;
dispatch.stateChange(state);
chart.update();
});
@@ -2969,12 +2952,12 @@ nv.models.cumulativeLineChart = function() {
interactiveLayer.dispatch.on('elementMousemove', function(e) {
lines.clearHighlights();
var singlePoint, pointIndex, pointXLocation, allData = [];
data
.filter(function(series, i) {
.filter(function(series, i) {
series.seriesIndex = i;
return !series.disabled;
return !series.disabled;
})
.forEach(function(series,i) {
pointIndex = nv.interactiveBisect(series.values, e.pointXValue, chart.x());
@@ -3102,7 +3085,7 @@ nv.models.cumulativeLineChart = function() {
d3.rebind(chart, lines, 'defined', 'isArea', 'x', 'y', 'xScale','yScale', 'size', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'interactive', 'clipEdge', 'clipVoronoi','useVoronoi', 'id');
chart.options = nv.utils.optionsFunc.bind(chart);
chart.margin = function(_) {
if (!arguments.length) return margin;
margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
@@ -3220,6 +3203,12 @@ nv.models.cumulativeLineChart = function() {
return chart;
};
chart.noErrorCheck = function(_) {
if (!arguments.length) return noErrorCheck;
noErrorCheck = _;
return chart;
};
//============================================================
@@ -3233,11 +3222,16 @@ nv.models.cumulativeLineChart = function() {
if (!line.values) {
return line;
}
var v = lines.y()(line.values[idx], idx);
var indexValue = line.values[idx];
if (indexValue == null) {
return line;
}
var v = lines.y()(indexValue, idx);
//TODO: implement check below, and disable series if series loses 100% or more cause divide by 0 issue
if (v < -.95) {
if (v < -.95 && !noErrorCheck) {
//if a series loses more than 100%, calculations fail.. anything close can cause major distortion (but is mathematically correct till it hits 100)
line.tempDisabled = true;
return line;
}
@@ -3730,7 +3724,10 @@ nv.models.discreteBarChart = function() {
var g = wrap.select('g');
gEnter.append('g').attr('class', 'nv-x nv-axis');
gEnter.append('g').attr('class', 'nv-y nv-axis');
gEnter.append('g').attr('class', 'nv-y nv-axis')
.append('g').attr('class', 'nv-zeroLine')
.append('line');
gEnter.append('g').attr('class', 'nv-barsWrap');
g.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
@@ -3805,6 +3802,14 @@ nv.models.discreteBarChart = function() {
.call(yAxis);
}
// Zero line
g.select(".nv-zeroLine line")
.attr("x1",0)
.attr("x2",availableWidth)
.attr("y1", y(0))
.attr("y2", y(0))
;
//------------------------------------------------------------
@@ -4322,7 +4327,7 @@ nv.models.historicalBarChart = function() {
// Event Handling/Dispatching (in chart's scope)
//------------------------------------------------------------
legend.dispatch.on('legendClick', function(d,i) {
legend.dispatch.on('legendClick', function(d,i) {
d.disabled = !d.disabled;
if (!data.filter(function(d) { return !d.disabled }).length) {
@@ -4344,7 +4349,7 @@ nv.models.historicalBarChart = function() {
data.forEach(function(d) {
d.disabled = true;
});
d.disabled = false;
d.disabled = false;
state.disabled = data.map(function(d) { return !!d.disabled });
dispatch.stateChange(state);
@@ -4366,7 +4371,7 @@ nv.models.historicalBarChart = function() {
state.disabled = e.disabled;
}
selection.call(chart);
chart.update();
});
//============================================================
@@ -4408,11 +4413,11 @@ nv.models.historicalBarChart = function() {
chart.xAxis = xAxis;
chart.yAxis = yAxis;
d3.rebind(chart, bars, 'defined', 'isArea', 'x', 'y', 'size', 'xScale', 'yScale',
d3.rebind(chart, bars, 'defined', 'isArea', 'x', 'y', 'size', 'xScale', 'yScale',
'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'interactive', 'clipEdge', 'clipVoronoi', 'id', 'interpolate','highlightPoint','clearHighlights', 'interactive');
chart.options = nv.utils.optionsFunc.bind(chart);
chart.margin = function(_) {
if (!arguments.length) return margin;
margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
@@ -4645,8 +4650,7 @@ nv.models.indentedTree = function() {
d3.select(this).select('span')
.attr('class', d3.functor(column.classes) )
.text(function(d) { return column.format ? column.format(d) :
(d[column.key] || '-') });
.text(function(d) { return column.format ? (d[column.key] ? column.format(d[column.key]) : '-') : (d[column.key] || '-'); });
});
if (column.showCount) {
@@ -4921,7 +4925,7 @@ nv.models.indentedTree = function() {
data.forEach(function(series) {
series.disabled = true;
});
d.disabled = false;
d.disabled = false;
dispatch.stateChange({
disabled: data.map(function(d) { return !!d.disabled })
});
@@ -4954,12 +4958,14 @@ nv.models.indentedTree = function() {
var legendText = d3.select(this).select('text');
var nodeTextLength;
try {
nodeTextLength = legendText.node().getComputedTextLength();
nodeTextLength = legendText.getComputedTextLength();
// If the legendText is display:none'd (nodeTextLength == 0), simulate an error so we approximate, instead
if(nodeTextLength <= 0) throw Error();
}
catch(e) {
nodeTextLength = nv.utils.calcApproxTextWidth(legendText);
}
seriesWidths.push(nodeTextLength + 28); // 28 is ~ the width of the circle plus some padding
});
@@ -5050,7 +5056,7 @@ nv.models.indentedTree = function() {
chart.dispatch = dispatch;
chart.options = nv.utils.optionsFunc.bind(chart);
chart.margin = function(_) {
if (!arguments.length) return margin;
margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
@@ -5141,7 +5147,7 @@ nv.models.line = function() {
.size(16) // default size
.sizeDomain([16,256]) //set to speed up calculation, needs to be unset if there is a custom size accessor
;
//============================================================
@@ -5209,7 +5215,7 @@ nv.models.line = function() {
wrap.select('#nv-edge-clip-' + scatter.id() + ' rect')
.attr('width', availableWidth)
.attr('height', availableHeight);
.attr('height', (availableHeight > 0) ? availableHeight : 0);
g .attr('clip-path', clipEdge ? 'url(#nv-edge-clip-' + scatter.id() + ')' : '');
scatterWrap
@@ -5223,11 +5229,9 @@ nv.models.line = function() {
groups.enter().append('g')
.style('stroke-opacity', 1e-6)
.style('fill-opacity', 1e-6);
groups.exit()
.transition()
.style('stroke-opacity', 1e-6)
.style('fill-opacity', 1e-6)
.remove();
groups.exit().remove();
groups
.attr('class', function(d,i) { return 'nv-group nv-series-' + i })
.classed('hover', function(d) { return d.hover })
@@ -5256,7 +5260,7 @@ nv.models.line = function() {
});
groups.exit().selectAll('path.nv-area')
.remove();
areaPaths
.transition()
.attr('d', function(d) {
@@ -5283,15 +5287,7 @@ nv.models.line = function() {
.x(function(d,i) { return nv.utils.NaNtoZero(x0(getX(d,i))) })
.y(function(d,i) { return nv.utils.NaNtoZero(y0(getY(d,i))) })
);
groups.exit().selectAll('path.nv-line')
.transition()
.attr('d',
d3.svg.line()
.interpolate(interpolate)
.defined(defined)
.x(function(d,i) { return nv.utils.NaNtoZero(x(getX(d,i))) })
.y(function(d,i) { return nv.utils.NaNtoZero(y(getY(d,i))) })
);
linePaths
.transition()
.attr('d',
@@ -5321,11 +5317,11 @@ nv.models.line = function() {
chart.dispatch = scatter.dispatch;
chart.scatter = scatter;
d3.rebind(chart, scatter, 'id', 'interactive', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'xRange', 'yRange',
d3.rebind(chart, scatter, 'id', 'interactive', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'xRange', 'yRange',
'sizeDomain', 'forceX', 'forceY', 'forceSize', 'clipVoronoi', 'useVoronoi', 'clipRadius', 'padData','highlightPoint','clearHighlights');
chart.options = nv.utils.optionsFunc.bind(chart);
chart.margin = function(_) {
if (!arguments.length) return margin;
margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
@@ -5479,7 +5475,7 @@ nv.models.lineChart = function() {
//set state.disabled
state.disabled = data.map(function(d) { return !!d.disabled });
if (!defaultState) {
var key;
defaultState = {};
@@ -5538,7 +5534,9 @@ nv.models.lineChart = function() {
gEnter.append('g').attr('class', 'nv-legendWrap');
gEnter.append('g').attr('class', 'nv-interactive');
g.select("rect").attr("width",availableWidth).attr("height",availableHeight);
g.select("rect")
.attr("width",availableWidth)
.attr("height",(availableHeight > 0) ? availableHeight : 0);
//------------------------------------------------------------
// Legend
@@ -5571,7 +5569,7 @@ nv.models.lineChart = function() {
//------------------------------------------------------------
// Main Chart Component(s)
//------------------------------------------------------------
//Set up interactive layer
if (useInteractiveGuideline) {
@@ -5644,9 +5642,9 @@ nv.models.lineChart = function() {
lines.clearHighlights();
var singlePoint, pointIndex, pointXLocation, allData = [];
data
.filter(function(series, i) {
.filter(function(series, i) {
series.seriesIndex = i;
return !series.disabled;
return !series.disabled;
})
.forEach(function(series,i) {
pointIndex = nv.interactiveBisect(series.values, e.pointXValue, chart.x());
@@ -5702,7 +5700,7 @@ nv.models.lineChart = function() {
dispatch.on('changeState', function(e) {
if (typeof e.disabled !== 'undefined') {
if (typeof e.disabled !== 'undefined' && data.length === e.disabled.length) {
data.forEach(function(series,i) {
series.disabled = e.disabled[i];
});
@@ -8533,6 +8531,7 @@ nv.models.multiBarHorizontal = function() {
, disabled // used in conjunction with barColor to communicate from multiBarHorizontalChart what series are disabled
, stacked = false
, showValues = false
, showBarLabels = false
, valuePadding = 60
, valueFormat = d3.format(',.2f')
, delay = 1200
@@ -8745,6 +8744,21 @@ nv.models.multiBarHorizontal = function() {
bars.selectAll('text').text('');
}
if (showBarLabels && !stacked) {
barsEnter.append('text').classed('nv-bar-label',true);
bars.select('text.nv-bar-label')
.attr('text-anchor', function(d,i) { return getY(d,i) < 0 ? 'start' : 'end' })
.attr('y', x.rangeBand() / (data.length * 2))
.attr('dy', '.32em')
.text(function(d,i) { return getX(d,i) });
bars.transition()
.select('text.nv-bar-label')
.attr('x', function(d,i) { return getY(d,i) < 0 ? y(0) - y(getY(d,i)) + 4 : -4 });
}
else {
bars.selectAll('text.nv-bar-label').text('');
}
bars
.attr('class', function(d,i) { return getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive'})
@@ -8919,6 +8933,13 @@ nv.models.multiBarHorizontal = function() {
return chart;
};
chart.showBarLabels = function(_) {
if (!arguments.length) return showBarLabels;
showBarLabels = _;
return chart;
};
chart.valueFormat= function(_) {
if (!arguments.length) return valueFormat;
valueFormat = _;
@@ -8956,6 +8977,8 @@ nv.models.multiBarHorizontalChart = function() {
, color = nv.utils.defaultColor()
, showControls = true
, showLegend = true
, showXAxis = true
, showYAxis = true
, stacked = false
, tooltips = true
, tooltip = function(key, x, y, e, graph) {
@@ -9076,7 +9099,9 @@ nv.models.multiBarHorizontalChart = function() {
var g = wrap.select('g');
gEnter.append('g').attr('class', 'nv-x nv-axis');
gEnter.append('g').attr('class', 'nv-y nv-axis');
gEnter.append('g').attr('class', 'nv-y nv-axis')
.append('g').attr('class', 'nv-zeroLine')
.append('line');
gEnter.append('g').attr('class', 'nv-barsWrap');
gEnter.append('g').attr('class', 'nv-legendWrap');
gEnter.append('g').attr('class', 'nv-controlsWrap');
@@ -9157,30 +9182,40 @@ nv.models.multiBarHorizontalChart = function() {
//------------------------------------------------------------
// Setup Axes
xAxis
.scale(x)
.ticks( availableHeight / 24 )
.tickSize(-availableWidth, 0);
if (showXAxis) {
xAxis
.scale(x)
.ticks( availableHeight / 24 )
.tickSize(-availableWidth, 0);
g.select('.nv-x.nv-axis').transition()
.call(xAxis);
g.select('.nv-x.nv-axis').transition()
.call(xAxis);
var xTicks = g.select('.nv-x.nv-axis').selectAll('g');
var xTicks = g.select('.nv-x.nv-axis').selectAll('g');
xTicks
.selectAll('line, text')
.style('opacity', 1)
xTicks
.selectAll('line, text');
}
if (showYAxis) {
yAxis
.scale(y)
.ticks( availableWidth / 100 )
.tickSize( -availableHeight, 0);
yAxis
.scale(y)
.ticks( availableWidth / 100 )
.tickSize( -availableHeight, 0);
g.select('.nv-y.nv-axis')
.attr('transform', 'translate(0,' + availableHeight + ')');
g.select('.nv-y.nv-axis').transition()
.call(yAxis);
}
g.select('.nv-y.nv-axis')
.attr('transform', 'translate(0,' + availableHeight + ')');
g.select('.nv-y.nv-axis').transition()
.call(yAxis);
// Zero line
g.select(".nv-zeroLine line")
.attr("x1", y(0))
.attr("x2", y(0))
.attr("y1", 0)
.attr("y2", -availableHeight)
;
//------------------------------------------------------------
@@ -9190,7 +9225,7 @@ nv.models.multiBarHorizontalChart = function() {
// Event Handling/Dispatching (in chart's scope)
//------------------------------------------------------------
legend.dispatch.on('stateChange', function(newState) {
legend.dispatch.on('stateChange', function(newState) {
state = newState;
dispatch.stateChange(state);
chart.update();
@@ -9239,7 +9274,7 @@ nv.models.multiBarHorizontalChart = function() {
state.stacked = e.stacked;
}
selection.call(chart);
chart.update();
});
//============================================================
@@ -9280,10 +9315,11 @@ nv.models.multiBarHorizontalChart = function() {
chart.xAxis = xAxis;
chart.yAxis = yAxis;
d3.rebind(chart, multibar, 'x', 'y', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY', 'clipEdge', 'id', 'delay', 'showValues', 'valueFormat', 'stacked', 'barColor');
d3.rebind(chart, multibar, 'x', 'y', 'xDomain', 'yDomain', 'xRange', 'yRange', 'forceX', 'forceY',
'clipEdge', 'id', 'delay', 'showValues','showBarLabels', 'valueFormat', 'stacked', 'barColor');
chart.options = nv.utils.optionsFunc.bind(chart);
chart.margin = function(_) {
if (!arguments.length) return margin;
margin.top = typeof _.top != 'undefined' ? _.top : margin.top;
@@ -9324,6 +9360,18 @@ nv.models.multiBarHorizontalChart = function() {
return chart;
};
chart.showXAxis = function(_) {
if (!arguments.length) return showXAxis;
showXAxis = _;
return chart;
};
chart.showYAxis = function(_) {
if (!arguments.length) return showYAxis;
showYAxis = _;
return chart;
};
chart.tooltip = function(_) {
if (!arguments.length) return tooltip;
tooltip = _;
@@ -10252,9 +10300,11 @@ nv.models.pie = function() {
var g = wrap.select('g');
gEnter.append('g').attr('class', 'nv-pie');
gEnter.append('g').attr('class', 'nv-pieLabels');
wrap.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
g.select('.nv-pie').attr('transform', 'translate(' + availableWidth / 2 + ',' + availableHeight / 2 + ')');
g.select('.nv-pieLabels').attr('transform', 'translate(' + availableWidth / 2 + ',' + availableHeight / 2 + ')');
//------------------------------------------------------------
@@ -10285,7 +10335,11 @@ nv.models.pie = function() {
var slices = wrap.select('.nv-pie').selectAll('.nv-slice')
.data(pie);
var pieLabels = wrap.select('.nv-pieLabels').selectAll('.nv-label')
.data(pie);
slices.exit().remove();
pieLabels.exit().remove();
var ae = slices.enter().append('g')
.attr('class', 'nv-slice')
@@ -10341,78 +10395,92 @@ nv.models.pie = function() {
.each(function(d) { this._current = d; });
//.attr('d', arc);
d3.transition(slices.select('path'))
slices.select('path')
.transition()
.attr('d', arc)
.attrTween('d', arcTween);
if (showLabels) {
// This does the normal label
var labelsArc = d3.svg.arc().innerRadius(0);
if (pieLabelsOutside){ labelsArc = arc; }
if (donutLabelsOutside) { labelsArc = d3.svg.arc().outerRadius(arc.outerRadius()); }
ae.append("g").classed("nv-label", true)
.each(function(d, i) {
var group = d3.select(this);
pieLabels.enter().append("g").classed("nv-label",true)
.each(function(d,i) {
var group = d3.select(this);
group
.attr('transform', function(d) {
if (labelSunbeamLayout) {
d.outerRadius = arcRadius + 10; // Set Outer Coordinate
d.innerRadius = arcRadius + 15; // Set Inner Coordinate
var rotateAngle = (d.startAngle + d.endAngle) / 2 * (180 / Math.PI);
if ((d.startAngle+d.endAngle)/2 < Math.PI) {
rotateAngle -= 90;
group
.attr('transform', function(d) {
if (labelSunbeamLayout) {
d.outerRadius = arcRadius + 10; // Set Outer Coordinate
d.innerRadius = arcRadius + 15; // Set Inner Coordinate
var rotateAngle = (d.startAngle + d.endAngle) / 2 * (180 / Math.PI);
if ((d.startAngle+d.endAngle)/2 < Math.PI) {
rotateAngle -= 90;
} else {
rotateAngle += 90;
}
return 'translate(' + labelsArc.centroid(d) + ') rotate(' + rotateAngle + ')';
} else {
rotateAngle += 90;
d.outerRadius = radius + 10; // Set Outer Coordinate
d.innerRadius = radius + 15; // Set Inner Coordinate
return 'translate(' + labelsArc.centroid(d) + ')'
}
return 'translate(' + labelsArc.centroid(d) + ') rotate(' + rotateAngle + ')';
} else {
d.outerRadius = radius + 10; // Set Outer Coordinate
d.innerRadius = radius + 15; // Set Inner Coordinate
return 'translate(' + labelsArc.centroid(d) + ')'
}
});
});
group.append('rect')
.style('stroke', '#fff')
.style('fill', '#fff')
.attr("rx", 3)
.attr("ry", 3);
group.append('rect')
.style('stroke', '#fff')
.style('fill', '#fff')
.attr("rx", 3)
.attr("ry", 3);
group.append('text')
.style('text-anchor', labelSunbeamLayout ? ((d.startAngle + d.endAngle) / 2 < Math.PI ? 'start' : 'end') : 'middle') //center the text on it's origin or begin/end if orthogonal aligned
.style('fill', '#000')
group.append('text')
.style('text-anchor', labelSunbeamLayout ? ((d.startAngle + d.endAngle) / 2 < Math.PI ? 'start' : 'end') : 'middle') //center the text on it's origin or begin/end if orthogonal aligned
.style('fill', '#000')
});
slices.select(".nv-label").transition()
.attr('transform', function(d) {
if (labelSunbeamLayout) {
d.outerRadius = arcRadius + 10; // Set Outer Coordinate
d.innerRadius = arcRadius + 15; // Set Inner Coordinate
var rotateAngle = (d.startAngle + d.endAngle) / 2 * (180 / Math.PI);
if ((d.startAngle+d.endAngle)/2 < Math.PI) {
rotateAngle -= 90;
} else {
rotateAngle += 90;
}
return 'translate(' + labelsArc.centroid(d) + ') rotate(' + rotateAngle + ')';
} else {
d.outerRadius = radius + 10; // Set Outer Coordinate
d.innerRadius = radius + 15; // Set Inner Coordinate
return 'translate(' + labelsArc.centroid(d) + ')'
}
});
slices.each(function(d, i) {
var slice = d3.select(this);
var labelLocationHash = {};
var avgHeight = 14;
var avgWidth = 140;
var createHashKey = function(coordinates) {
slice
.select(".nv-label text")
return Math.floor(coordinates[0]/avgWidth) * avgWidth + ',' + Math.floor(coordinates[1]/avgHeight) * avgHeight;
};
pieLabels.transition()
.attr('transform', function(d) {
if (labelSunbeamLayout) {
d.outerRadius = arcRadius + 10; // Set Outer Coordinate
d.innerRadius = arcRadius + 15; // Set Inner Coordinate
var rotateAngle = (d.startAngle + d.endAngle) / 2 * (180 / Math.PI);
if ((d.startAngle+d.endAngle)/2 < Math.PI) {
rotateAngle -= 90;
} else {
rotateAngle += 90;
}
return 'translate(' + labelsArc.centroid(d) + ') rotate(' + rotateAngle + ')';
} else {
d.outerRadius = radius + 10; // Set Outer Coordinate
d.innerRadius = radius + 15; // Set Inner Coordinate
/*
Overlapping pie labels are not good. What this attempts to do is, prevent overlapping.
Each label location is hashed, and if a hash collision occurs, we assume an overlap.
Adjust the label's y-position to remove the overlap.
*/
var center = labelsArc.centroid(d);
var hashKey = createHashKey(center);
if (labelLocationHash[hashKey]) {
center[1] -= avgHeight;
}
labelLocationHash[createHashKey(center)] = true;
return 'translate(' + center + ')'
}
});
pieLabels.select(".nv-label text")
.style('text-anchor', labelSunbeamLayout ? ((d.startAngle + d.endAngle) / 2 < Math.PI ? 'start' : 'end') : 'middle') //center the text on it's origin or begin/end if orthogonal aligned
.text(function(d, i) {
var percent = (d.endAngle - d.startAngle) / (2 * Math.PI);
@@ -10423,15 +10491,6 @@ nv.models.pie = function() {
};
return (d.value && percent > labelThreshold) ? labelTypes[labelType] : '';
});
var textBox = slice.select('text').node().getBBox();
slice.select(".nv-label rect")
.attr("width", textBox.width + 10)
.attr("height", textBox.height + 10)
.attr("transform", function() {
return "translate(" + [textBox.x - 5, textBox.y - 5] + ")";
});
});
}
@@ -10510,7 +10569,7 @@ nv.models.pie = function() {
getY = d3.functor(_);
return chart;
};
chart.description = function(_) {
if (!arguments.length) return getDescription;
getDescription = _;
@@ -10522,7 +10581,7 @@ nv.models.pie = function() {
showLabels = _;
return chart;
};
chart.labelSunbeamLayout = function(_) {
if (!arguments.length) return labelSunbeamLayout;
labelSunbeamLayout = _;
@@ -10534,7 +10593,7 @@ nv.models.pie = function() {
donutLabelsOutside = _;
return chart;
};
chart.pieLabelsOutside = function(_) {
if (!arguments.length) return pieLabelsOutside;
pieLabelsOutside = _;
@@ -10553,7 +10612,7 @@ nv.models.pie = function() {
donut = _;
return chart;
};
chart.donutRatio = function(_) {
if (!arguments.length) return donutRatio;
donutRatio = _;
@@ -11040,7 +11099,7 @@ nv.models.scatter = function() {
wrap.select('#nv-edge-clip-' + id + ' rect')
.attr('width', availableWidth)
.attr('height', availableHeight);
.attr('height', (availableHeight > 0) ? availableHeight : 0);
g .attr('clip-path', clipEdge ? 'url(#nv-edge-clip-' + id + ')' : '');
@@ -13465,7 +13524,7 @@ nv.models.stackedArea = function() {
point: d,
series: d.key,
pos: [d3.event.pageX, d3.event.pageY],
seriesIndex: i
seriesIndex: d.seriesIndex
});
})
.on('mouseout', function(d,i) {
@@ -13474,7 +13533,7 @@ nv.models.stackedArea = function() {
point: d,
series: d.key,
pos: [d3.event.pageX, d3.event.pageY],
seriesIndex: i
seriesIndex: d.seriesIndex
});
})
.on('click', function(d,i) {
@@ -13483,12 +13542,12 @@ nv.models.stackedArea = function() {
point: d,
series: d.key,
pos: [d3.event.pageX, d3.event.pageY],
seriesIndex: i
seriesIndex: d.seriesIndex
});
})
path.exit().transition()
.attr('d', function(d,i) { return zeroArea(d.values,i) })
.remove();
path.exit().remove();
path
.style('fill', function(d,i){
return d.color || color(d, d.seriesIndex)
@@ -13850,28 +13909,28 @@ nv.models.stackedAreaChart = function() {
if (showControls) {
var controlsData = [
{
key: controlLabels.stacked || 'Stacked',
metaKey: 'Stacked',
disabled: stacked.style() != 'stack',
style: 'stack'
key: controlLabels.stacked || 'Stacked',
metaKey: 'Stacked',
disabled: stacked.style() != 'stack',
style: 'stack'
},
{
key: controlLabels.stream || 'Stream',
metaKey: 'Stream',
disabled: stacked.style() != 'stream',
style: 'stream'
key: controlLabels.stream || 'Stream',
metaKey: 'Stream',
disabled: stacked.style() != 'stream',
style: 'stream'
},
{
key: controlLabels.expanded || 'Expanded',
metaKey: 'Expanded',
disabled: stacked.style() != 'expand',
style: 'expand'
key: controlLabels.expanded || 'Expanded',
metaKey: 'Expanded',
disabled: stacked.style() != 'expand',
style: 'expand'
},
{
key: controlLabels.stack_percent || 'Stack %',
metaKey: 'Stack_Percent',
disabled: stacked.style() != 'stack_percent',
style: 'stack_percent'
key: controlLabels.stack_percent || 'Stack %',
metaKey: 'Stack_Percent',
disabled: stacked.style() != 'stack_percent',
style: 'stack_percent'
}
];
@@ -13960,7 +14019,7 @@ nv.models.stackedAreaChart = function() {
.scale(y)
.ticks(stacked.offset() == 'wiggle' ? 0 : availableHeight / 36)
.tickSize(-availableWidth, 0)
.setTickFormat( (stacked.style() == 'expand' || stacked.style() == 'stack_percent')
.setTickFormat( (stacked.style() == 'expand' || stacked.style() == 'stack_percent')
? d3.format('%') : yAxisTickFormat);
g.select('.nv-y.nv-axis')
@@ -14007,7 +14066,7 @@ nv.models.stackedAreaChart = function() {
d.disabled = false;
stacked.style(d.style);
state.style = stacked.style();
dispatch.stateChange(state);
@@ -14049,7 +14108,13 @@ nv.models.stackedAreaChart = function() {
var yValue = chart.yScale().invert(e.mouseY);
var yDistMax = Infinity, indexToHighlight = null;
allData.forEach(function(series,i) {
if ( yValue >= series.stackedValue.y0 && yValue <= (series.stackedValue.y0 + series.stackedValue.y))
//To handle situation where the stacked area chart is negative, we need to use absolute values
//when checking if the mouse Y value is within the stack area.
yValue = Math.abs(yValue);
var stackedY0 = Math.abs(series.stackedValue.y0);
var stackedY = Math.abs(series.stackedValue.y);
if ( yValue >= stackedY0 && yValue <= (stackedY + stackedY0))
{
indexToHighlight = i;
return;
@@ -14062,7 +14127,7 @@ nv.models.stackedAreaChart = function() {
var xValue = xAxis.tickFormat()(chart.x()(singlePoint,pointIndex));
//If we are in 'expand' mode, force the format to be a percentage.
var valueFormatter = (stacked.style() == 'expand') ?
var valueFormatter = (stacked.style() == 'expand') ?
function(d,i) {return d3.format(".1%")(d);} :
function(d,i) {return yAxis.tickFormat()(d); };
interactiveLayer.tooltip
@@ -14094,7 +14159,7 @@ nv.models.stackedAreaChart = function() {
// Update chart from a state object passed to event handler
dispatch.on('changeState', function(e) {
if (typeof e.disabled !== 'undefined') {
if (typeof e.disabled !== 'undefined' && data.length === e.disabled.length) {
data.forEach(function(series,i) {
series.disabled = e.disabled[i];
});
@@ -14300,4 +14365,4 @@ nv.models.stackedAreaChart = function() {
return chart;
}
})();
})();
+105 -1
View File
@@ -1050,7 +1050,7 @@
.openerp .oe-view-manager-header .dropdown-menu li a {
padding: 3px 25px;
}
.openerp .oe-view-manager-header .dropdown-menu .oe_searchview_custom_public a:after {
.openerp .oe-view-manager-header .dropdown-menu .oe_searchview_custom_public a:after, .openerp .oe-view-manager-header .dropdown-menu .oe-share-filter:after {
font-family: FontAwesome;
content: "";
color: #666;
@@ -1519,6 +1519,110 @@
.openerp .oe_view.oe_cannot_create .oe_view_nocontent_create {
display: none;
}
.openerp .oe_pivot table {
width: auto;
}
.openerp .oe_pivot col.hover {
background-color: #f5f5f5;
}
.openerp .oe_pivot th {
background-color: #ffffff;
font-weight: normal;
vertical-align: top;
border: 1px solid #bfbfb6;
border-top: none;
}
.openerp .oe_pivot th.oe-total {
background-color: #f0eeee;
font-weight: bold;
vertical-align: bottom;
}
.openerp .oe_pivot td {
border: 1px solid #bfbfb6;
text-align: right;
}
.openerp .oe_pivot td.oe-closed, .openerp .oe_pivot td.oe-opened {
cursor: pointer;
}
.openerp .oe_pivot .oe-closed, .openerp .oe_pivot .oe-opened {
cursor: pointer;
background-color: #f0eeee;
border-left: none;
text-align: left;
}
.openerp .oe_pivot .oe-closed:hover, .openerp .oe_pivot .oe-opened:hover {
background-color: #e6e6e6;
}
.openerp .oe_pivot.oe-enable-linking td:not(.oe-closed):not(.oe-opened):not(.oe-empty) {
cursor: pointer;
}
.openerp .oe_pivot.oe-enable-linking td:not(.oe-closed):not(.oe-opened):not(.oe-empty):hover {
color: #428bca;
}
.openerp .oe_pivot .oe-closed:before {
font-family: FontAwesome;
margin-right: 5px;
content: "";
}
.openerp .oe_pivot .oe-opened:before {
font-family: FontAwesome;
margin-right: 5px;
content: "";
text-align: left;
}
.openerp .oe_pivot .measure-row {
background-color: #f0eeee;
cursor: pointer;
}
.openerp .oe_pivot .o-sorted:after {
font-family: FontAwesome;
margin-left: 5px;
}
.openerp .oe_pivot .o-sorted-asc:after {
content: "";
}
.openerp .oe_pivot .o-sorted-desc:after {
content: "";
}
.openerp .oe_pivot .dropdown-menu a {
color: black;
}
.openerp .oe_pivot .dropdown-menu .pivot-dropdown-submenu {
position: relative;
}
.openerp .oe_pivot .dropdown-menu .pivot-dropdown-submenu > .dropdown-menu {
top: 0;
left: 100%;
}
.openerp .oe_pivot .dropdown-menu .pivot-dropdown-submenu .field-selection:after {
content: "";
width: 3px;
float: right;
margin-left: 5px;
color: #333;
font-family: FontAwesome;
}
.openerp .oe_pivot .dropdown-menu .pivot-dropdown-submenu:hover > .dropdown-menu {
display: block;
}
.openerp .o-dashboard .oe_pivot th {
border-top: 1px solid #bfbfb6;
}
.openerp .o-dashboard .oe_pivot th, .openerp .o-dashboard .oe_pivot .oe-closed, .openerp .o-dashboard .oe_pivot .oe-opened {
border-left: 1px solid #bfbfb6;
}
.openerp .o-dashboard .oe_graph svg {
min-height: 250px;
}
.openerp .o-dashboard .oe_graph .nv-pieLabels {
display: none;
}
.openerp .oe_graph {
height: 100%;
}
.openerp .oe_graph > div {
height: 100%;
}
.openerp .oe_formview {
background: white;
}
+95 -6
View File
@@ -915,12 +915,11 @@ $sheet-padding: 16px
position: relative
a
padding: 3px 25px
.oe_searchview_custom_public
a:after
font-family: FontAwesome
content: "\f0c0"
color: #666
margin-left: 3px
.oe_searchview_custom_public a:after,.oe-share-filter:after
font-family: FontAwesome
content: "\f0c0"
color: #666
margin-left: 3px
.selected
display: block
a
@@ -1295,6 +1294,96 @@ $sheet-padding: 16px
.oe_view_nocontent_create
display: none
// }}}
// PivotView.base and dynamic tags {{{
.oe_pivot
table
width: auto
col.hover
background-color: #f5f5f5
th
background-color: #ffffff
font-weight: normal
vertical-align: top
border: 1px solid #bfbfb6
border-top: none
th.oe-total
background-color: #f0eeee
font-weight: bold
vertical-align: bottom
td
border: 1px solid #bfbfb6
text-align: right
td.oe-closed,td.oe-opened
cursor: pointer
.oe-closed, .oe-opened
cursor: pointer
background-color: #f0eeee
border-left: none
text-align: left
&:hover
background-color: #e6e6e6
&.oe-enable-linking
td:not(.oe-closed):not(.oe-opened):not(.oe-empty)
cursor: pointer
&:hover
color: #428bca
.oe-closed:before
font-family: FontAwesome
margin-right: 5px
content: "\f067"
.oe-opened:before
font-family: FontAwesome
margin-right: 5px
content: "\f068"
text-align: left
.measure-row
background-color: #f0eeee
cursor: pointer
.o-sorted:after
font-family: FontAwesome
margin-left: 5px
.o-sorted-asc:after
content: "\f0d7"
.o-sorted-desc:after
content: "\f0d8"
.dropdown-menu
a
color: black
.pivot-dropdown-submenu
position: relative
> .dropdown-menu
top: 0
left: 100%
.field-selection:after
content: "\f0da"
width: 3px
float: right
margin-left: 5px
color: #333
font-family: FontAwesome
.pivot-dropdown-submenu:hover
> .dropdown-menu
display: block
.o-dashboard
.oe_pivot
th
border-top: 1px solid #bfbfb6
th, .oe-closed, .oe-opened
border-left: 1px solid #bfbfb6
.oe_graph
svg
min-height: 250px
.nv-pieLabels
display: none
// }}}
// GraphView.base and dynamic tags {{{
.oe_graph
height: 100%
> div
height: 100%
// }}}
// FormView.base and dynamic tags {{{
.oe_formview
background: white
+76 -67
View File
@@ -246,7 +246,7 @@ my.InputView = instance.web.Widget.extend({
// Read text content (ignore pasted HTML)
var data = this.$el.text();
if (!data)
return;
return;
// paste raw text back in
this.$el.empty().text(data);
this.el.normalize();
@@ -373,7 +373,7 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
disable_custom_filters: false,
});
this._super(parent);
this.query = undefined;
this.query = undefined;
this.dataset = dataset;
this.view_id = view_id;
this.search_fields = [];
@@ -433,60 +433,6 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
}
return $.when(custom_filters_ready).then(this.proxy('set_default_filters'));
},
// it should parse the arch field of the view, instantiate the corresponding
// filters/fields, and put them in the correct variables:
// * this.search_fields is a list of all the fields,
// * this.filters: groups of filters
// * this.group_by: group_bys
prepare_search_inputs: function () {
var self = this,
arch = this.fields_view_get.arch;
var filters = [].concat.apply([], _.map(arch.children, function (item) {
return item.tag !== 'group' ? eval_item(item) : item.children.map(eval_item);
}));
function eval_item (item) {
var category = 'filters';
if (item.attrs.context) {
try {
var context = instance.web.pyeval.eval('context', item.attrs.context);
if (context.group_by) {
category = 'group_by';
}
} catch (e) {}
}
return {
item: item,
category: category,
}
}
var current_group = [],
current_category = 'filters',
categories = {filters: this.filters, group_by: this.groupbys};
_.each(filters.concat({category:'filters', item: 'separator'}), function (filter) {
if (filter.item.tag === 'filter' && filter.category === current_category) {
return current_group.push(new my.Filter(filter.item, self));
}
if (current_group.length) {
var group = new my.FilterGroup(current_group, self);
categories[current_category].push(group);
current_group = [];
}
if (filter.item.tag === 'field') {
var attrs = filter.item.attrs,
field = self.fields_view_get.fields[attrs.name],
Obj = my.fields.get_any([attrs.widget, field.type]);
if (Obj) {
self.search_fields.push(new (Obj) (filter.item, field, self));
}
}
if (filter.item.tag === 'filter') {
current_group.push(new my.Filter(filter.item, self));
}
current_category = filter.category;
});
},
set_default_filters: function () {
var self = this,
default_custom_filter = this.$buttons && this.favorite_menu.get_default_filter();
@@ -499,7 +445,7 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
return $.when.apply(null, defaults).then(function () {
self.query.reset(_(arguments).compact(), {preventSearch: true});
});
}
}
this.query.reset([], {preventSearch: true});
return $.when();
},
@@ -559,7 +505,7 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
contexts: contexts,
groupbys: groupbys,
};
},
},
toggle_visibility: function (is_visible) {
this.$el.toggle(!this.headless && is_visible);
this.$buttons && this.$buttons.toggle(!this.headless && is_visible && this.visible_filters);
@@ -643,7 +589,7 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
},
/**
* @param {openerp.web.search.SearchQuery | undefined} Undefined if event is change
* @param {openerp.web.search.Facet}
* @param {openerp.web.search.Facet}
* @param {Object} [options]
*/
renderFacets: function (collection, model, options) {
@@ -698,6 +644,60 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
renderChangedFacets: function (model, options) {
this.renderFacets(undefined, model, options);
},
// it should parse the arch field of the view, instantiate the corresponding
// filters/fields, and put them in the correct variables:
// * this.search_fields is a list of all the fields,
// * this.filters: groups of filters
// * this.group_by: group_bys
prepare_search_inputs: function () {
var self = this,
arch = this.fields_view_get.arch;
var filters = [].concat.apply([], _.map(arch.children, function (item) {
return item.tag !== 'group' ? eval_item(item) : item.children.map(eval_item);
}));
function eval_item (item) {
var category = 'filters';
if (item.attrs.context) {
try {
var context = instance.web.pyeval.eval('context', item.attrs.context);
if (context.group_by) {
category = 'group_by';
}
} catch (e) {}
}
return {
item: item,
category: category,
};
}
var current_group = [],
current_category = 'filters',
categories = {filters: this.filters, group_by: this.groupbys};
_.each(filters.concat({category:'filters', item: 'separator'}), function (filter) {
if (filter.item.tag === 'filter' && filter.category === current_category) {
return current_group.push(new my.Filter(filter.item, self));
}
if (current_group.length) {
var group = new my.FilterGroup(current_group, self);
categories[current_category].push(group);
current_group = [];
}
if (filter.item.tag === 'field') {
var attrs = filter.item.attrs,
field = self.fields_view_get.fields[attrs.name],
Obj = my.fields.get_any([attrs.widget, field.type]);
if (Obj) {
self.search_fields.push(new (Obj) (filter.item, field, self));
}
}
if (filter.item.tag === 'filter') {
current_group.push(new my.Filter(filter.item, self));
}
current_category = filter.category;
});
},
});
/**
@@ -1086,7 +1086,7 @@ instance.web.search.Field = instance.web.search.Input.extend( /** @lends instanc
var value_to_domain;
var self = this;
var domain = this.attrs['filter_domain'];
var domain = this.attrs.filter_domain;
if (domain) {
value_to_domain = function (facetValue) {
return new instance.web.CompoundDomain(domain)
@@ -1538,7 +1538,7 @@ instance.web.search.GroupByMenu = instance.web.Widget.extend({
self.toggle_add_menu(false);
var field = self.$group_selector.find(':selected').data('name');
self.add_groupby_to_menu(field);
});
});
});
},
get_groupable_fields: function (fields) {
@@ -1582,9 +1582,7 @@ instance.web.search.FavoriteMenu = instance.web.Widget.extend({
this.toggle_save_menu();
},
'click .oe-save-name button': 'save_favorite',
'hidden.bs.dropdown': function () {
this.close_menus();
},
'hidden.bs.dropdown': 'close_menus',
},
init: function (parent, query, target_model, action_id) {
this._super.apply(this,arguments);
@@ -1647,10 +1645,21 @@ instance.web.search.FavoriteMenu = instance.web.Widget.extend({
this.$inputs.first().focus();
return;
}
if (_.chain(this.filters)
.pluck('name')
.contains(filter_name).value()) {
this.do_warn(_t("Error"), _t("Filter with same name already exists."));
this.$inputs.first().focus();
return;
}
var search = this.searchview.build_search_data(),
view_manager = this.findAncestor(function (a) {
return a instanceof instance.web.ViewManager
}),
view_context = view_manager ? view_manager.active_view.controller.get_context() : {},
results = instance.web.pyeval.sync_eval_domains_and_contexts({
domains: search.domains,
contexts: search.contexts,
contexts: search.contexts.concat(view_context || []),
group_by_seq: search.groupbys || [],
});
if (!_.isEmpty(results.group_by)) {
@@ -1758,7 +1767,7 @@ instance.web.search.FavoriteMenu = instance.web.Widget.extend({
$('<span>')
.addClass('fa fa-trash-o remove-filter')
.click(function (event) {
event.stopImmediatePropagation();
event.stopImmediatePropagation();
self.remove_filter(filter, $filter, key);
})
.appendTo($filter);
@@ -1794,7 +1803,7 @@ instance.web.search.FavoriteMenu = instance.web.Widget.extend({
if (_.isEmpty(self.filters)) {
self.$divider.hide();
}
});
});
},
});
+446
View File
@@ -0,0 +1,446 @@
/*---------------------------------------------------------
* Odoo Pivot Table view
*---------------------------------------------------------*/
(function (a, b, c) {
'use strict';
var instance = openerp,
_lt = instance.web._lt,
_t = instance.web._t,
QWeb = instance.web.qweb;
nv.dev = false; // sets nvd3 library in production mode
instance.web.views.add('graph', 'instance.web.GraphView');
instance.web.GraphView = instance.web.View.extend({
className: 'oe_graph',
display_name: _lt('Graph'),
view_type: 'graph',
init: function(parent, dataset, view_id, options) {
this._super(parent, dataset, view_id, options);
this.model = new instance.web.Model(dataset.model, {group_by_no_leaf: true});
this.measures = [];
this.active_measure = '__count__';
this.initial_groupbys = [];
this.$buttons = options.$buttons;
this.widget = undefined;
},
start: function () {
var load_fields = this.model.call('fields_get', [])
.then(this.prepare_fields.bind(this));
return $.when(this._super(), load_fields).then(this.render_buttons.bind(this));
},
render_buttons: function () {
var context = {measures: _.pairs(_.omit(this.measures, '__count__'))};
this.$buttons.html(QWeb.render('GraphView.buttons', context));
this.$measure_list = this.$buttons.find('.oe-measure-list');
this.update_measure();
this.$buttons.find('button').tooltip();
this.$buttons.click(this.on_button_click.bind(this));
},
update_measure: function () {
var self = this;
this.$measure_list.find('li').each(function (index, li) {
$(li).toggleClass('selected', $(li).data('field') === self.active_measure);
});
},
view_loading: function (fvg) {
var self = this;
fvg.arch.children.forEach(function (field) {
var name = field.attrs.name;
if (field.attrs.interval) {
name += ':' + field.attrs.interval;
}
if (field.attrs.type === 'measure') {
self.active_measure = name;
} else {
self.initial_groupbys.push(name);
}
});
},
do_show: function () {
this.do_push_state({});
this.$el.show();
return this._super();
},
prepare_fields: function (fields) {
var self = this;
this.fields = fields;
_.each(fields, function (field, name) {
if ((name !== 'id') && (field.store === true)) {
if (field.type === 'integer' || field.type === 'float') {
self.measures[name] = field;
}
}
});
this.measures.__count__ = {string: _t("Quantity"), type: "integer"};
},
do_search: function (domain, context, group_by) {
if (!this.widget) {
this.initial_groupbys = context.graph_groupbys || this.initial_groupbys;
this.widget = new instance.web.GraphWidget(this, this.dataset.model, {
measure: context.graph_measure || this.active_measure,
mode: context.graph_mode || this.active_mode,
domain: domain,
groupbys: this.initial_groupbys,
context: context,
fields: this.fields,
});
// append widget
this.$el.hide();
this.widget.appendTo(this.$el);
} else {
var groupbys = group_by.length ? group_by : this.initial_groupbys.slice(0);
this.widget.update_data(domain, groupbys);
}
},
get_context: function () {
return !this.widget ? {} : {
graph_mode: this.widget.mode,
graph_measure: this.widget.measure,
graph_groupbys: this.widget.groupbys
};
},
on_button_click: function (event) {
var $target = $(event.target);
if ($target.hasClass('oe-bar-mode')) {this.widget.set_mode('bar');}
if ($target.hasClass('oe-line-mode')) {this.widget.set_mode('line');}
if ($target.hasClass('oe-pie-mode')) {this.widget.set_mode('pie');}
if ($target.parents('.oe-measure-list').length) {
var parent = $target.parent(),
field = parent.data('field');
this.active_measure = field;
parent.toggleClass('selected');
event.stopPropagation();
this.update_measure();
this.widget.set_measure(this.active_measure);
}
},
});
instance.web.GraphWidget = instance.web.Widget.extend({
init: function (parent, model, options) {
this._super(parent);
this.context = options.context;
this.fields = options.fields;
this.fields.__count__ = _t("Quantity");
this.model = new instance.web.Model(model, {group_by_no_leaf: true});
this.domain = options.domain || [];
this.groupbys = options.groupbys || [];
this.mode = options.mode || "bar";
this.measure = options.measure || "__count__";
},
start: function () {
return this.load_data().then(this.proxy('display_graph'));
},
update_data: function (domain, groupbys) {
this.domain = domain;
this.groupbys = groupbys;
return this.load_data().then(this.proxy('display_graph'));
},
set_mode: function (mode) {
this.mode = mode;
this.display_graph();
},
set_measure: function (measure) {
this.measure = measure;
return this.load_data().then(this.proxy('display_graph'));
},
load_data: function () {
var fields = this.groupbys.slice(0);
if (this.measure !== '__count__'.slice(0))
fields = fields.concat(this.measure);
return this.model
.query(fields)
.filter(this.domain)
.context(this.context)
.lazy(false)
.group_by(this.groupbys.slice(0,2))
.then(this.proxy('prepare_data'));
},
prepare_data: function () {
var raw_data = arguments[0],
is_count = this.measure === '__count__';
var data_pt, j, values, value;
this.data = [];
for (var i = 0; i < raw_data.length; i++) {
data_pt = raw_data[i].attributes;
values = [];
if (this.groupbys.length === 1) data_pt.value = [data_pt.value];
for (j = 0; j < data_pt.value.length; j++) {
values[j] = this.sanitize_value(data_pt.value[j], data_pt.grouped_on[j]);
}
value = is_count ? data_pt.length : data_pt.aggregates[this.measure];
this.data.push({
labels: values,
value: value
});
}
},
sanitize_value: function (value, field) {
if (value === false) return _t("Undefined");
if (value instanceof Array) return value[1];
if (field && this.fields[field] && (this.fields[field].type === 'selection')) {
var selected = _.where(this.fields[field].selection, {0: value})[0];
return selected ? selected[1] : value;
}
return value;
},
display_graph: function () {
if (this.to_remove) {
nv.utils.offWindowResize(this.to_remove);
}
this.$el.empty();
if (!this.data.length) {
this.$el.append(QWeb.render('GraphView.error', {
title: _t("No data to display"),
description: _t("No data available for this chart. " +
"Try to add some records, or make sure that" +
"there is no active filter in the search bar."),
}));
} else {
this['display_' + this.mode]();
}
},
display_bar: function () {
// prepare data for bar chart
var data, values,
measure = this.fields[this.measure].string;
// zero groupbys
if (this.groupbys.length === 0) {
data = [{
values: [{
x: this.ViewManager.title,
y: this.data[0].value}],
key: measure
}];
}
// one groupby
if (this.groupbys.length === 1) {
values = this.data.map(function (datapt) {
return {x: datapt.labels, y: datapt.value};
});
data = [
{
values: values,
key: measure,
}
];
}
if (this.groupbys.length > 1) {
var xlabels = [],
series = [],
label, serie, value;
values = {};
for (var i = 0; i < this.data.length; i++) {
label = this.data[i].labels[0];
serie = this.data[i].labels[1];
value = this.data[i].value;
if ((!xlabels.length) || (xlabels[xlabels.length-1] !== label)) {
xlabels.push(label);
}
series.push(this.data[i].labels[1]);
if (!(serie in values)) {values[serie] = {};}
values[serie][label] = this.data[i].value;
}
series = _.uniq(series);
data = [];
var current_serie, j;
for (i = 0; i < series.length; i++) {
current_serie = {values: [], key: series[i]};
for (j = 0; j < xlabels.length; j++) {
current_serie.values.push({
x: xlabels[j],
y: values[series[i]][xlabels[j]] || 0,
});
}
data.push(current_serie);
}
}
var svg = d3.select(this.$el[0]).append('svg');
svg.datum(data);
svg.transition().duration(0);
var chart = nv.models.multiBarChart();
chart.options({
delay: 250,
transitionDuration: 10,
showLegend: true,
showXAxis: true,
showYAxis: true,
rightAlignYAxis: false,
stacked: true,
reduceXTicks: false,
// rotateLabels: 40,
showControls: (this.groupbys.length > 1)
});
chart(svg);
this.to_remove = chart.update;
nv.utils.onWindowResize(chart.update);
},
display_pie: function () {
var data = [],
tickValues,
tickFormat,
measure = this.fields[this.measure].string;
var all_negative = true,
some_negative = false,
all_zero = true;
this.data.forEach(function (datapt) {
all_negative = all_negative && (datapt.value < 0);
some_negative = some_negative || (datapt.value < 0);
all_zero = all_zero && (datapt.value === 0)
});
if (some_negative && !all_negative) {
return this.$el.append(QWeb.render('GraphView.error', {
title: _t("Invalid data"),
description: _t("Pie chart cannot mix positive and negative numbers. " +
"Try to change your domain to only display positive results"),
}));
}
if (all_zero) {
return this.$el.append(QWeb.render('GraphView.error', {
title: _t("Invalid data"),
description: _t("Pie chart cannot display all zero numbers.. " +
"Try to change your domain to display positive results"),
}));
}
if (this.groupbys.length) {
data = this.data.map(function (datapt) {
return {x:datapt.labels.join("/"), y: datapt.value};
});
}
var svg = d3.select(this.$el[0]).append('svg');
svg.datum(data);
svg.transition().duration(100);
var chart = nv.models.pieChart();
chart.options({
delay: 250,
transitionDuration: 100,
color: d3.scale.category10().range(),
});
chart(svg);
this.to_remove = chart.update;
nv.utils.onWindowResize(chart.update);
},
display_line: function () {
if (this.data.length < 2) {
this.$el.append(QWeb.render('GraphView.error', {
title: _t("Not enough data points"),
description: "You need at least two data points to display a line chart."
}));
return;
}
var self = this,
data = [],
tickValues,
tickFormat,
measure = this.fields[this.measure].string;
if (this.groupbys.length === 1) {
var values = this.data.map(function (datapt, index) {
return {x: index, y: datapt.value};
});
data = [
{
values: values,
key: measure,
}
];
tickValues = this.data.map(function (d, i) { return i;});
tickFormat = function (d) {return self.data[d].labels;};
}
if (this.groupbys.length > 1) {
data = [];
var data_dict = {},
tick = 0,
tickLabels = [],
serie, tickLabel,
identity = function (p) {return p;};
tickValues = [];
for (var i = 0; i < this.data.length; i++) {
if (this.data[i].labels[0] !== tickLabel) {
tickLabel = this.data[i].labels[0];
tickValues.push(tick);
tickLabels.push(tickLabel);
tick++;
}
serie = this.data[i].labels[1];
if (!data_dict[serie]) {
data_dict[serie] = {
values: [],
key: serie,
};
}
data_dict[serie].values.push({
x: tick, y: this.data[i].value,
});
data = _.map(data_dict, identity);
}
tickFormat = function (d) {return tickLabels[d];};
}
var svg = d3.select(this.$el[0]).append('svg');
svg.datum(data);
svg.transition().duration(0);
var chart = nv.models.lineChart();
chart.options({
margin: {left: 50, right: 50},
useInteractiveGuideline: true,
showLegend: true,
showXAxis: true,
showYAxis: true,
});
chart.xAxis.tickValues(tickValues)
.tickFormat(tickFormat);
chart(svg);
this.to_remove = chart.update;
nv.utils.onWindowResize(chart.update);
},
destroy: function () {
nv.utils.offWindowResize(this.to_remove);
return this._super();
}
});
// monkey patch nvd3 to allow removing eventhandler on windowresize events
// see https://github.com/novus/nvd3/pull/396 for more details
// Adds a resize listener to the window.
nv.utils.onWindowResize = function(fun) {
if (fun === null) return;
window.addEventListener('resize', fun);
};
// Backwards compatibility with current API.
nv.utils.windowResize = nv.utils.onWindowResize;
// Removes a resize listener from the window.
nv.utils.offWindowResize = function(fun) {
if (fun === null) return;
window.removeEventListener('resize', fun);
};
// monkey patch nvd3 to prevent crashes when user changes view and nvd3 tries
// to remove tooltips after 500 ms... seriously nvd3, what were you thinking?
nv.tooltip.cleanup = function () {
$('.nvtooltip').remove();
};
})();
+719 -14
View File
@@ -8,7 +8,9 @@
var instance = openerp,
_lt = instance.web._lt,
_t = instance.web._t,
QWeb = instance.web.qweb;
QWeb = instance.web.qweb,
format_value = instance.web.format_value,
total = _t("Total");
instance.web.views.add('pivot', 'instance.web.PivotView');
@@ -16,43 +18,101 @@ instance.web.PivotView = instance.web.View.extend({
template: 'PivotView',
display_name: _lt('Pivot'),
view_type: 'pivot',
events: {
'click .oe-opened': 'on_open_header_click',
'click .oe-closed': 'on_closed_header_click',
'click .o-field-menu': 'on_field_menu_selection',
'click td': 'on_cell_click',
'click .measure-row': 'on_measure_row_click',
},
init: function(parent, dataset, view_id, options) {
this._super(parent, dataset, view_id, options);
this.model = new instance.web.Model(dataset.model, {group_by_no_leaf: true});
this.action_manager = parent.action_manager;
this.$buttons = options.$buttons;
this.$sidebar = options.$sidebar;
this.fields = {};
this.measures = {};
this.groupable_fields = {};
this.ready = false; // will be ready after the first do_search
this.data_loaded = $.Deferred();
this.title = options.title;
this.main_row = {
root: undefined,
groupbys: [],
};
this.main_col = {
root: undefined,
groupbys: [],
};
this.initial_col_groupby = [];
this.initial_row_groupby = [];
this.row_groupbys = [];
this.col_groupbys = [];
this.active_measures = [];
this.headers = {};
this.cells = {};
this.has_data = false;
this.last_header_selected = null;
this.sorted_column = {};
},
start: function () {
var self = this,
load_fields = this.model.call('fields_get', [])
var self = this;
this.$table_container = this.$('.o-pivot-table');
var load_fields = this.model.call('fields_get', [])
.then(this.prepare_fields.bind(this));
return $.when(this._super(), load_fields).then(function () {
var context = {measures: _.pairs(self.measures)};
self.$buttons.html(QWeb.render('PivotView.buttons', self), context);
if (this.$sidebar) {
openerp.session.rpc('/web/pivot/check_xlwt').then(function (result) {
if (result) {
self.sidebar = new instance.web.Sidebar(self);
self.sidebar.appendTo(self.$sidebar);
self.sidebar.add_items('other', [{
label: _t("Download xls"),
callback: self.dowload_table.bind(self)
}]);
}
});
}
return $.when(this._super(), load_fields).then(this.render_buttons.bind(this));
},
render_buttons: function () {
var self = this;
var context = {measures: _.pairs(_.omit(this.measures, '__count__'))};
this.$buttons.html(QWeb.render('PivotView.buttons', context));
this.$buttons.click(this.on_button_click.bind(this));
this.active_measures.forEach(function (measure) {
self.$buttons.find('li[data-field="' + measure + '"]').addClass('selected');
});
var another_ctx = {fields: _.pairs(this.groupable_fields)};
this.$field_selection = this.$('.o-field-selection');
this.$field_selection.html(QWeb.render('PivotView.FieldSelection', another_ctx));
openerp.web.bus.on('click', self, function () {
self.$field_selection.find('ul').first().hide();
});
this.$buttons.find('button').tooltip();
},
view_loading: function (fvg) {
var self = this;
this.do_push_state({});
this.title = this.title || fvg.arch.attrs.string;
this.enable_linking = !fvg.arch.attrs.disable_linking;
this.$el.toggleClass('oe-enable-linking', this.enable_linking);
fvg.arch.children.forEach(function (field) {
var name = field.attrs.name + (field.attrs.interval || '');
var name = field.attrs.name;
if (field.attrs.interval) {
name += ':' + field.attrs.interval;
}
//noinspection FallThroughInSwitchStatementJS
switch (field.attrs.type) {
case 'measure':
self.active_measures.push(name);
break;
case 'col':
self.col_groupbys.push(name);
self.initial_col_groupby.push(name);
break;
default:
if ('operator' in field.attrs) {
@@ -60,9 +120,12 @@ instance.web.PivotView = instance.web.View.extend({
break;
}
case 'row':
self.row_groupbys.push(name);
self.initial_row_groupby.push(name);
}
});
if ((!self.active_measures.length) || fvg.arch.attrs.display_quantity){
self.active_measures.push('__count__');
}
},
prepare_fields: function (fields) {
var self = this,
@@ -79,11 +142,653 @@ instance.web.PivotView = instance.web.View.extend({
}
}
});
this.measures.__count__ = {string: "Quantity", type: "integer"};
},
do_search: function (domain, context, group_by) {
if (!this.ready) {
this.initial_row_groupby = context.pivot_row_groupby || this.initial_row_groupby;
this.initial_col_groupby = context.pivot_col_groupby || this.initial_col_groupby;
}
this.main_row.groupbys = group_by.length ? group_by : this.initial_row_groupby.slice(0);
this.main_col.groupbys = context.pivot_column_groupby || this.initial_col_groupby.slice(0);
this.active_measures = context.pivot_measures || this.active_measures;
this.domain = domain;
this.context = context;
if (!this.ready) {
this.data_loaded = this.load_data(true);
this.ready = true;
return;
}
this.data_loaded = this.load_data(false);
return this.do_show();
},
do_show: function () {
var self = this;
this.do_push_state({});
this.data_loaded.done(function () {
self.display_table();
self.$el.show();
});
return this._super();
},
get_context: function () {
return !this.ready ? {} : {
pivot_measures: this.active_measures,
pivot_column_groupby: this.main_col.groupbys,
pivot_row_groupby: this.main_row.groupbys,
};
},
on_button_click: function (event) {
var $target = $(event.target);
if ($target.hasClass('oe-pivot-flip')) { return this.flip();}
if ($target.hasClass('oe-pivot-expand-all')) {return this.expand_all();}
if ($target.parents('.oe-measure-list').length) {
var parent = $target.parent(),
field = parent.data('field');
parent.toggleClass('selected');
event.stopPropagation();
return this.toggle_measure(field);
}
if ($target.hasClass('oe-pivot-download')) {
return this.dowload_table();
}
},
on_open_header_click: function (event) {
var id = $(event.target).data('id'),
header = this.headers[id];
header.expanded = false;
header.children = [];
var new_groupby_length = this.get_header_depth(header.root) - 1;
header.root.groupbys.splice(new_groupby_length);
this.display_table();
},
on_closed_header_click: function (event) {
var id = $(event.target).data('id'),
header = this.headers[id],
groupbys = header.root.groupbys;
if (header.path.length - 1 < groupbys.length) {
this.expand_header(header, groupbys[header.path.length - 1])
.then(this.proxy('display_table'));
} else {
var $test = $(event.target);
var pos = $test.position();
this.last_header_selected = id;
var $menu = this.$field_selection.find('ul').first();
$menu.css('top', pos.top + $test.parent().height() - 2);
$menu.css('left', pos.left + event.offsetX);
$menu.show();
event.stopPropagation();
}
},
on_cell_click: function (event) {
var $target = $(event.target);
if ($target.hasClass('oe-closed')
|| $target.hasClass('oe-opened')
|| $target.hasClass('oe-empty')
|| !this.enable_linking) {
return;
}
var row_id = $target.data('id'),
col_id = $target.data('col_id'),
row_domain = this.headers[row_id].domain,
col_domain = this.headers[col_id].domain,
context = _.omit(_.clone(this.context), 'group_by');
return this.do_action({
type: 'ir.actions.act_window',
name: this.title,
res_model: this.model.name,
views: [[false, 'list'], [false, 'form']],
view_type : "list",
view_mode : "list",
target: 'current',
context: context,
domain: this.domain.concat(row_domain, col_domain),
});
},
on_measure_row_click: function (event) {
var $target = $(event.target),
col_id = $target.data('id'),
measure = $target.data('measure');
this.sort_rows(col_id, measure, $target.hasClass('o-sorted-asc'));
this.display_table();
},
sort_rows: function (col_id, measure, descending) {
console.log('order', descending);
var self = this;
traverse_tree(this.main_row.root, function (header) {
header.children.sort(compare);
});
this.sorted_column = {
id: col_id,
measure: measure,
order: descending ? 'desc' : 'asc',
};
function compare (row1, row2) {
var values1 = self.get_value(row1.id, col_id),
values2 = self.get_value(row2.id, col_id),
value1 = values1 ? values1[measure] : 0,
value2 = values2 ? values2[measure] : 0;
return descending ? value1 - value2 : value2 - value1;
}
},
on_field_menu_selection: function (event) {
var self = this;
var field = $(event.target).parent().data('field'),
interval = $(event.target).data('interval'),
header = this.headers[this.last_header_selected];
if (interval) field = field + ':' + interval;
this.expand_header(header, field)
.then(function () {
header.root.groupbys.push(field);
})
.then(this.proxy('display_table'));
},
expand_header: function (header, field) {
var self = this;
var other_root = header.root.other_root,
this_groupbys = header.root.groupbys,
other_groupbys = header.root.other_root.groupbys,
fields = [].concat(field, other_groupbys, this.active_measures),
groupbys = [];
for (var i = 0; i <= other_groupbys.length; i++) {
groupbys.push([field].concat(other_groupbys.slice(0,i)));
}
return $.when.apply(null, groupbys.map(function (groupby) {
return self.model.query(fields)
.filter(header.domain.length ? header.domain : self.domain)
.context(self.context)
.lazy(false)
.group_by(groupby);
})).then(function () {
var data = Array.prototype.slice.call(arguments),
datapt, attrs, j, k, l, row, col, cell_value, field_name;
for (i = 0; i < data.length; i++) {
for (j = 0; j < data[i].length; j++){
datapt = data[i][j];
attrs = datapt.attributes;
if (i === 0) attrs.value = [attrs.value];
for (k = 0; k < attrs.value.length; k++) {
if (k < 1) field_name = field;
else field_name = other_groupbys[k - 1];
attrs.value[k] = self.sanitize_value(attrs.value[k], field_name);
}
if (i === 0) {
row = self.make_header(datapt, header.root, 0, 1, header);
} else {
row = self.get_header(datapt, header.root, 0, 1, header);
}
col = self.get_header(datapt, other_root, 1, i + 1);
if (!col) continue;
for (cell_value = {}, l=0; l < self.active_measures.length; l++) {
cell_value[self.active_measures[l]] = attrs.aggregates[self.active_measures[l]];
}
cell_value.__count__ = attrs.length;
if (!self.cells[row.id]) self.cells[row.id] = [];
self.cells[row.id][col.id] = cell_value;
}
}
});
},
expand_all: function () {
this.load_data(false).then(this.proxy('display_table'));
},
// returns a deferred that resolve when the data is loaded.
load_data: function (update) {
var should_update = (update && this.main_row.root && this.main_col.root);
var self = this,
i, j,
groupbys = [],
row_gbs = this.main_row.groupbys,
col_gbs = this.main_col.groupbys,
fields = [].concat(row_gbs, col_gbs, this.active_measures);
for (i = 0; i < row_gbs.length + 1; i++) {
for (j = 0; j < col_gbs.length + 1; j++) {
groupbys.push(row_gbs.slice(0,i).concat(col_gbs.slice(0,j)));
}
}
return $.when.apply(null, groupbys.map(function (groupby) {
return self.model.query(fields)
.filter(self.domain)
.context(self.context)
.lazy(false)
// .order_by(['probable_revenue'])
.group_by(groupby);
})).then(function () {
var data = Array.prototype.slice.call(arguments);
self.prepare_data(data, should_update);
});
},
prepare_data: function (data, should_update) {
var i, j, k, l, m,
index = 0,
row_gbs = this.main_row.groupbys,
col_gbs = this.main_col.groupbys,
main_row_header, main_col_header,
row, col, attrs, datapt, cell_value,
field;
for (i = 0; i < row_gbs.length + 1; i++) {
for (j = 0; j < col_gbs.length + 1; j++) {
for (k = 0; k < data[index].length; k++) {
datapt = data[index][k];
attrs = datapt.attributes;
if (i + j === 1) {
attrs.value = [attrs.value];
}
for (l = 0; l < attrs.value.length; l++) {
if (l < i) field = row_gbs[l];
else field = col_gbs[l - i];
attrs.value[l] = this.sanitize_value(attrs.value[l], field);
}
if (j === 0) {
row = this.make_header(datapt, main_row_header, 0, i);
} else {
row = this.get_header(datapt, main_row_header, 0, i);
}
if (i === 0) {
col = this.make_header(datapt, main_col_header, i, i+j);
} else {
col = this.get_header(datapt, main_col_header, i, i+j);
}
if (i + j === 0) {
this.has_data = attrs.length > 0;
main_row_header = row;
main_col_header = col;
}
if (!this.cells[row.id]) this.cells[row.id] = [];
for (cell_value = {}, m=0; m < this.active_measures.length; m++) {
cell_value[this.active_measures[m]] = attrs.aggregates[this.active_measures[m]];
}
cell_value.__count__ = attrs.length;
this.cells[row.id][col.id] = cell_value;
}
index++;
}
}
if (should_update) {
this.update_tree(this.main_row.root, main_row_header);
var new_groupby_length = this.get_header_depth(main_row_header) - 1;
main_row_header.groupbys = this.main_row.root.groupbys.slice(0, new_groupby_length);
this.update_tree(this.main_col.root, main_col_header);
new_groupby_length = this.get_header_depth(main_col_header) - 1;
main_col_header.groupbys = this.main_col.root.groupbys.slice(0, new_groupby_length);
} else {
main_row_header.groupbys = this.main_row.groupbys;
main_col_header.groupbys = this.main_col.groupbys;
}
main_row_header.other_root = main_col_header;
main_col_header.other_root = main_row_header;
this.main_row.root = main_row_header;
this.main_col.root = main_col_header;
},
update_tree: function (old_tree, new_tree) {
if (!old_tree.expanded) {
new_tree.expanded = false;
new_tree.children = [];
return;
}
var tree, j, old_title, new_title;
for (var i = 0; i < new_tree.children.length; i++) {
tree = undefined;
new_title = new_tree.children[i].path[new_tree.children[i].path.length - 1];
for (j = 0; j < old_tree.children.length; j++) {
old_title = old_tree.children[j].path[old_tree.children[j].path.length - 1];
if (old_title === new_title) {
tree = old_tree.children[j];
break;
}
}
if (tree) this.update_tree(tree, new_tree.children[i]);
else {
new_tree.children[i].expanded = false;
new_tree.children[i].children = [];
}
}
},
sanitize_value: function (value, field) {
if (value === false) return _t("Undefined");
if (value instanceof Array) return value[1];
if (field && this.fields[field] && (this.fields[field].type === 'selection')) {
var selected = _.where(this.fields[field].selection, {0: value})[0];
return selected ? selected[1] : value;
}
return value;
},
make_header: function (data_pt, root, i, j, parent_header) {
var attrs = data_pt.attributes,
value = attrs.value,
title = value.length ? value[value.length - 1] : total;
var path, parent;
if (parent_header) {
path = parent_header.path.concat(title);
parent = parent_header;
} else {
path = [total].concat(value.slice(i,j-1));
parent = value.length ? find_path_in_tree(root, path) : null;
}
var header = {
id: generate_id(),
expanded: false,
domain: data_pt.model._domain,
children: [],
path: value.length ? parent.path.concat(title) : [title]
};
this.headers[header.id] = header;
header.root = root || header;
if (parent) {
parent.children.push(header);
parent.expanded = true;
}
return header;
},
get_header: function (data_pt, root, i, j, parent) {
var path;
if (parent) {
path = parent.path.concat(data_pt.attributes.value.slice(i,j));
} else {
path = [total].concat(data_pt.attributes.value.slice(i,j));
}
return find_path_in_tree(root, path);
},
display_table: function () {
if (!this.active_measures.length || !this.has_data) {
return this.$table_container.empty().append(QWeb.render('PivotView.nodata'));
}
var $fragment = $(document.createDocumentFragment()),
$table = $('<table>')
.addClass('table table-hover table-condensed')
.appendTo($fragment),
$thead = $('<thead>').appendTo($table),
$tbody = $('<tbody>').appendTo($table),
headers = this.compute_headers(),
rows = this.compute_rows(),
nbr_measures = this.active_measures.length,
nbr_cols = (this.main_col.width === 1) ? nbr_measures : (this.main_col.width + 1)*nbr_measures;
for (var i=0; i < nbr_cols + 1; i++) {
$table.prepend($('<col>'));
}
this.draw_headers($thead, headers);
this.draw_rows($tbody, rows);
$table.on('hover', 'td', function () {
$table.find('col:eq(' + $(this).index()+')').toggleClass('hover');
});
this.$table_container.empty().append($fragment);
this.$table_container.find('.oe-opened,.oe-closed').tooltip();
},
draw_headers: function ($thead, headers) {
var self = this,
i, j, cell, $row, $cell,
display_total = this.main_col.width > 1;
var groupby_labels = _.map(this.main_col.groupbys, function (gb) {
return self.groupable_fields[gb.split(':')[0]].string;
});
for (i = 0; i < headers.length; i++) {
$row = $('<tr>');
for (j = 0; j < headers[i].length; j++) {
cell = headers[i][j];
$cell = $('<th>')
.text(cell.title)
.attr('rowspan', cell.height)
.attr('colspan', cell.width);
if (cell.total) {
$cell.addClass('oe-total');
}
if (i > 0) {
$cell.attr('title', groupby_labels[i-1]);
}
if (cell.expanded !== undefined) {
$cell.addClass(cell.expanded ? 'oe-opened' : 'oe-closed');
$cell.data('id', cell.id);
}
if (cell.measure) {
$cell.addClass('measure-row text-muted')
.text(this.measures[cell.measure].string)
.toggleClass('oe-total', cell.is_bold);
$cell.data('id', cell.id).data('measure', cell.measure);
if (cell.id === this.sorted_column.id && cell.measure === this.sorted_column.measure) {
$cell.addClass('o-sorted o-sorted-' + this.sorted_column.order);
}
}
$row.append($cell);
}
$thead.append($row);
}
},
draw_rows: function ($tbody, rows) {
var self = this,
i, j, value, $row, $cell, $header,
nbr_measures = this.active_measures.length,
length = rows[0].values.length,
display_total = this.main_col.width > 1;
var groupby_labels = _.map(this.main_row.groupbys, function (gb) {
return self.groupable_fields[gb.split(':')[0]].string;
});
var measure_types = this.active_measures.map(function (name) {
return self.measures[name].type;
});
for (i = 0; i < rows.length; i++) {
$row = $('<tr>');
$header = $('<td>')
.text(rows[i].title)
.data('id', rows[i].id)
.css('padding-left', (5 + rows[i].indent * 30) + 'px')
.addClass(rows[i].expanded ? 'oe-opened' : 'oe-closed');
if (rows[i].indent > 0) $header.attr('title', groupby_labels[rows[i].indent - 1]);
$header.appendTo($row);
for (j = 0; j < length; j++) {
value = format_value(rows[i].values[j], {type: measure_types[j % nbr_measures]});
$cell = $('<td>')
.data('id', rows[i].id)
.data('col_id', rows[i].col_ids[Math.floor(j / nbr_measures)])
.toggleClass('oe-empty', !value)
.text(value);
if (((j >= length - this.active_measures.length) && display_total) || i === 0){
$cell.css('font-weight', 'bold');
}
$row.append($cell);
}
$tbody.append($row);
}
},
compute_headers: function () {
var self = this,
main_col_dims = this.get_header_width_depth(this.main_col.root),
depth = main_col_dims.depth,
width = main_col_dims.width,
nbr_measures = this.active_measures.length,
result = [[{width:1, height: depth + 1}]],
col_ids = [];
this.main_col.width = width;
traverse_tree(this.main_col.root, function (header) {
var index = header.path.length - 1,
cell = {
width: self.get_header_width(header) * nbr_measures,
height: header.expanded ? 1 : depth - index,
title: header.path[header.path.length-1],
id: header.id,
expanded: header.expanded,
};
if (!header.expanded) col_ids.push(header.id);
if (result[index]) result[index].push(cell);
else result[index] = [cell];
});
col_ids.push(this.main_col.root.id);
this.main_col.width = width;
if (width > 1) {
var total_cell = {width:nbr_measures, height: depth, title:""};
if (nbr_measures === 1) {
total_cell.title = this.measures[this.active_measures[0]].string;
total_cell.total = true;
}
result[0].push(total_cell);
}
var nbr_cols = width === 1 ? nbr_measures : (width + 1)*nbr_measures;
for (var i = 0, measure_row = [], measure; i < nbr_cols; i++) {
measure = this.active_measures[i % nbr_measures];
measure_row.push({
measure: measure,
is_bold: (width > 1) && (i >= nbr_measures*width),
id: col_ids[Math.floor(i / nbr_measures)],
});
}
result.push(measure_row);
return result;
},
get_header_width: function (header) {
var self = this;
if (!header.children.length) return 1;
if (!header.expanded) return 1;
return header.children.reduce(function (s, c) {
return s + self.get_header_width(c);
}, 0);
},
get_header_width_depth: function (header) {
var depth = 1,
width = 0;
traverse_tree (header, function (hdr) {
depth = Math.max(depth, hdr.path.length);
if (!hdr.expanded) width++;
});
return {width: width, depth: depth};
},
get_header_depth: function (header) {
var depth = 1;
traverse_tree(header, function (hdr) {
depth = Math.max(depth, hdr.path.length);
});
return depth;
},
compute_rows: function () {
var self = this,
aggregates, i,
result = [],
nbr_measures = this.active_measures.length;
traverse_tree(this.main_row.root, function (header) {
var values = [],
col_ids = [];
result.push({
id: header.id,
col_ids: col_ids,
indent: header.path.length - 1,
title: header.path[header.path.length-1],
expanded: header.expanded,
values: values,
});
traverse_tree(self.main_col.root, add_cells, header.id, values, col_ids);
if (self.main_col.width > 1) {
aggregates = self.get_value(header.id, self.main_col.root.id);
for (i = 0; i < self.active_measures.length; i++) {
values.push(aggregates && aggregates[self.active_measures[i]]);
}
col_ids.push( self.main_col.root.id);
}
});
return result;
function add_cells (col_hdr, row_id, values, col_ids) {
if (col_hdr.expanded) return;
col_ids.push(col_hdr.id);
aggregates = self.get_value(row_id, col_hdr.id);
for (i = 0; i < self.active_measures.length; i++) {
values.push(aggregates && aggregates[self.active_measures[i]]);
}
}
},
get_value: function (id1, id2) {
if ((id1 in this.cells) && (id2 in this.cells[id1])) {
return this.cells[id1][id2];
}
if (id2 in this.cells) return this.cells[id2][id1];
},
flip: function () {
var temp = this.main_col;
this.main_col = this.main_row;
this.main_row = temp;
this.display_table();
},
toggle_measure: function (field) {
if (_.contains(this.active_measures, field)) {
this.active_measures = _.without(this.active_measures, field);
this.display_table();
} else {
this.active_measures.push(field);
this.load_data().then(this.display_table.bind(this));
}
},
dowload_table: function () {
openerp.web.blockUI();
var nbr_measures = this.active_measures.length,
headers = this.compute_headers(),
measure_row = nbr_measures > 1 ? _.last(headers) : [],
rows = this.compute_rows(),
i, j, value;
headers[0].splice(0,1);
// process measure_row
for (i = 0; i < measure_row.length; i++) {
measure_row[i].measure = this.measures[measure_row[i].measure].string;
}
// process all rows
for (i =0, j, value; i < rows.length; i++) {
for (j = 0; j < rows[i].values.length; j++) {
value = rows[i].values[j];
rows[i].values[j] = {
is_bold: (i === 0) || ((this.main_col.width > 1) && (j >= rows[i].values.length - nbr_measures)),
value: (value === undefined) ? "" : value,
};
}
}
var table = {
headers: nbr_measures > 1 ? _.initial(headers) : headers,
measure_row: measure_row,
rows: rows,
nbr_measures: nbr_measures,
title: this.title,
};
var c = openerp.webclient.crashmanager;
this.session.get_file({
url: '/web/pivot/export_xls',
data: {data: JSON.stringify(table)},
complete: openerp.web.unblockUI,
error: c.rpc_error.bind(c)
});
},
});
// helpers
var id = -1;
function generate_id () {
return ++id;
}
function traverse_tree(root, f, arg1, arg2, arg3) {
f(root, arg1, arg2, arg3);
if (!root.expanded) return;
for (var i = 0; i < root.children.length; i++) {
traverse_tree(root.children[i], f, arg1, arg2, arg3);
}
}
function find_path_in_tree(root, path) {
var i,
l = root.path.length;
if (l === path.length) {
return (root.path[l-1] === path[l - 1]) ? root : null;
}
for (i = 0; i < root.children.length; i++) {
if (root.children[i].path[l] === path[l]) {
return find_path_in_tree(root.children[i], path);
}
}
return null;
}
})();
+8 -2
View File
@@ -337,6 +337,7 @@ instance.web.ActionManager = instance.web.Widget.extend({
sidebar : !popup && !inline,
pager : (!popup || !form) && !inline,
display_title : !popup,
headless: (popup || inline) && form,
search_disable_custom_filters: action.context && action.context.search_disable_custom_filters
});
action.menu_id = options.action_menu_id;
@@ -797,13 +798,15 @@ instance.web.ViewManager = instance.web.Widget.extend({
search: function(domains, contexts, groupbys) {
var self = this,
controller = this.active_view.controller,
action_context = this.action.context || {};
action_context = this.action.context || {},
view_context = controller.get_context();
instance.web.pyeval.eval_domains_and_contexts({
domains: [this.action.domain || []].concat(domains || []),
contexts: [action_context].concat(contexts || []),
contexts: [action_context, view_context].concat(contexts || []),
group_by_seq: groupbys || []
}).done(function (results) {
if (results.error) {
self.active_search.resolve();
throw new Error(
_.str.sprintf(_t("Failed to evaluate search criterions")+": \n%s",
JSON.stringify(results.error)));
@@ -1408,6 +1411,9 @@ instance.web.View = instance.web.Widget.extend({
var attrs = this.fields_view.arch.attrs;
return (action in attrs) ? JSON.parse(attrs[action]) : true;
},
get_context: function () {
return {}
},
});
/**
+64 -8
View File
@@ -508,7 +508,7 @@
</div>
<div class="oe-view-manager-content">
<t t-foreach="widget.views" t-as="view">
<div t-attf-class="oe-view-manager-view-#{view}"/>
<div t-attf-class="oe-view-manager-view-#{view} fade"/>
</t>
</div>
</div>
@@ -913,26 +913,82 @@
</label>
</t>
<div t-name="PivotView" class="oe_pivot"/>
<t t-name="GraphView.buttons">
<div class="btn-group btn-group-sm">
<button class="btn btn-default fa fa-bar-chart-o oe-bar-mode" title="Bar Chart"></button>
<button class="btn btn-default fa fa-line-chart oe-line-mode" title="Line Chart"></button>
<button class="btn btn-default fa fa-pie-chart oe-pie-mode" title="Pie Chart"></button>
</div>
<div class="btn-group btn-group-sm">
<button class="btn btn-default dropdown-toggle" data-toggle="dropdown">
Measure <span class="caret"/>
</button>
<ul class="oe-measure-list dropdown-menu">
<li t-foreach="measures" t-as="measure" t-att-data-field="measure[0]">
<a><t t-esc="measure[1].string"/></a>
</li>
<li class="divider"></li>
<li data-field="__count__"><a>Quantity</a></li>
</ul>
</div>
</t>
<div t-name="GraphView.error" class="oe_view_nocontent" >
<div class="oe_empty_custom_dashboard">
<p><b><t t-esc="title"/></b></p>
<p><t t-esc="description"/></p>
</div>
</div>
<div t-name="PivotView" class="oe_pivot">
<div class="o-field-selection"/>
<div class="o-pivot-table"/>
</div>
<t t-name="PivotView.buttons">
<div class="btn-group btn-group-sm">
<button class="btn btn-default fa fa-expand oe-pivot-flip"></button>
<button class="btn btn-default fa fa-arrows-alt oe-pivot-expand-all"></button>
<button class="btn btn-default fa fa-download oe-pivot-download"></button>
<button class="btn btn-default fa fa-expand oe-pivot-flip" title="Flip axis"></button>
<button class="btn btn-default fa fa-arrows-alt oe-pivot-expand-all" title="Expand all"></button>
</div>
<div class="btn-group btn-group-sm">
<button class="btn btn-default dropdown-toggle" data-toggle="dropdown">
Measures <span class="caret"/>
</button>
<ul class="oe-measure-list dropdown-menu">
<li t-foreach="measures" t-as="measure" t-att-data-field="measure">
<a><t t-esc="measures[measure].string"/></a>
<li t-foreach="measures" t-as="measure" t-att-data-field="measure[0]">
<a><t t-esc="measure[1].string"/></a>
</li>
<li class="divider"></li>
<li data-field="__count__"><a>Quantity</a></li>
</ul>
</div>
</t>
<t t-name="PivotView.FieldSelection">
<ul class="dropdown-menu multi-level o-field-menu" role="menu">
<t t-foreach="fields" t-as="field">
<t t-if="(field[1].type === 'date') || (field[1].type === 'datetime')">
<li class="pivot-dropdown-submenu" t-att-data-field="field[0]">
<a class="field-selection">
<t t-esc="field[1].string"/>
</a>
<ul class="dropdown-menu">
<li t-att-data-field="field[0]"><a t-att-data-interval="'day'">Day</a></li>
<li t-att-data-field="field[0]"><a t-att-data-interval="'week'">Week</a></li>
<li t-att-data-field="field[0]"><a t-att-data-interval="'month'">Month</a></li>
<li t-att-data-field="field[0]"><a t-att-data-interval="'quarter'">Quarter</a></li>
<li t-att-data-field="field[0]"><a t-att-data-interval="'year'">Year</a></li>
</ul>
</li>
</t>
<t t-if="(field[1].type !== 'date') &amp;&amp; (field[1].type !== 'datetime')">
<li t-att-data-field="field[0]"><a><t t-esc="field[1].string"/></a></li>
</t>
</t>
</ul>
</t>
<div t-name="PivotView.nodata" class="oe_view_nocontent" >
<div class="oe_empty_custom_dashboard">
<p><b>No data to display.</b></p>
@@ -1672,7 +1728,7 @@
<span><input type="checkbox"/>Use by default</span>
</li>
<li class="oe-save-name">
<span><input type="checkbox"/>Share with all users</span>
<span class="oe-share-filter"><input type="checkbox"/>Share with all users</span>
</li>
<li class="oe-save-name"><button class="btn btn-default">Save</button></li>
</ul>
+5
View File
@@ -73,6 +73,10 @@
<link rel="stylesheet" href="/web/static/lib/jquery.ui.notify/css/ui.notify.css"/>
<script type="text/javascript" src="/web/static/lib/jquery.ui.notify/js/jquery.notify.js"></script>
<!-- nv.d3 -->
<link rel="stylesheet" href="/web/static/lib/nvd3/nv.d3.css"/>
<script type="text/javascript" src="/web/static/lib/nvd3/d3.v3.js"></script>
<script type="text/javascript" src="/web/static/lib/nvd3/nv.d3.js"></script>
<!-- Backbone -->
<script type="text/javascript" src="/web/static/lib/backbone/backbone.js"></script>
@@ -100,6 +104,7 @@
<script type="text/javascript" src="/web/static/src/js/view_form.js"></script>
<script type="text/javascript" src="/web/static/src/js/view_list_editable.js"></script>
<script type="text/javascript" src="/web/static/src/js/view_pivot.js"></script>
<script type="text/javascript" src="/web/static/src/js/view_graph.js"></script>
<script type="text/javascript" src="/web/static/src/js/view_tree.js"></script>
<script type="text/javascript" src="/base/static/src/js/apps.js"></script>
-1
View File
@@ -1 +0,0 @@
import controllers
-24
View File
@@ -1,24 +0,0 @@
{
'name': 'Graph Views',
'category': 'Hidden',
'description': """
Graph Views for Web Client.
===========================
* Parse a <graph> view but allows changing dynamically the presentation
* Graph Types: pie, lines, areas, bars, radar
* Stacked/Not Stacked for areas and bars
* Legends: top, inside (top/left), hidden
* Features: download as PNG or CSV, browse data grid, switch orientation
* Unlimited "Group By" levels (not stacked), two cross level analysis (stacked)
""",
'version': '3.0',
'depends': ['web'],
'data' : [
'views/web_graph.xml',
],
'qweb' : [
'static/src/xml/*.xml',
],
'auto_install': True
}
-1
View File
@@ -1 +0,0 @@
import main
-183
View File
@@ -1,183 +0,0 @@
========================================
OpenERP BI View (a.k.a. Graph View)
========================================
Outline
'''''''
* BI in Odoo
* Adding a Graph view
* Graph view parameters
* Fields: measures and dimensions
* Graph view architecture
BI in Odoo
''''''''''
The graph view gives a way to look at your data and to visualize it in various ways. Currently, it supports four main modes:
* **pivot**: it is probably the most important mode. It is a multidimensional table that you can configure to display any possible cube for your data.
* **bar**: displays a bar chart
* **pie**: displays a pie chart
* **line**: displays a line chart
The basic idea is that you can work in pivot table mode to select the desired dimensions, use the search bar to select appropriate filters, and switch to various chart modes when your data is ready.
**Note**: the technical name for the graph view is *web_graph*.
Fields: measures and dimensions
'''''''''''''''''''''''''''''''
To do its work, the graph view understands two kind of fields:
* **measure**: a measure is a field that can be aggregated (right now, the only aggregation method is the sum). Every field of type *integer* or *float* (except the *id* field) can be used as a measure.
* **dimension**: A dimension is a field that can be grouped. That means pretty much every non numeric fields.
When loading, the graph view reads the list of fields from the model. The measures are then obtained from that list. The dimensions are right now obtained from the *Group By* filters category defined in the search bar, but in a later release, the dimensions will be every groupable fields in the model.
**Note**: it is important to note that the fields value are obtained with the *read_group* method in the ORM. It means that it directly reads from the database, and can not evaluate non-stored functional fields. If you want to use functional fields as measure or dimension, make sure to store them in the database (with the *stored=true* attribute)
Adding a Graph View
'''''''''''''''''''
In general, the process to add a graph view is:
1. register a graph view in a xml file. For example, this code registers a graph view for the model *project.task*. The *graph* tag is where the graph view default parameters are defined. These parameters will be explained in the next section.
.. code-block:: xml
<record id="view_project_task_graph" model="ir.ui.view">
<field name="name">project.task.graph</field>
<field name="model">project.task</field>
<field name="arch" type="xml">
<graph string="Project Tasks" type="bar">
<field name="project_id" type="row"/>
<field name="planned_hours" type="measure"/>
</graph>
</field>
</record>
2. Add the graph view to an action (of course, if there is no action yet, an action has to be created as well). In this example, the *graph* value in the view_mode field is where the web client will see that a graph view as to be created when the action *action_view_task* is triggered.
.. code-block:: xml
<record id="action_view_task" model="ir.actions.act_window">
...
<field name="view_mode">kanban,tree,form,calendar,gantt,graph</field>
...
3. If necessary, force the correct view with its id. The way the client operates is quite simple: it will pick the lowest priority available view for a given model. If this behaviour is not what you need, you can force it with the *view_id* field:
.. code-block:: xml
<field name="view_id" ref="view_project_task_graph"/>
Graph view parameters
''''''''''''''''''''''
In *graph* tag:
---------------
* string: title of the graph
* stacked: if bar chart is stacked/not stacked (default=false)
* type: mode (pivot, bar, pie, line) (default=bar). This parameter determines the mode in which the graph view will be when it loads.
The *type* attribute:
---------------------
The *graph* tag can contain a number of *field* subtags. These fields should have a name attribute (corresponding to the name of a field in the corresponding model). The other main attribute is *type*. Here are its possible values:
* row : the field will be grouped by rows (dimension)
* col : the field will be grouped by cols (dimension)
* measure : the field will be aggregated
* if no type, measure by default
The order is important: for example if two fields are grouped by row, then the first one that appears in the xml description will be the first one used to group, and the second will be used as a way to define sub groups.
Date/datetime
-------------
Dates and datetimes are always a little tricky. There is a special syntax for grouping them by intervals. Most of the time, the interval can be specified as a suffix:
* field_date:day,
* field_date:week,
* field_date:month (default)
* field_date:quarter,
* field_date:year
For example,
.. code-block:: xml
<filter string="Week" context="{'group_by':'date_followup:week'}" help="Week"/>
But to describe a graph view in xml, this would fail the xml validation ("date_followup:week" is not a valid field). In that case, the graph view can be described with an "interval" attribute. For example,
.. code-block:: xml
<graph string="Leads Analysis" type="pivot" stacked="True">
<field name="date_deadline" interval="week" type="row"/>
<field name="stage_id" type="col"/>
<field name="planned_revenue" type="measure"/>
</graph>
Example:
--------
Here is an example of a graph view defined for the model *crm.lead.report*. It will open in pivot table mode. If it is switched to bar chart mode, the bars will be stacked. The data will be grouped according to the date_deadline field in rows, and the columns will be the various stages of an opportunity. Also, the *planned_revenue* field will be used as a measure.
.. code-block:: xml
<record id="..." model="ir.ui.view">
<field name="name">crm.opportunity.report.graph</field>
<field name="model">crm.lead.report</field>
<field name="arch" type="xml">
<graph string="Leads Analysis" type="pivot" stacked="True">
<field name="date_deadline" type="row"/>
<field name="stage_id" type="col"/>
<field name="planned_revenue" type="measure"/>
</graph>
</field>
</record>
**Note**: the old graph view syntax still works (for example, operator="+"), but it is a good idea to use the new syntax whenever possible.
Graph view architecture
'''''''''''''''''''''''
Overview
--------
The general design of the graph view is quite simple. It is basically a javascript addon, so it lives in the client. When it needs data from the model, it makes an async request to the server (only read_group calls), and displays the result as soon as it gets it.
So, it means that the aggregation is done by the database (hence the constraint that functional fields need to be stored).
Also, note that it is basically *lazy*: it only request the data that it needs. For example, if you drill down in a pivot table, it will only request the data corresponding to the subgroups.
Graph view
----------
The graph view (addon *web_graph*) is actually made out of three parts:
* **pivot table**: this is the part that keeps the data in memory and takes care of calling the ORM with ajax calls.
* **graph widget**: this is a normal Odoo widget that takes care of displaying the data (the graph view is actually managed by a large widget) and interacting with the user
* **graph view**: its task is to interact with the web client. So, basically, it only needs to instantiate a graph widget, and communicating both ways with the search view and the widget.
Because of that design, it is possible (for example, in a client action) to display only a widget without the graph view. The widget has the full power of a normal graph view.
Cross-model BI
--------------
Due to its design, it is not possible to display a graph view for more than one model at a time. A graph view is tied to one and only one model.
However, a workaround is to create a new model that contains all the necessary data. That model can fetch its data from a postgres view (so, it can view, but not edit the data). It means that you can define any desired field from any table. However, be careful because doing so bypass the security checks from the ORM.
Right now, most reporting views work that way, by defining custom views.
-195
View File
@@ -1,195 +0,0 @@
# Arabic translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Arabic <ar@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "الرسم البياني"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Bulgarian translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Bulgarian <bg@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Диаграма"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Bengali translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Bengali <bn@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "লেখচিত্র"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Bosnian translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Bosnian <bs@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Graf"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Catalan translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Catalan <ca@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Czech translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Czech <cs@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Graf"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Danish translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Danish <da@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Graf"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-199
View File
@@ -1,199 +0,0 @@
# German translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-21 07:12+0000\n"
"Last-Translator: Ferdinand <Unknown>\n"
"Language-Team: German <de@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr "Balkendiagramm"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr "Tag"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr "Alle aufklappen"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr "Daten exportieren"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Diagramm"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr "Heat Map"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr "Heat Map (Spalten)"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr "Heat Map (Zeilen)"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr "Liniendiagramm"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr "Werte"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr "Monat"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
"Keine Daten für diese Graphik vorhanden. Fügen Sie einige Datensätze hinzu, "
"oder \n"
" definieren Sie zumindest eine Masseinheit und löschen "
"Sie alle Filter inder Suchzeile."
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr "Es liegen keine Daten zur Anzeige vor"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr "Tortendiagramm"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr "Anzahl"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr "Quartal"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr "Daten erneut laden"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr "Achsen vertauschen"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr "Tabellenmodus"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr "Gesamt"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr "Undefiniert"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr "Woche"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr "Jahr"
-195
View File
@@ -1,195 +0,0 @@
# Greek translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Greek <el@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Γράφημα"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# English (Australia) translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English (Australia) <en_AU@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Graph"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-198
View File
@@ -1,198 +0,0 @@
# English (United Kingdom) translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-09-02 15:09+0000\n"
"Last-Translator: Anthony Harrington <untaintableangel@ubuntu.com>\n"
"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr "Bar Chart"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr "Day"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr "Expand All"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr "Export Data"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Graph"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr "Heat Map"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr "Heat Map (columns)"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr "Heat Map (rows)"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr "Line Chart"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr "Measures"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr "Month"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr "No data to display."
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr "Pie Chart"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr "Quantity"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr "Quarter"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr "Reload Data"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr "Swap Axis"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr "Table Mode"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr "Total"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr "Undefined"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr "Week"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr "Year"
-200
View File
@@ -1,200 +0,0 @@
# Spanish translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-15 07:26+0000\n"
"Last-Translator: Pedro Manuel Baeza <pedro.baeza@gmail.com>\n"
"Language-Team: Spanish <es@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr "Gráfico de barras"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr "Día"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr "Expandir todo"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr "Exportar datos"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Gráfico"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr "Mapa crítico"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr "Mapa crítico (columnas)"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr "Mapa crítico (filas)"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr "Gráfico de líneas"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr "Medidas"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr "Mes"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
"No hay datos disponibles para este gráfico. Pruebe a añadir algunos "
"registros\n"
"o asegúrese que hay al menos una medida y no hay filtros activos en la "
"barra\n"
"de búsqueda."
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr "Sin datos que mostrar."
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr "Gráfico de tarta"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr "Cantidad"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr "Trimestre"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr "Recargar datos"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr "Intercambiar ejes"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr "Modo de tabla"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr "Total"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr "Indefinido"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr "Semana"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr "Año"
-195
View File
@@ -1,195 +0,0 @@
# Spanish (Argentina) translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Spanish (Argentina) <es_AR@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Gráfico"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Spanish (Chile) translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Spanish (Chile) <es_CL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Gráfico"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Spanish (Costa Rica) translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Spanish (Costa Rica) <es_CR@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Gráfico"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Spanish (Dominican Republic) translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Spanish (Dominican Republic) <es_DO@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Gráfico"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Spanish (Ecuador) translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Spanish (Ecuador) <es_EC@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Gráfico"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Spanish (Mexico) translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Spanish (Mexico) <es_MX@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Gráfico"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Estonian translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Estonian <et@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Graafik"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Persian translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Persian <fa@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "گراف"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Finnish translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Finnish <fi@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Kuvaaja"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# French translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: French <fr@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Graphique"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# French (Canada) translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: French (Canada) <fr_CA@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Galician translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Galician <gl@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Gráfico"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Gujarati translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Gujarati <gu@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "આલેખ"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Hebrew translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Hebrew <he@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Croatian translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Croatian <hr@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Dijagram"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-199
View File
@@ -1,199 +0,0 @@
# Hungarian translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-09-04 09:15+0000\n"
"Last-Translator: krnkris <Unknown>\n"
"Language-Team: Hungarian <hu@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr "Oszlopdiagram"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr "Nap"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr "Összes kibontása"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr "Adatok exportálása"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Grafikon"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr "Tűzvonal térkép"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr "Tűzvonal térkép (oszlopok)"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr "Tűzvonal térkép (sorok)"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr "Vonaldiagram"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr "Mérések"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr "Hónap"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
"Nincs adat ehhez a grafikonhoz. Próbáljon hozzáadna egy pár jegyzetet, vagy "
"győződjön\n"
" meg, hogy legalább egy méret van és nincs aktív szűrő a "
"keresés sávban."
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr "Nincs megjeleníthatő adat."
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr "Torta(szelet) diagram"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr "Mennyiség"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr "Negyed"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr "Adat újratöltése"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr "Tengely csere"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr "Asztal mód"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr "Összesen"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr "Nincs meghatározva"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr "Hét"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr "Év"
-195
View File
@@ -1,195 +0,0 @@
# Italian translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Italian <it@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Grafico"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Japanese translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Japanese <ja@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "グラフ"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Georgian translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Georgian <ka@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "გრაფიკი"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Korean translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Korean <ko@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "그래프"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Lithuanian translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Lithuanian <lt@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Diagrama"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Macedonian translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Macedonian <mk@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "График"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Mongolian translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Mongolian <mn@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "График"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Norwegian Bokmal translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Norwegian Bokmal <nb@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Diagram"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-199
View File
@@ -1,199 +0,0 @@
# Dutch translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-09-17 08:32+0000\n"
"Last-Translator: Erwin van der Ploeg (BAS Solutions) <Unknown>\n"
"Language-Team: Dutch <nl@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr "Staafdiagram"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr "Dag"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr "Alles uitvouwen"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr "Gegevens exporteren"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Grafiek"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr "Heat map"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr "Heat map (kolommen)"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr "Heat map (rijen)"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr "Lijndiagram"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr "Eenheden"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr "Maand"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
"Geen gegevens aanwezig voor deze grafiek. Probeer om wat records toe te "
"voegen, of controleer\n"
" dat er minstens een meting is en geen filter actief is "
"in de zoekbalk."
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr "Geen gegevens om weer te geven."
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr "Taartdiagram"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr "Hoeveelheid"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr "Kwartaal"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr "Herlaad gegevens"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr "Verwissel assen."
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr "Tabel modus"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr "Totaal"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr "Niet gedefinieerd"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr "Week"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr "Jaar"
-195
View File
@@ -1,195 +0,0 @@
# Dutch (Belgium) translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Dutch (Belgium) <nl_BE@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Grafiek"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Polish translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-19 11:43+0000\n"
"Last-Translator: Grzegorz Grzelak (OpenGLOBE.pl) <grzegorz@openglobe.pl>\n"
"Language-Team: Polish <pl@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr "Wykres słupkowy"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr "Dzień"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr "Rozwiń wszystkie"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr "Eksport danych"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Wykres"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr "Wykres liniowy"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr "Miary"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr "Miesiąc"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr "Brak danych do wyświetlenia."
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr "Wykres kołowy"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr "Ilość"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr "Kwartał"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr "Odśwież dane"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr "Zamień osie"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr "Tryb tabelowy"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr "Suma"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr "Niezdefiniowane"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr "Tydzień"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr "Rok"
-200
View File
@@ -1,200 +0,0 @@
# Portuguese translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-09-16 13:44+0000\n"
"Last-Translator: Ricardo Opencloud - Portugal "
"<ricardo.nbs.martins@opencloud.pro>\n"
"Language-Team: Portuguese <pt@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr "Gráfico de Barras"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr "Dia"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr "Expandir Tudo"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr "Exportar Dados"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Gráfico"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr "Gráfico Termal"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr "Gráfico Termal"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr "Gráfico Termal"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr "Gráfico de Linhas"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr "Medidas"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr "Mês"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
"Não há dados disponíveis para este gráfico. Tente adicionar alguns "
"registros, ou certifique-se \n"
"                     que há pelo menos uma medida e sem filtro ativos na "
"barra de pesquisa."
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr "Sem dados a mostrar"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr "Gráfico Circular"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr "Quantidade"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr "Trimestre"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr "Recarregar Dados"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr "Trocar Eixos"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr "Modo de Tabela"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr "Total"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr "Não definido"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr "Semana"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr "Ano"
-199
View File
@@ -1,199 +0,0 @@
# Brazilian Portuguese translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-18 18:11+0000\n"
"Last-Translator: Fábio Martinelli - http://zupy.com.br "
"<webmaster@zupy.com.br>\n"
"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr "Gráfico de Barras"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr "Dia"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr "Expandir tudo"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr "Exportar Dados"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Gráfico"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr "Mapa de Calor"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr "Mapa de Calor (colunas)"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr "Mapa de Calor (linhas)"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr "Gráfico de linha"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr "Medidas"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr "Mês"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
"Não há dados disponíveis para este gráfico. Tente incluir alguns registros, "
"ou certifique-se que há pelo menos uma medida e não tenha filtro na barra de "
"pesquisa."
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr "Nenhum dado para exibir."
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr "Gráfico de Pizza"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr "Quantidade"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr "Trimestre"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr "Recarregar dados"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr "Trocar o eixo"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr "Modo tabela"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr "Total"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr "Indefinido"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr "Semana"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr "Ano"
-198
View File
@@ -1,198 +0,0 @@
# Romanian translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-10-13 16:32+0000\n"
"Last-Translator: Dorin <dhongu@gmail.com>\n"
"Language-Team: Romanian <ro@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-10-15 20:33+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr "Grafic bare"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr "Zi"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr "Extinde tot"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr "Exportă datele"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Grafic"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr "Harta fierbinte"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr "Harta fierbinte (coloane)"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr "Harta fierbinte (rânduri)"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr "Grafic liniar"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr "Indicatori"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr "Luna"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
"Nu sunt date disponibile pentru acest grafic. Încercați să adaugați câteva "
"înregistrări, sau asigurați-vă că există cel putin un indicativ și ca nu "
"sunt filtre active în bara de căutare."
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr "Nu sunt date de afișat."
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr "Grafic tip pie"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr "Cantitate"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr "Trimestru"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr "Reîncărcare date"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr "Schimbă axele"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr "Modtabel"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr "Total"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr "Nedefinit(ă)"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr "Săptămâna"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr "Anul"
-195
View File
@@ -1,195 +0,0 @@
# Russian translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Russian <ru@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "График"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Slovenian translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Slovenian <sl@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Graf"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Albanian translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Albanian <sq@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Serbian Latin translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Serbian Latin <sr@latin@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Grafikon"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Swedish translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Swedish <sv@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Diagram"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Thai translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-14 16:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Thai <th@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "กราฟ"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-199
View File
@@ -1,199 +0,0 @@
# Turkish translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-10-03 17:15+0000\n"
"Last-Translator: Ayhan KIZILTAN <Unknown>\n"
"Language-Team: Turkish <tr@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-10-04 06:51+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr "Çubuk Grafiği"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr "Gün"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr "Tümünü Genişlet"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr "Veri Dışaaktar"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "Grafik"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr "Sıcaklık Haritası"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr "sıcaklık Haritası (sütunlar)"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr "Sıcaklık Haritası (satırlar)"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr "Çizgi Grafik"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr "Ölçüler"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr "Ay"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr ""
"Bu grafik için veri yok. Biraz kayıt eklemeye çalışın yada enazından bir "
"ölçü\n"
" olduğundan ve arama çubuğunda etkin bir süzgeç "
"olmadığından emin olun."
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr "gösterilecek veri yok."
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr "Pasta Grafiği"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr "Miktar"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr "Çeyrek"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr "Veriyi Yeniden yükle"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr "Eksenleri deüiştirin."
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr "Tablo Modu"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr "Toplam"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr "Tanımlanmamış"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr "Hafta"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr "Yıl"
-192
View File
@@ -1,192 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * web_graph
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-09-23 16:28+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid "No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter in the search bar."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr ""
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr ""
-195
View File
@@ -1,195 +0,0 @@
# Chinese (Simplified) translation for openerp-web
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2014-09-23 16:28+0000\n"
"PO-Revision-Date: 2014-08-20 02:35+0000\n"
"Last-Translator: Wei \"oldrev\" Li <oldrev@gmail.com>\n"
"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-09-24 10:07+0000\n"
"X-Generator: Launchpad (build 17196)\n"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:11
#, python-format
msgid "Bar Chart"
msgstr "柱状图"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:70
#, python-format
msgid "Day"
msgstr "日"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:38
#, python-format
msgid "Expand All"
msgstr "全部展开"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:44
#, python-format
msgid "Export Data"
msgstr "导出数据"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_view.js:16
#, python-format
msgid "Graph"
msgstr "图表"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:23
#, python-format
msgid "Heat Map"
msgstr "热力图"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:29
#, python-format
msgid "Heat Map (columns)"
msgstr "热力图(按列)"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:26
#, python-format
msgid "Heat Map (rows)"
msgstr "热力图(按行)"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:14
#, python-format
msgid "Line Chart"
msgstr "线状图"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:49
#, python-format
msgid "Measures"
msgstr "测量"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:72
#, python-format
msgid "Month"
msgstr "月"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:93
#, python-format
msgid ""
"No data available for this graph. Try to add some records, or make sure\n"
" that there is at least one measure and no active filter "
"in the search bar."
msgstr "此图表无数据可供显示。请试着添加一些记录或者确保至少有一个计量值并且搜索栏里没有激活的过滤器。"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:92
#, python-format
msgid "No data to display."
msgstr "无数据可供显示"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:17
#, python-format
msgid "Pie Chart"
msgstr "饼图"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:59
#: code:addons/web_graph/static/src/js/pivot_table.js:20
#, python-format
msgid "Quantity"
msgstr "数量"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:73
#, python-format
msgid "Quarter"
msgstr "季"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:41
#, python-format
msgid "Reload Data"
msgstr "重载数据"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:35
#, python-format
msgid "Swap Axis"
msgstr "交换轴线"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:8
#, python-format
msgid "Table Mode"
msgstr "表格模式"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:474
#: code:addons/web_graph/static/src/js/graph_widget.js:707
#: code:addons/web_graph/static/src/js/graph_widget.js:708
#: code:addons/web_graph/static/src/js/pivot_table.js:335
#, python-format
msgid "Total"
msgstr "总计"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/js/graph_widget.js:615
#: code:addons/web_graph/static/src/js/graph_widget.js:723
#: code:addons/web_graph/static/src/js/graph_widget.js:732
#: code:addons/web_graph/static/src/js/graph_widget.js:736
#: code:addons/web_graph/static/src/js/graph_widget.js:741
#: code:addons/web_graph/static/src/js/graph_widget.js:746
#: code:addons/web_graph/static/src/js/graph_widget.js:749
#: code:addons/web_graph/static/src/js/graph_widget.js:794
#: code:addons/web_graph/static/src/js/graph_widget.js:823
#: code:addons/web_graph/static/src/js/pivot_table.js:433
#, python-format
msgid "Undefined"
msgstr "未定义"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:71
#, python-format
msgid "Week"
msgstr "周"
#. module: web_graph
#. openerp-web
#: code:addons/web_graph/static/src/xml/web_graph.xml:74
#, python-format
msgid "Year"
msgstr "年"
-165
View File
@@ -1,165 +0,0 @@
/*
This is a hack for IE9 ...
Attrs : width and height are not take in consideration
*/
.openerp svg:not(:root) {
overflow: visible;
}
.graph_pivot_mode {
position:initial;
}
.graph_chart_mode {
position:relative;
}
.graph_main_content td {
font-size: 12px;
margin: 45px;
border-collapse: collapse;
vertical-align: middle;
border-bottom: 1px solid #ccc;
padding: 6px 8px;
text-align: right;
color: black;
}
.graph_main_content td:first-child {
background-color: rgb(240, 238, 238);
}
.graph_main_content table {
margin-top: 10px;
}
.graph_measure_selection .oe_selected {
padding-left: 0;
}
.graph_measure_selection .oe_selected:before {
content: "\f00c";
width: 20px;
display: inline-block;
font-family: FontAwesome;
}
.graph_measure_selection li {
margin-left: 5px;
}
.graph_main_content th {
font-size: 13px;
font-weight: normal;
padding: 10px 8px;
vertical-align: top;
color: black;
}
.graph_main_content tbody td{
border: 1px solid #b8b8b8;
}
.graph_main_content tbody {
border-top: 1px solid black;
}
.graph_main_content thead {
background-color: rgb(240, 238, 238);
border: 1px solid #b8b8b8;
}
.graph_main_content thead th {
border-left: 1px solid #b8b8b8;
}
div.graph_widget {
padding:10px;
}
.oe_dashboard div.graph_widget {
padding:0;
}
td.graph_border {
text-align: left;
white-space: nowrap;
}
.graph_main_content table:not(.heatmap) tr:hover td:not(:first-child)
{
background-color: rgb(245, 245, 245);
}
span.field-selection {
display: none;
padding: 0;
}
.web_graph_click:hover {
cursor: pointer;
}
.graph_widget .dropdown-menu {
font-size: 13px;
padding: 4px 0;
background: #e8e8e8 !important;
border: 1px solid rgba(0, 0, 0, 0.15);
font-color: !important black;
text-shadow: none;
background-color: #e8e8e8;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
}
.graph_widget .dropdown-menu li a, .graph_widget .dropdown-menu li a:hover, .graph_widget .dropdown-menu li a:focus {
color: black;
text-decoration: none;
}
th.measure_row {
color: black;
font-size: 12px;
padding:0px 5px 0px 5px ;
margin:0;
}
.graph-dropdown-submenu {
position: relative;
}
.graph-dropdown-submenu>.dropdown-menu {
top: 0;
left: 100%;
margin-top: -6px;
margin-left: -1px;
-webkit-border-radius: 0 6px 6px 6px;
-moz-border-radius: 0 6px 6px;
border-radius: 0 6px 6px 6px;
}
.graph-dropdown-submenu:hover>.dropdown-menu {
display: block;
}
.graph-dropdown-submenu>a:after {
display: block;
content: " ";
float: right;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
border-width: 5px 0 5px 5px;
border-left-color: #ccc;
margin-top: 5px;
margin-right: -10px;
}
.graph-dropdown-submenu:hover>a:after {
border-left-color: #fff;
}
@@ -1,297 +0,0 @@
/*---------------------------------------------------------
* OpenERP web_graph
*---------------------------------------------------------*/
/* jshint undef: false */
openerp.web_graph = function (instance) {
'use strict';
var _lt = instance.web._lt;
var _t = instance.web._t;
instance.web.views.add('graph', 'instance.web_graph.GraphView');
instance.web_graph.GraphView = instance.web.View.extend({
display_name: _lt('Graph'),
view_type: 'graph',
// ----------------------------------------------------------------------
// Init stuff
// ----------------------------------------------------------------------
init: function(parent, dataset, view_id, options) {
var self = this;
this._super(parent, dataset, view_id, options);
this.dataset = dataset;
this.model = new instance.web.Model(dataset.model, {group_by_no_leaf: true});
this.search_view = parent.searchview;
this.col_search_field = {
get_context: function() { return { col_group_by: self.graph_widget.get_col_groupbys(),
measures: self.graph_widget.get_current_measures()};},
get_domain: function () {},
get_groupby: function () {},
};
this.$buttons = options.$buttons;
this.view_loaded = $.Deferred();
},
start: function() {
var $buttons = instance.web.qweb.render("graph-view-buttons");
this.$buttons.html($buttons);
return this._super();
},
view_loading: function (fields_view_get) {
var self = this,
arch = fields_view_get.arch;
this.widget_config = {
title: arch.attrs.string,
stacked : (arch.attrs.stacked === 'True'),
mode: arch.attrs.type || 'bar',
measures: [],
row_groupby: [],
col_groupby: [],
graph_view: this,
$buttons: this.$buttons
};
_.each(arch.children, function (field) {
var field_name = field.attrs.name;
if (_.has(field.attrs, 'interval')) {
field_name = field.attrs.name + ':' + field.attrs.interval;
}
//noinspection FallThroughInSwitchStatementJS
switch (field.attrs.type) {
case 'measure':
self.widget_config.measures.push(field_name);
break;
case 'col':
self.widget_config.col_groupby.push(field_name);
break;
default:
if ('operator' in field.attrs) {
self.widget_config.measures.push(field_name);
break;
}
case 'row':
self.widget_config.row_groupby.push(field_name);
}
});
if (self.widget_config.measures.length === 0) {
self.widget_config.measures.push('__count');
}
this.view_loaded.resolve();
},
do_search: function (domain, context, group_by) {
var self = this;
this.view_loaded.done(function () {
self._do_search(domain, context, group_by);
});
},
_do_search: function (domain, context, group_by) {
if (this.ignore_do_search) {
this.ignore_do_search = false;
return;
}
var self = this,
groupbys = this.get_groupbys_from_searchview(),
col_group_by = groupbys.col_group_by,
measures = groupbys.measures;
if (!this.graph_widget) {
this.widget_config.context = _.clone(context);
this.widget_config.context.group_by_no_leaf = true;
if (group_by.length) {
this.widget_config.row_groupby = group_by;
}
if (col_group_by.length) {
this.widget_config.col_groupby = col_group_by;
}
if (measures.length) {
this.widget_config.measures = measures;
}
this.graph_widget = new openerp.web_graph.Graph(this, this.model, domain, this.widget_config);
this.graph_widget.appendTo(this.$el).done(function () {
});
return;
}
this.graph_widget.set(domain, group_by, col_group_by, measures);
},
get_groupbys_from_searchview: function () {
var result = { group_by: [], col_group_by: [], measures: []},
searchdata = this.search_view.build_search_data();
_.each(searchdata.groupbys, function (data) {
data = (_.isString(data)) ? py.eval(data) : data;
result.group_by = result.group_by.concat(data.group_by);
if (data.col_group_by) {
result.col_group_by = result.col_group_by.concat(data.col_group_by);
}
if (data.measures) {
result.measures = result.measures.concat(data.measures);
}
});
if (result.col_group_by.length) {
return result;
}
_.each(searchdata.contexts, function (context) {
if (context.col_group_by) {
result.col_group_by = result.col_group_by.concat(context.col_group_by);
}
if (context.measures) {
result.measures = result.measures.concat(context.measures);
}
});
return result;
},
do_show: function () {
this.do_push_state({});
return this._super();
},
// ----------------------------------------------------------------------
// Search view integration
// ----------------------------------------------------------------------
// add groupby to the search view
register_groupby: function(row_groupby, col_groupby) {
var query = this.search_view.query,
groupbys = this.get_groupbys_from_searchview(),
search_row_groupby = groupbys.group_by,
search_col_groupby = groupbys.col_group_by,
search_measures = groupbys.measures,
row_gb_changed = !_.isEqual(_.pluck(row_groupby, 'field'), search_row_groupby),
col_gb_changed = !_.isEqual(_.pluck(col_groupby, 'field'), search_col_groupby),
measures_gb_changed = !_.isEqual(_.pluck(col_groupby, 'field'), search_col_groupby);
if (!_.has(this.search_view, '_s_groupby')) { return; }
if (!row_gb_changed && !col_gb_changed) {
return;
}
var custom_groups = this.get_custom_filter_groupbys();
row_groupby = row_groupby.slice(custom_groups.groupby.length);
col_groupby = col_groupby.slice(custom_groups.col_groupby.length);
if (row_gb_changed && col_gb_changed) {
// when two changes to the search view will be done, the method do_search
// will be called twice, once with the correct groupby and incorrect col_groupby,
// and once with correct informations. This flag is necessary to prevent the
// incorrect informations to propagate and trigger useless queries
this.ignore_do_search = true;
}
if (row_gb_changed) {
// add row groupbys
var row_facet = this.make_row_groupby_facets(row_groupby),
row_search_facet = query.findWhere({category:'GroupBy'});
if (row_search_facet) {
row_search_facet.values.reset(row_facet.values, {focus_input:false});
} else {
if (row_groupby.length) {
query.add(row_facet);
}
}
}
if (col_gb_changed) {
// add col groupbys
var col_facet = this.make_col_groupby_facets(col_groupby),
col_search_facet = query.findWhere({category:'ColGroupBy'});
if (col_search_facet) {
col_search_facet.values.reset(col_facet.values, {focus_input:false});
} else {
if (col_groupby.length) {
query.add(col_facet);
}
}
}
},
make_row_groupby_facets: function(groupbys) {
return {
category:'GroupBy',
values: this.make_groupby_values(groupbys, 'group_by'),
icon:'fa fa-bars',
field: this.search_view._s_groupby
};
},
make_col_groupby_facets: function(groupbys) {
return {
category:'ColGroupBy',
values: this.make_groupby_values(groupbys, 'col_group_by'),
icon:'fa fa-level-down',
field: this.col_search_field
};
},
make_groupby_values: function (groupbys, category) {
return _.map(groupbys, function (groupby) {
var context = {};
context[category] = groupby.field;
var value;
if (category === 'group_by' && groupby.type !== 'date' && groupby.type !== 'datetime') {
value = groupby.filter || {attrs: {domain: [], context: context}};
} else {
value = {attrs: {domain: [], context: context}};
}
return {
label: groupby.string,
value: value
};
});
},
get_custom_filter_groupbys: function () {
var gb = [],
col_gb = [];
var facet = this.search_view.query.at(0);
if (facet) {
if (facet.get('category') !== 'GroupBy' && facet.get('category') !== 'ColGroupBy') {
gb = get_groupby(facet);
col_gb = get_col_groupby(facet);
}
}
return {
groupby: gb,
col_groupby: col_gb,
}
}
});
function get_groupby(facet) {
var field = facet.get('field'),
result = [];
if ('get_groupby' in field) {
result = instance.web.pyeval.sync_eval_domains_and_contexts({
group_by_seq: field.get_groupby(facet)
}).group_by;
}
return result;
}
function get_col_groupby(facet) {
var field = facet.get('field'),
result = [];
if ('get_context' in field) {
result = instance.web.pyeval.sync_eval_domains_and_contexts({
contexts: field.get_context(facet)
}).context.col_group_by || [];
}
return result;
}
};
@@ -1,875 +0,0 @@
/* jshint undef: false */
(function () {
'use strict';
var QWeb = openerp.web.qweb;
var _lt = openerp.web._lt;
var _t = openerp.web._t;
nv.dev = false; // sets nvd3 library in production mode
openerp.web_graph.Graph = openerp.web.Widget.extend({
template: 'GraphWidget',
// ----------------------------------------------------------------------
// Init stuff
// ----------------------------------------------------------------------
init: function(parent, model, domain, options) {
this._super(parent);
this.model = model;
this.domain = domain;
this.mode = options.mode || 'pivot'; // pivot, bar, pie, line
this.visible_ui = options.visible_ui || true;
this.bar_ui = options.bar_ui || 'group';
this.graph_view = options.graph_view || null;
this.pivot_options = options;
this.title = options.title || 'Data';
this.$buttons = options.$buttons;
},
start: function() {
var self = this;
this.table = $('<table>');
this.$('.graph_main_content').append(this.table);
this.$buttons.find('.oe-pivot-mode').click(function () {
self.set_mode.bind(self)('pivot');
});
this.$measure_list = this.$buttons.find('.oe-measure-list');
this.$buttons.find('.oe-bar-mode').click(function () {
self.set_mode.bind(self)('bar');
});
this.$buttons.find('.oe-line-mode').click(function () {
self.set_mode.bind(self)('line');
});
this.$buttons.find('.oe-pie-mode').click(function () {
self.set_mode.bind(self)('pie');
});
this.$buttons.find('.fa-expand').click(this.swap_axis.bind(this));
this.$buttons.find('.fa-arrows-alt').click(function () {
self.pivot.expand_all().then(self.proxy('display_data'));
});
this.$buttons.find('.fa-download').click(this.export_xls.bind(this));
var indexes = {'pivot': 0, 'bar': 1, 'line': 2, 'chart': 3};
this.$('.graph_mode_selection label').eq(indexes[this.mode]).addClass('selected');
if (this.mode !== 'pivot') {
this.$('.graph_heatmap label').addClass('disabled');
this.$('.graph_main_content').addClass('graph_chart_mode');
} else {
this.$('.graph_main_content').addClass('graph_pivot_mode');
}
// get search view
var parent = this.getParent();
while (!(parent instanceof openerp.web.ViewManager)) {
parent = parent.getParent();
}
this.search_view = parent.searchview;
openerp.session.rpc('/web_graph/check_xlwt').then(function (result) {
self.$('.graph_options_selection label').last().toggle(result);
});
this.$buttons.find('button').tooltip();
return this.model.call('fields_get', {
context: this.graph_view.dataset.context
}).then(function (f) {
self.fields = f;
self.fields.__count = {field:'__count', type: 'integer', string:_t('Count')};
self.groupby_fields = self.get_groupby_fields();
self.measure_list = self.get_measures();
self.add_measures_to_options();
self.pivot_options.row_groupby = self.create_field_values(self.pivot_options.row_groupby || []);
self.pivot_options.col_groupby = self.create_field_values(self.pivot_options.col_groupby || []);
self.pivot_options.measures = self.create_field_values(self.pivot_options.measures || [{field:'__count', type: 'integer', string:'Count'}]);
self.pivot = new openerp.web_graph.PivotTable(self.model, self.domain, self.fields, self.pivot_options);
self.pivot.update_data().then(function () {
self.display_data();
if (self.graph_view) {
self.graph_view.register_groupby(self.pivot.rows.groupby, self.pivot.cols.groupby);
}
});
openerp.web.bus.on('click', self, function (event) {
if (self.dropdown) {
self.$row_clicked = $(event.target).closest('tr');
self.dropdown.remove();
self.dropdown = null;
}
});
self.put_measure_checkmarks();
});
},
get_groupby_fields: function () {
var search_fields = this.get_search_fields(),
search_field_names = _.pluck(search_fields, 'field'),
other_fields = [],
groupable_types = ['many2one', 'char', 'boolean', 'selection', 'date', 'datetime'];
_.each(this.fields, function (val, key) {
if (!_.contains(search_field_names, key) &&
_.contains(groupable_types, val.type) &&
val.store === true) {
other_fields.push({
field: key,
string: val.string,
});
}
});
return search_fields.concat(other_fields);
},
// this method gets the fields that appear in the search view, under the
// 'Groupby' heading
get_search_fields: function () {
// this method is disabled for now. This requires extensive changes because the
// search view works quite differently: But the graph view is going to be split
// soon in pivot view and graph view. The pivot view will then properly handle
// groupbys.
return [];
var self = this;
var groupbygroups = _(this.search_view.drawer.inputs).select(function (g) {
return g instanceof openerp.web.search.GroupbyGroup;
});
var filters = _.flatten(_.pluck(groupbygroups, 'filters'), true),
groupbys = _.flatten(_.map(filters, function (filter) {
var groupby = py.eval(filter.attrs.context).group_by;
if (!(groupby instanceof Array)) { groupby = [groupby]; }
return _.map(groupby, function(g) {
return {field: g, filter: filter};
});
}));
return _.uniq(_.map(groupbys, function (groupby) {
var field = groupby.field,
filter = groupby.filter,
raw_field = field.split(':')[0],
string = (field === raw_field) ? filter.attrs.string : self.fields[raw_field].string;
filter = (field === raw_field) ? filter : undefined;
return { field: raw_field, string: string, filter: filter };
}), false, function (filter) {return filter.field;});
},
// Extracts the integer/float fields which are not 'id'
get_measures: function() {
return _.compact(_.map(this.fields, function (f, id) {
if (((f.type === 'integer') || (f.type === 'float')) &&
(id !== 'id') &&
(f.store !== false)) {
return {field:id, type: f.type, string: f.string};
}
}));
},
add_measures_to_options: function() {
this.$measure_list.append(
_.map(this.measure_list, function (measure) {
return $('<li>').append($('<a>').attr('data-choice', measure.field)
.attr('href', '#')
.text(measure.string));
}));
this.$measure_list.find('li').click(this.measure_selection.bind(this));
},
// ----------------------------------------------------------------------
// Configuration methods
// ----------------------------------------------------------------------
set: function (domain, row_groupby, col_groupby, measures_groupby) {
if (!this.pivot) {
this.pivot_options.domain = domain;
this.pivot_options.row_groupby = row_groupby;
this.pivot_options.col_groupby = col_groupby;
this.pivot_options.measures_groupby = measures_groupby;
return;
}
var row_gbs = this.create_field_values(row_groupby),
col_gbs = this.create_field_values(col_groupby),
measures_gbs = this.create_field_values(measures_groupby),
dom_changed = !_.isEqual(this.pivot.domain, domain),
row_gb_changed = !_.isEqual(row_gbs, this.pivot.rows.groupby),
col_gb_changed = !_.isEqual(col_gbs, this.pivot.cols.groupby),
measures_gb_changed = !_.isEqual(measures_gbs, this.pivot.measures),
row_reduced = is_strict_beginning_of(row_gbs, this.pivot.rows.groupby),
col_reduced = is_strict_beginning_of(col_gbs, this.pivot.cols.groupby),
measures_reduced = is_strict_beginning_of(measures_gbs, this.pivot.measures);
if (!dom_changed && row_reduced && !col_gb_changed && !measures_gb_changed) {
this.pivot.fold_with_depth(this.pivot.rows, row_gbs.length);
this.display_data();
return;
}
if (!dom_changed && col_reduced && !row_gb_changed && !measures_gb_changed) {
this.pivot.fold_with_depth(this.pivot.cols, col_gbs.length);
this.display_data();
return;
}
if (!dom_changed && col_reduced && row_reduced && !measures_gb_changed) {
this.pivot.fold_with_depth(this.pivot.rows, row_gbs.length);
this.pivot.fold_with_depth(this.pivot.cols, col_gbs.length);
this.display_data();
return;
}
if (dom_changed || row_gb_changed || col_gb_changed || measures_gb_changed) {
this.pivot.set(domain, row_gbs, col_gbs, measures_gbs).then(this.proxy('display_data'));
}
if (measures_gb_changed) {
this.put_measure_checkmarks();
}
},
set_mode: function (mode) {
this.mode = mode;
if (mode === 'pivot') {
this.$('.graph_heatmap label').removeClass('disabled');
this.$('.graph_main_content').removeClass('graph_chart_mode').addClass('graph_pivot_mode');
} else {
this.$('.graph_heatmap label').addClass('disabled');
this.$('.graph_main_content').removeClass('graph_pivot_mode').addClass('graph_chart_mode');
}
this.display_data();
},
create_field_value: function (f) {
var field = (_.contains(f, ':')) ? f.split(':')[0] : f,
groupby_field = _.findWhere(this.groupby_fields, {field:field}),
string = groupby_field ? groupby_field.string : this.fields[field].string,
result = {field: f, string: string, type: this.fields[field].type };
if (groupby_field) {
result.filter = groupby_field.filter;
}
return result;
},
create_field_values: function (field_ids) {
return _.map(field_ids, this.proxy('create_field_value'));
},
get_col_groupbys: function () {
return _.pluck(this.pivot.cols.groupby, 'field');
},
get_current_measures: function () {
return _.pluck(this.pivot.measures, 'field');
},
// ----------------------------------------------------------------------
// UI code
// ----------------------------------------------------------------------
events: {
'click .graph_mode_selection label' : 'mode_selection',
'click .graph_measure_selection li' : 'measure_selection',
'click .graph_options_selection label' : 'option_selection',
'click .graph_heatmap label' : 'heatmap_mode_selection',
'click .web_graph_click' : 'header_cell_clicked',
'click a.field-selection' : 'field_selection',
},
mode_selection: function (event) {
event.preventDefault();
var mode = event.currentTarget.getAttribute('data-mode');
this.set_mode(mode);
},
measure_selection: function (event) {
event.preventDefault();
event.stopPropagation();
var measure_field = event.target.getAttribute('data-choice');
var measure = {
field: measure_field,
type: this.fields[measure_field].type,
string: this.fields[measure_field].string
};
this.pivot.toggle_measure(measure).then(this.proxy('display_data'));
this.put_measure_checkmarks();
},
put_measure_checkmarks: function () {
var self = this,
measures_li = this.$measure_list.find('li');
measures_li.removeClass('selected');
_.each(this.measure_list, function (measure, index) {
if (_.findWhere(self.pivot.measures, measure)) {
measures_li.eq(index).addClass('selected');
}
});
},
option_selection: function (event) {
event.preventDefault();
switch (event.currentTarget.getAttribute('data-choice')) {
case 'swap_axis':
this.swap_axis();
break;
case 'expand_all':
this.pivot.expand_all().then(this.proxy('display_data'));
break;
case 'update_values':
this.pivot.update_data().then(this.proxy('display_data'));
break;
case 'export_data':
this.export_xls();
break;
}
},
header_cell_clicked: function (event) {
event.preventDefault();
event.stopPropagation();
var id = event.target.getAttribute('data-id'),
header = this.pivot.get_header(id),
self = this;
if (header.expanded) {
if (header.root === this.pivot.rows) {
this.fold_row(header, event);
} else {
this.fold_col(header);
}
return;
}
if (header.path.length < header.root.groupby.length) {
this.$row_clicked = $(event.target).closest('tr');
this.expand(id);
return;
}
if (!this.groupby_fields.length) {
return;
}
var fields = _.map(this.groupby_fields, function (field) {
return {id: field.field, value: field.string, type:self.fields[field.field.split(':')[0]].type};
});
if (this.dropdown) {
this.dropdown.remove();
}
this.dropdown = $(QWeb.render('field_selection', {fields:fields, header_id:id}));
$(event.target).after(this.dropdown);
this.dropdown.css({
position:'absolute',
left:event.originalEvent.layerX,
});
this.$('.field-selection').next('.dropdown-menu').first().toggle();
},
field_selection: function (event) {
var id = event.target.getAttribute('data-id'),
field_id = event.target.getAttribute('data-field-id'),
interval,
groupby = this.create_field_value(field_id);
event.preventDefault();
if (this.fields[field_id].type === 'date' || this.fields[field_id].type === 'datetime') {
interval = event.target.getAttribute('data-interval');
groupby.field = groupby.field + ':' + interval;
}
this.expand(id, groupby);
},
// ----------------------------------------------------------------------
// Pivot Table integration
// ----------------------------------------------------------------------
expand: function (header_id, groupby) {
var self = this,
header = this.pivot.get_header(header_id),
update_groupby = !!groupby;
groupby = groupby || header.root.groupby[header.path.length];
this.pivot.expand(header_id, groupby).then(function () {
if (header.root === self.pivot.rows) {
// expanding rows can be done by only inserting in the dom
// console.log(event.target);
var rows = self.build_rows(header.children);
var doc_fragment = $(document.createDocumentFragment());
rows.map(function (row) {
doc_fragment.append(self.draw_row(row, 0));
});
self.$row_clicked.after(doc_fragment);
} else {
// expanding cols will redraw the full table
self.display_data();
}
if (update_groupby && self.graph_view) {
self.graph_view.register_groupby(self.pivot.rows.groupby, self.pivot.cols.groupby);
}
});
},
fold_row: function (header, event) {
var rows_before = this.pivot.rows.headers.length,
update_groupby = this.pivot.fold(header),
rows_after = this.pivot.rows.headers.length,
rows_removed = rows_before - rows_after;
if (rows_after === 1) {
// probably faster to redraw the unique row instead of removing everything
this.display_data();
} else {
var $row = $(event.target).parent().parent();
$row.nextAll().slice(0,rows_removed).remove();
}
if (update_groupby && this.graph_view) {
this.graph_view.register_groupby(this.pivot.rows.groupby, this.pivot.cols.groupby);
}
},
fold_col: function (header) {
var update_groupby = this.pivot.fold(header);
this.display_data();
if (update_groupby && this.graph_view) {
this.graph_view.register_groupby(this.pivot.rows.groupby, this.pivot.cols.groupby);
}
},
swap_axis: function () {
this.pivot.swap_axis();
this.display_data();
this.graph_view.register_groupby(this.pivot.rows.groupby, this.pivot.cols.groupby);
},
// ----------------------------------------------------------------------
// Convert Pivot data structure into table structure :
// compute rows, cols, colors, cell width, cell height, ...
// ----------------------------------------------------------------------
build_table: function(raw) {
return {
headers: this.build_headers(),
measure_row: this.build_measure_row(),
rows: this.build_rows(this.pivot.rows.headers,raw),
nbr_measures: this.pivot.measures.length,
title: this.title,
};
},
build_headers: function () {
var pivot = this.pivot,
nbr_measures = pivot.measures.length,
height = _.max(_.map(pivot.cols.headers, function(g) {return g.path.length;})) + 1,
rows = [];
_.each(pivot.cols.headers, function (col) {
var cell_width = nbr_measures * (col.expanded ? pivot.get_ancestor_leaves(col).length : 1),
cell_height = col.expanded ? 1 : height - col.path.length,
cell = {width: cell_width, height: cell_height, title: col.title, id: col.id, expanded: col.expanded};
if (rows[col.path.length]) {
rows[col.path.length].push(cell);
} else {
rows[col.path.length] = [cell];
}
});
if (pivot.get_cols_leaves().length > 1) {
rows[0].push({width: nbr_measures, height: height, title: ' ', id: pivot.main_col().id });
}
if (pivot.cols.headers.length === 1) {
rows = [[{width: nbr_measures, height: 1, title: _t('Total'), id: pivot.main_col().id, expanded: false}]];
}
return rows;
},
build_measure_row: function () {
var nbr_leaves = this.pivot.get_cols_leaves().length,
nbr_cols = nbr_leaves + ((nbr_leaves > 1) ? 1 : 0),
result = [],
add_total = this.pivot.get_cols_leaves().length > 1,
i, m;
for (i = 0; i < nbr_cols; i++) {
for (m = 0; m < this.pivot.measures.length; m++) {
result.push({
text:this.pivot.measures[m].string,
is_bold: add_total && (i === nbr_cols - 1)
});
}
}
return result;
},
make_cell: function (row, col, value, index, raw) {
var formatted_value = raw && !_.isUndefined(value) ? value : openerp.web.format_value(value, {type:this.pivot.measures[index].type}),
cell = {value:formatted_value};
return cell;
},
build_rows: function (headers, raw) {
var self = this,
pivot = this.pivot,
m, i, j, k, cell, row;
var rows = [];
var cells, pivot_cells, values;
var nbr_of_rows = headers.length;
var col_headers = pivot.get_cols_leaves();
for (i = 0; i < nbr_of_rows; i++) {
row = headers[i];
cells = [];
pivot_cells = [];
for (j = 0; j < pivot.cells.length; j++) {
if (pivot.cells[j].x == row.id || pivot.cells[j].y == row.id) {
pivot_cells.push(pivot.cells[j]);
}
}
for (j = 0; j < col_headers.length; j++) {
values = undefined;
for (k = 0; k < pivot_cells.length; k++) {
if (pivot_cells[k].x == col_headers[j].id || pivot_cells[k].y == col_headers[j].id) {
values = pivot_cells[k].values;
break;
}
}
if (!values) { values = new Array(pivot.measures.length);}
for (m = 0; m < pivot.measures.length; m++) {
cells.push(self.make_cell(row,col_headers[j],values[m], m, raw));
}
}
if (col_headers.length > 1) {
var totals = pivot.get_total(row);
for (m = 0; m < pivot.measures.length; m++) {
cell = self.make_cell(row, pivot.cols.headers[0], totals[m], m, raw);
cell.is_bold = 'true';
cells.push(cell);
}
}
rows.push({
id: row.id,
indent: row.path.length,
title: row.title,
expanded: row.expanded,
cells: cells,
});
}
return rows;
},
// ----------------------------------------------------------------------
// Main display method
// ----------------------------------------------------------------------
display_data: function () {
var scroll = $(window).scrollTop();
this.$('.graph_main_content svg').remove();
this.$('.graph_main_content div').remove();
this.table.empty();
this.$('.graph_options_selection label').last().toggleClass('disabled', this.pivot.no_data);
this.width = this.$el.width();
this.height = Math.min(Math.max(document.documentElement.clientHeight - 116 - 60, 250), Math.round(0.8*this.$el.width()));
this.$('.graph_header').toggle(this.visible_ui);
if (this.pivot.no_data) {
this.$('.graph_main_content').append($(QWeb.render('graph_no_data')));
} else {
if (this.mode === 'pivot') {
this.draw_table();
$(window).scrollTop(scroll);
} else {
this.$('.graph_main_content').append($('<div><svg>'));
this.svg = this.$('.graph_main_content svg')[0];
this[this.mode]();
}
}
},
// ----------------------------------------------------------------------
// Drawing the table
// ----------------------------------------------------------------------
draw_table: function () {
var custom_gbs = this.graph_view.get_custom_filter_groupbys(),
frozen_rows = custom_gbs.groupby.length,
frozen_cols = custom_gbs.col_groupby.length;
var table = this.build_table();
var doc_fragment = $(document.createDocumentFragment());
this.draw_headers(table.headers, doc_fragment, frozen_cols);
this.draw_measure_row(table.measure_row, doc_fragment);
this.draw_rows(table.rows, doc_fragment, frozen_rows);
this.table.append(doc_fragment);
},
make_header_cell: function (header, frozen) {
var cell = (_.has(header, 'cells') ? $('<td>') : $('<th>'))
.addClass('graph_border')
.attr('rowspan', header.height)
.attr('colspan', header.width);
var $content = $('<span>').attr('href','#')
.text(' ' + (header.title || _t('Undefined')))
.css('margin-left', header.indent*30 + 'px')
.attr('data-id', header.id);
if (_.has(header, 'expanded')) {
if (('indent' in header) && header.indent >= frozen) {
$content.addClass(header.expanded ? 'fa fa-minus-square' : 'fa fa-plus-square');
$content.addClass('web_graph_click');
}
if (!('indent' in header) && header.lvl >= frozen) {
$content.addClass(header.expanded ? 'fa fa-minus-square' : 'fa fa-plus-square');
$content.addClass('web_graph_click');
}
} else {
$content.css('font-weight', 'bold');
}
return cell.append($content);
},
draw_headers: function (headers, doc_fragment, frozen_cols) {
var make_cell = this.make_header_cell,
$empty_cell = $('<th>').attr('rowspan', headers.length),
$thead = $('<thead>');
_.each(headers, function (row, lvl) {
var $row = $('<tr>');
_.each(row, function (header) {
header.lvl = lvl;
$row.append(make_cell(header, frozen_cols));
});
$thead.append($row);
});
$thead.children(':first').prepend($empty_cell);
doc_fragment.append($thead);
this.$thead = $thead;
},
draw_measure_row: function (measure_row) {
var $row = $('<tr>').append('<th>');
_.each(measure_row, function (cell) {
var $cell = $('<th>').addClass('measure_row').text(cell.text);
if (cell.is_bold) {$cell.css('font-weight', 'bold');}
$row.append($cell);
});
this.$thead.append($row);
},
draw_row: function (row, frozen_rows) {
var $row = $('<tr>')
.attr('data-indent', row.indent)
.append(this.make_header_cell(row, frozen_rows));
var cells_length = row.cells.length;
var cells_list = [];
var cell, hcell;
for (var j = 0; j < cells_length; j++) {
cell = row.cells[j];
hcell = '<td';
if (cell.is_bold || cell.color) {
hcell += ' style="';
if (cell.is_bold) hcell += 'font-weight: bold;';
if (cell.color) hcell += 'background-color:' + $.Color(255, cell.color, cell.color) + ';';
hcell += '"';
}
hcell += '>' + cell.value + '</td>';
cells_list[j] = hcell;
}
return $row.append(cells_list.join(''));
},
draw_rows: function (rows, doc_fragment, frozen_rows) {
var rows_length = rows.length,
$tbody = $('<tbody>');
doc_fragment.append($tbody);
for (var i = 0; i < rows_length; i++) {
$tbody.append(this.draw_row(rows[i], frozen_rows));
}
},
// ----------------------------------------------------------------------
// Drawing charts code
// ----------------------------------------------------------------------
bar: function () {
var self = this,
dim_x = this.pivot.rows.groupby.length,
dim_y = this.pivot.cols.groupby.length,
show_controls = (this.width > 400 && this.height > 300 && dim_x + dim_y >=2),
data;
// No groupby
if ((dim_x === 0) && (dim_y === 0)) {
data = [{key: _t('Total'), values:[{
x: _t('Total'),
y: this.pivot.get_total()[0],
}]}];
// Only column groupbys
} else if ((dim_x === 0) && (dim_y >= 1)){
data = _.map(this.pivot.get_cols_with_depth(1), function (header) {
return {
key: header.title,
values: [{x:header.title, y: self.pivot.get_total(header)[0]}]
};
});
// Just 1 row groupby
} else if ((dim_x === 1) && (dim_y === 0)) {
data = _.map(this.pivot.main_row().children, function (pt) {
var value = self.pivot.get_total(pt)[0],
title = (pt.title !== undefined) ? pt.title : _t('Undefined');
return {x: title, y: value};
});
data = [{key: self.pivot.measures[0].string, values:data}];
// 1 row groupby and some col groupbys
} else if ((dim_x === 1) && (dim_y >= 1)) {
data = _.map(this.pivot.get_cols_with_depth(1), function (colhdr) {
var values = _.map(self.pivot.get_rows_with_depth(1), function (header) {
return {
x: header.title || _t('Undefined'),
y: self.pivot.get_values(header.id, colhdr.id)[0] || 0
};
});
return {key: colhdr.title || _t('Undefined'), values: values};
});
// At least two row groupby
} else {
var keys = _.uniq(_.map(this.pivot.get_rows_with_depth(2), function (hdr) {
return hdr.title || _t('Undefined');
}));
data = _.map(keys, function (key) {
var values = _.map(self.pivot.get_rows_with_depth(1), function (hdr) {
var subhdr = _.find(hdr.children, function (child) {
return ((child.title === key) || ((child.title === undefined) && (key === _t('Undefined'))));
});
return {
x: hdr.title || _t('Undefined'),
y: (subhdr) ? self.pivot.get_total(subhdr)[0] : 0
};
});
return {key:key, values: values};
});
}
nv.addGraph(function () {
var chart = nv.models.multiBarChart()
.reduceXTicks(false)
.stacked(self.bar_ui === 'stack')
.showControls(show_controls);
if (self.width / data[0].values.length < 80) {
chart.rotateLabels(-15);
chart.reduceXTicks(true);
chart.margin({bottom:40});
}
d3.select(self.svg)
.datum(data)
.attr('width', self.width)
.attr('height', self.height)
.call(chart);
nv.utils.windowResize(chart.update);
return chart;
});
},
line: function () {
var self = this,
dim_x = this.pivot.rows.groupby.length,
dim_y = this.pivot.cols.groupby.length;
var rows = this.pivot.get_rows_with_depth(dim_x),
labels = _.pluck(rows, 'title');
var data = _.map(this.pivot.get_cols_leaves(), function (col) {
var values = _.map(rows, function (row, index) {
return {x: index, y: self.pivot.get_values(row.id,col.id)[0] || 0};
});
var title = _.map(col.path, function (p) {
return p || _t('Undefined');
}).join('/');
if (dim_y === 0) {
title = self.pivot.measures[0].string;
}
return {values: values, key: title};
});
nv.addGraph(function () {
var chart = nv.models.lineChart()
.x(function (d,u) { return u; });
chart.xAxis.tickFormat(function (d,u) {return labels[d];});
d3.select(self.svg)
.attr('width', self.width)
.attr('height', self.height)
.datum(data)
.call(chart);
return chart;
});
},
pie: function () {
var self = this,
dim_x = this.pivot.rows.groupby.length;
var data = _.map(this.pivot.get_rows_leaves(), function (row) {
var title = _.map(row.path, function (p) {
return p || _t('Undefined');
}).join('/');
if (dim_x === 0) {
title = self.measure_label;
}
return {x: title, y: self.pivot.get_total(row)[0]};
});
nv.addGraph(function () {
var chart = nv.models.pieChart()
.width(self.width)
.height(self.height)
.color(d3.scale.category10().range());
d3.select(self.svg)
.datum(data)
.transition().duration(1200)
.attr('width', self.width)
.attr('height', self.height)
.call(chart);
nv.utils.windowResize(chart.update);
return chart;
});
},
// ----------------------------------------------------------------------
// Controller stuff...
// ----------------------------------------------------------------------
export_xls: function() {
var c = openerp.webclient.crashmanager;
openerp.web.blockUI();
this.session.get_file({
url: '/web_graph/export_xls',
data: {data: JSON.stringify(this.build_table(true))},
complete: openerp.web.unblockUI,
error: c.rpc_error.bind(c)
});
},
});
// Utility function: returns true if the beginning of array2 is array1 and
// if array1 is not array2
function is_strict_beginning_of (array1, array2) {
if (array1.length >= array2.length) { return false; }
var result = true;
for (var i = 0; i < array1.length; i++) {
if (!_.isEqual(array1[i], array2[i])) { return false;}
}
return result;
}
})();
@@ -1,468 +0,0 @@
/* jshint undef: false */
(function () {
'use strict';
var _lt = openerp.web._lt;
var _t = openerp.web._t;
// PivotTable requires a call to update_data after initialization
openerp.web_graph.PivotTable = openerp.web.Class.extend({
init: function (model, domain, fields, options) {
this.cells = [];
this.domain = domain;
this.context = options.context;
this.no_data = true;
this.updating = false;
this.model = model;
this.fields = fields;
this.fields.__count = {type: 'integer', string:_t('Count')};
this.measures = options.measures || [];
this.rows = { groupby: options.row_groupby, headers: null };
this.cols = { groupby: options.col_groupby, headers: null };
},
// ----------------------------------------------------------------------
// Configuration methods
// ----------------------------------------------------------------------
// this.measures: list of measure [measure], measure = {field: _, string: _, type: _}
// this.rows.groupby, this.cols.groupby : list of groupbys used for describing rows (...),
// a groupby is also {field:_, string:_, type:_}
// If its type is date/datetime, field can have the corresponding interval in its description,
// for example 'create_date:week'.
set_measures: function (measures) {
this.measures = measures;
return this.update_data();
},
toggle_measure: function (measure) {
var current_measure = _.findWhere(this.measures, measure);
if (current_measure) { // remove current_measure
var index = this.measures.indexOf(current_measure);
this.measures = _.without(this.measures, current_measure);
if (this.measures.length === 0) {
this.no_data = true;
} else {
_.each(this.cells, function (cell) {
cell.values.splice(index, 1);
});
}
return $.Deferred().resolve();
} else { // add a new measure
this.measures.push(measure);
return this.update_data();
}
},
set: function (domain, row_groupby, col_groupby, measures_groupby) {
var self = this;
if (this.updating) {
return this.updating.then(function () {
self.updating = false;
return self.set(domain, row_groupby, col_groupby, measures_groupby);
});
}
var row_gb_changed = !_.isEqual(row_groupby, this.rows.groupby),
col_gb_changed = !_.isEqual(col_groupby, this.cols.groupby),
measures_gb_changed = !_.isEqual(measures_groupby, this.measures);
this.domain = domain;
this.rows.groupby = row_groupby;
this.cols.groupby = col_groupby;
if (measures_groupby.length) { this.measures = measures_groupby; }
if (row_gb_changed) { this.rows.headers = null; }
if (col_gb_changed) { this.cols.headers = null; }
if (measures_gb_changed && measures_groupby.length) { this.set_measures(measures_groupby); }
return this.update_data();
},
// ----------------------------------------------------------------------
// Cells manipulation methods
// ----------------------------------------------------------------------
// cells are objects {x:_, y:_, values:_} where x < y and values is an array
// of values (one for each measure). The condition x < y might look
// unnecessary, but it makes the rest of the code simpler: headers
// don't krow if they are rows or cols, they just know their id, so
// it is useful that a call get_values(id1, id2) is the same as get_values(id2, id1)
add_cell : function (id1, id2, values) {
this.cells.push({x: Math.min(id1, id2), y: Math.max(id1, id2), values: values});
},
get_values: function (id1, id2, default_values) {
var cells = this.cells,
x = Math.min(id1, id2),
y = Math.max(id1, id2);
for (var i = 0; i < cells.length; i++) {
if (cells[i].x == x && cells[i].y == y) {
return cells[i].values;
}
}
return (default_values || new Array(this.measures.length));
},
// ----------------------------------------------------------------------
// Headers/Rows/Cols manipulation methods
// ----------------------------------------------------------------------
// this.rows.headers, this.cols.headers = [header] describe the tree structure
// of rows/cols. Headers are objects
// {
// id:_, (unique id obviously)
// path: [...], (array of all parents title, with its own title at the end)
// title:_, (name of the row/col)
// children:[_], (subrows or sub cols of this row/col)
// domain:_, (domain of data in this row/col)
// root:_ (ref to this.rows or this.cols corresponding to the header)
// expanded:_ (boolean, true if it has been expanded)
// }
is_row: function (id) {
return !!_.findWhere(this.rows.headers, {id:id});
},
is_col: function (id) {
return !!_.findWhere(this.cols.headers, {id:id});
},
get_header: function (id) {
return _.findWhere(this.rows.headers.concat(this.cols.headers), {id:id});
},
_get_headers_with_depth: function (headers, depth) {
return _.filter(headers, function (header) {
return header.path.length === depth;
});
},
// return all columns with a path length of 'depth'
get_cols_with_depth: function (depth) {
return this._get_headers_with_depth(this.cols.headers, depth);
},
// return all rows with a path length of 'depth'
get_rows_with_depth: function (depth) {
return this._get_headers_with_depth(this.rows.headers, depth);
},
get_ancestor_leaves: function (header) {
return _.where(this.get_ancestors_and_self(header), {expanded:false});
},
// return all non expanded rows
get_rows_leaves: function () {
return _.where(this.rows.headers, {expanded:false});
},
// return all non expanded cols
get_cols_leaves: function () {
return _.where(this.cols.headers, {expanded:false});
},
get_ancestors: function (header) {
var self = this;
if (!header.children) return [];
return [].concat.apply([], _.map(header.children, function (c) {
return self.get_ancestors_and_self(c);
}));
},
get_ancestors_and_self: function (header) {
var self = this;
return [].concat.apply([header], _.map(header.children, function (c) {
return self.get_ancestors_and_self(c);
}));
},
get_total: function (header) {
return (header) ? this.get_values(header.id, this.get_other_root(header).headers[0].id)
: this.get_values(this.rows.headers[0].id, this.cols.headers[0].id);
},
get_other_root: function (header) {
return (header.root === this.rows) ? this.cols : this.rows;
},
main_row: function () { return this.rows.headers[0]; },
main_col: function () { return this.cols.headers[0]; },
// ----------------------------------------------------------------------
// Table manipulation methods : fold/expand/swap
// ----------------------------------------------------------------------
// return true if the folding changed the groupbys, false if not
fold: function (header) {
var ancestors = this.get_ancestors(header),
removed_ids = _.pluck(ancestors, 'id');
header.root.headers = _.difference(header.root.headers, ancestors);
header.children = [];
header.expanded = false;
this.cells = _.reject(this.cells, function (cell) {
return (_.contains(removed_ids, cell.x) || _.contains(removed_ids, cell.y));
});
var new_groupby_length = _.max(_.pluck(_.pluck(header.root.headers, 'path'), 'length'));
if (new_groupby_length < header.root.groupby.length) {
header.root.groupby.splice(new_groupby_length);
return true;
}
return false;
},
fold_with_depth: function (root, depth) {
var self = this;
_.each(this._get_headers_with_depth(root.headers, depth), function (header) {
self.fold(header);
});
},
expand_all: function () {
this.rows.headers = null;
this.cols.headers = null;
return this.update_data();
},
expand: function (header_id, groupby) {
var self = this,
header = this.get_header(header_id),
other_root = this.get_other_root(header),
this_gb = [groupby.field],
other_gbs = _.pluck(other_root.groupby, 'field');
if (header.path.length === header.root.groupby.length) {
header.root.groupby.push(groupby);
}
return this.perform_requests(this_gb, other_gbs, header.domain).then(function () {
var data = Array.prototype.slice.call(arguments).slice(other_gbs.length + 1);
_.each(data, function (data_pt) {
self.make_headers_and_cell(
data_pt, header.root.headers, other_root.headers, 1, header.path, true);
});
header.expanded = true;
header.children.forEach(function (child) {
child.expanded = false;
child.root = header.root;
});
});
},
swap_axis: function () {
var temp = this.rows;
this.rows = this.cols;
this.cols = temp;
},
// ----------------------------------------------------------------------
// Data updating methods
// ----------------------------------------------------------------------
// update_data will try to preserve the expand/not expanded status of each
// column/row. If you want to expand all, then set this.cols.headers/this.rows.headers
// to null before calling update_data.
update_data: function () {
var self = this;
this.updating = this.perform_requests().then (function () {
var data = Array.prototype.slice.call(arguments);
self.no_data = !data[0].length;
if (self.no_data) {
return;
}
var row_headers = [],
col_headers = [];
self.cells = [];
var dim_col = self.cols.groupby.length,
i, j, index;
for (i = 0; i < self.rows.groupby.length + 1; i++) {
for (j = 0; j < dim_col + 1; j++) {
index = i*(dim_col + 1) + j;
self.make_headers_and_cell(data[index], row_headers, col_headers, i);
}
}
self.set_headers(row_headers, self.rows);
self.set_headers(col_headers, self.cols);
});
return this.updating;
},
make_headers_and_cell: function (data_pts, row_headers, col_headers, index, prefix, expand) {
var self = this;
data_pts.forEach(function (data_pt) {
var row_value = (prefix || []).concat(data_pt.attributes.value.slice(0,index));
var col_value = data_pt.attributes.value.slice(index);
if (expand && !_.find(col_headers, function (hdr) {return self.isEqual(col_value, hdr.path);})) {
return;
}
var row = self.find_or_create_header(row_headers, row_value, data_pt);
var col = self.find_or_create_header(col_headers, col_value, data_pt);
var cell_value = _.map(self.measures, function (m) {
return data_pt.attributes.aggregates[m.field];
});
self.cells.push({
x: Math.min(row.id, col.id),
y: Math.max(row.id, col.id),
values: cell_value
});
});
},
make_header: function (values) {
return _.extend({
children: [],
domain: this.domain,
expanded: undefined,
id: _.uniqueId(),
path: [],
root: undefined,
title: undefined
}, values || {});
},
find_or_create_header: function (headers, path, data_pt) {
var self = this;
var hdr = _.find(headers, function (header) {
return self.isEqual(path, header.path);
});
if (hdr) {
return hdr;
}
if (!path.length) {
hdr = this.make_header({title: _t('Total')});
headers.push(hdr);
return hdr;
}
hdr = this.make_header({
path:path,
domain:data_pt.model._domain,
title: _t(_.last(path))
});
var parent = _.find(headers, function (header) {
return self.isEqual(header.path, _.initial(path, 1));
});
var previous = parent.children.length ? _.last(parent.children) : parent;
headers.splice(headers.indexOf(previous) + 1, 0, hdr);
parent.children.push(hdr);
return hdr;
},
perform_requests: function (group1, group2, domain) {
var self = this,
requests = [],
row_gbs = _.pluck(this.rows.groupby, 'field'),
col_gbs = _.pluck(this.cols.groupby, 'field'),
field_list = row_gbs.concat(col_gbs, _.pluck(this.measures, 'field')),
fields = field_list.map(function (f) { return self.raw_field(f); });
group1 = group1 || row_gbs;
group2 = group2 || col_gbs;
var i,j, groupbys;
for (i = 0; i < group1.length + 1; i++) {
for (j = 0; j < group2.length + 1; j++) {
groupbys = group1.slice(0,i).concat(group2.slice(0,j));
requests.push(self.get_groups(groupbys, fields, domain || self.domain));
}
}
return $.when.apply(null, requests);
},
// set the 'expanded' status of new_headers more or less like root.headers, with root as root
set_headers: function(new_headers, root) {
var self = this;
if (root.headers) {
_.each(root.headers, function (header) {
var corresponding_header = _.find(new_headers, function (h) {
return self.isEqual(h.path, header.path);
});
if (corresponding_header && header.expanded) {
corresponding_header.expanded = true;
_.each(corresponding_header.children, function (c) {
c.expanded = false;
});
}
if (corresponding_header && (!header.expanded)) {
corresponding_header.expanded = false;
corresponding_header.children = [];
}
});
var updated_headers = _.filter(new_headers, function (header) {
return (header.expanded !== undefined);
});
_.each(updated_headers, function (header) {
header.root = root;
});
root.headers = updated_headers;
} else {
root.headers = new_headers;
_.each(root.headers, function (header) {
header.root = root;
header.expanded = (header.children.length > 0);
});
}
return new_headers;
},
get_groups: function (groupbys, fields, domain) {
var self = this;
return this.model.query(_.without(fields, '__count'))
.filter(domain)
.context(this.context)
.lazy(false)
.group_by(groupbys)
.then(function (groups) {
return groups.filter(function (group) {
return group.attributes.length > 0;
}).map(function (group) {
var attrs = group.attributes,
grouped_on = attrs.grouped_on instanceof Array ? attrs.grouped_on : [attrs.grouped_on],
raw_grouped_on = grouped_on.map(function (f) {
return self.raw_field(f);
});
if (grouped_on.length === 1) {
attrs.value = [attrs.value];
}
attrs.value = _.range(grouped_on.length).map(function (i) {
var grp = grouped_on[i],
field = self.fields[grp];
if (attrs.value[i] === false) {
return _t('Undefined');
} else if (attrs.value[i] instanceof Array) {
return attrs.value[i][1];
} else if (field && field.type === 'selection') {
var selected = _.where(field.selection, {0: attrs.value[i]})[0];
return selected ? selected[1] : attrs.value[i];
}
return attrs.value[i];
});
attrs.aggregates.__count = group.attributes.length;
attrs.grouped_on = raw_grouped_on;
return group;
});
});
},
// if field is a fieldname, returns field, if field is field_id:interval, retuns field_id
raw_field: function (field) {
return field.split(':')[0];
},
isEqual: function (path1, path2) {
if (path1.length !== path2.length) { return false; }
for (var i = 0; i < path1.length; i++) {
if (path1[i] !== path2[i]) {
return false;
}
}
return true;
},
});
})();
@@ -1,65 +0,0 @@
<templates>
<t t-name="graph-view-buttons">
<div class="btn-group btn-group-sm">
<button class="btn btn-default fa fa-table oe-pivot-mode" title="Pivot Table"></button>
<button class="btn btn-default fa fa-bar-chart-o oe-bar-mode" title="Bar Chart"></button>
<button class="btn btn-default fa fa-line-chart oe-line-mode" title="Line Chart"></button>
<button class="btn btn-default fa fa-pie-chart oe-pie-mode" title="Pie Chart"></button>
</div>
<div class="btn-group btn-group-sm">
<button class="btn btn-default fa fa-expand oe-pivot" title="Flip columns and rows"></button>
<button class="btn btn-default fa fa-arrows-alt oe-pivot" title="Expand"></button>
<button class="btn btn-default fa fa-download oe-pivot" title="Download Data"></button>
</div>
<div class="btn-group btn-group-sm">
<button class="btn btn-default dropdown-toggle" data-toggle="dropdown">
Measures <span class="caret"/>
</button>
<ul class="oe-measure-list dropdown-menu"/>
</div>
</t>
<div t-name="GraphWidget" class="graph_widget">
<div class="graph_main_content"></div>
</div>
<div t-name="field_selection" class="dropdown">
<span class="btn btn-default field-selection dropdown-toggle" data-toggle="dropdown"></span>
<ul class="dropdown-menu multi-level" role="menu">
<t t-foreach="fields" t-as="field">
<t t-if="(field.type === 'date') || (field.type === 'datetime')">
<li class="graph-dropdown-submenu">
<a class="field-selection" t-att-data-field-id="field.id" t-att-data-id="header_id" t-att-data-interval="'month'" href="#">
<t t-esc="field.value"/>
</a>
<ul class="dropdown-menu">
<li><a href="#" class="field-selection" t-att-data-field-id="field.id" t-att-data-id="header_id" t-att-data-interval="'day'">Day</a></li>
<li><a href="#" class="field-selection" t-att-data-field-id="field.id" t-att-data-id="header_id" t-att-data-interval="'week'">Week</a></li>
<li><a href="#" class="field-selection" t-att-data-field-id="field.id" t-att-data-id="header_id" t-att-data-interval="'month'">Month</a></li>
<li><a href="#" class="field-selection" t-att-data-field-id="field.id" t-att-data-id="header_id" t-att-data-interval="'quarter'">Quarter</a></li>
<li><a href="#" class="field-selection" t-att-data-field-id="field.id" t-att-data-id="header_id" t-att-data-interval="'year'">Year</a></li>
</ul>
</li>
</t>
<t t-if="(field.type !== 'date') &amp;&amp; (field.type !== 'datetime')">
<li>
<a class="field-selection" t-att-data-field-id="field.id" t-att-data-id="header_id" href="#">
<t t-esc="field.value"/>
</a>
</li>
</t>
</t>
</ul>
</div>
<div t-name="graph_no_data" class="oe_view_nocontent" >
<div class="oe_empty_custom_dashboard">
<p><b>No data to display.</b></p>
<p>
No data available for this graph. Try to add some records, or make sure
that there is at least one measure and no active filter in the search bar.
</p>
</div>
</div>
</templates>
-19
View File
@@ -1,19 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- vim:fdn=3:
-->
<openerp>
<data>
<template id="assets_backend" name="web_graph assets" inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<link rel="stylesheet" href="/web_graph/static/src/css/graph.css"/>
<link rel="stylesheet" href="/web_graph/static/src/css/nv.d3.css"/>
<script type="text/javascript" src="/web_graph/static/lib/nvd3/d3.v3.js"></script>
<script type="text/javascript" src="/web_graph/static/lib/nvd3/nv.d3.js"></script>
<script type="text/javascript" src="/web_graph/static/src/js/graph_view.js"></script>
<script type="text/javascript" src="/web_graph/static/src/js/pivot_table.js"></script>
<script type="text/javascript" src="/web_graph/static/src/js/graph_widget.js"></script>
</xpath>
</template>
</data>
</openerp>
+1
View File
@@ -367,6 +367,7 @@ VIEW_TYPES = [
('tree', 'Tree'),
('form', 'Form'),
('graph', 'Graph'),
('pivot', 'Pivot'),
('calendar', 'Calendar'),
('gantt', 'Gantt'),
('kanban', 'Kanban')]
+6
View File
@@ -674,6 +674,12 @@
<rng:define name="pivot">
<rng:element name="pivot">
<rng:optional><rng:attribute name="string" /></rng:optional>
<rng:optional>
<rng:attribute name="display_quantity"><rng:value>False</rng:value></rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="disable_linking"><rng:value>False</rng:value></rng:attribute>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="field"/>
</rng:zeroOrMore>
+4
View File
@@ -1426,6 +1426,10 @@ class BaseModel(object):
etree.SubElement(view, 'field', name=self._rec_name_fallback(cr, user, context))
return view
def _get_default_pivot_view(self, cr, user, context=None):
view = etree.Element('pivot', string=self._description)
return view
def _get_default_calendar_view(self, cr, user, context=None):
""" Generates a default calendar view by trying to infer
calendar fields from a number of pre-set attribute names