[FIX] web_kanban_sparkline, sales_team, stock: use char function field to transmit sparkline data; the data is now correctly dumped into json, and parsed in the widget.
This commit is contained in:
parent
81a305a018
commit
f0ef8ac446
|
@ -1,6 +1,9 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
import calendar
|
import calendar
|
||||||
from datetime import date
|
from datetime import date
|
||||||
from dateutil import relativedelta
|
from dateutil import relativedelta
|
||||||
|
import json
|
||||||
|
|
||||||
from openerp import tools
|
from openerp import tools
|
||||||
from openerp.osv import fields, osv
|
from openerp.osv import fields, osv
|
||||||
|
@ -30,8 +33,8 @@ class crm_case_section(osv.Model):
|
||||||
res[id] = dict()
|
res[id] = dict()
|
||||||
lead_domain = lead_pre_domain + [('section_id', '=', id)]
|
lead_domain = lead_pre_domain + [('section_id', '=', id)]
|
||||||
opp_domain = opp_pre_domain + [('section_id', '=', id)]
|
opp_domain = opp_pre_domain + [('section_id', '=', id)]
|
||||||
res[id]['monthly_open_leads'] = self.__get_bar_values(cr, uid, obj, lead_domain, ['create_date'], 'create_date_count', 'create_date', context=context)
|
res[id]['monthly_open_leads'] = json.dumps(self.__get_bar_values(cr, uid, obj, lead_domain, ['create_date'], 'create_date_count', 'create_date', context=context))
|
||||||
res[id]['monthly_planned_revenue'] = self.__get_bar_values(cr, uid, obj, opp_domain, ['planned_revenue', 'date_deadline'], 'planned_revenue', 'date_deadline', context=context)
|
res[id]['monthly_planned_revenue'] = json.dumps(self.__get_bar_values(cr, uid, obj, opp_domain, ['planned_revenue', 'date_deadline'], 'planned_revenue', 'date_deadline', context=context))
|
||||||
return res
|
return res
|
||||||
|
|
||||||
_columns = {
|
_columns = {
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
import calendar
|
import calendar
|
||||||
from datetime import date
|
from datetime import date
|
||||||
from dateutil import relativedelta
|
from dateutil import relativedelta
|
||||||
|
import json
|
||||||
|
|
||||||
from openerp import tools
|
from openerp import tools
|
||||||
from openerp.osv import fields, osv
|
from openerp.osv import fields, osv
|
||||||
|
@ -20,9 +21,9 @@ class crm_case_section(osv.osv):
|
||||||
for id in ids:
|
for id in ids:
|
||||||
res[id] = dict()
|
res[id] = dict()
|
||||||
created_domain = [('section_id', '=', id), ('state', '=', 'draft'), ('date_order', '>=', date_begin), ('date_order', '<=', date_end)]
|
created_domain = [('section_id', '=', id), ('state', '=', 'draft'), ('date_order', '>=', date_begin), ('date_order', '<=', date_end)]
|
||||||
res[id]['monthly_quoted'] = self.__get_bar_values(cr, uid, obj, created_domain, ['amount_total', 'date_order'], 'amount_total', 'date_order', context=context)
|
res[id]['monthly_quoted'] = json.dumps(self.__get_bar_values(cr, uid, obj, created_domain, ['amount_total', 'date_order'], 'amount_total', 'date_order', context=context))
|
||||||
validated_domain = [('section_id', '=', id), ('state', 'not in', ['draft', 'sent', 'cancel']), ('date_order', '>=', date_begin), ('date_order', '<=', date_end)]
|
validated_domain = [('section_id', '=', id), ('state', 'not in', ['draft', 'sent', 'cancel']), ('date_order', '>=', date_begin), ('date_order', '<=', date_end)]
|
||||||
res[id]['monthly_confirmed'] = self.__get_bar_values(cr, uid, obj, validated_domain, ['amount_total', 'date_order'], 'amount_total', 'date_order', context=context)
|
res[id]['monthly_confirmed'] = json.dumps(self.__get_bar_values(cr, uid, obj, validated_domain, ['amount_total', 'date_order'], 'amount_total', 'date_order', context=context))
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def _get_invoices_data(self, cr, uid, ids, field_name, arg, context=None):
|
def _get_invoices_data(self, cr, uid, ids, field_name, arg, context=None):
|
||||||
|
@ -33,7 +34,7 @@ class crm_case_section(osv.osv):
|
||||||
date_end = month_begin.replace(day=calendar.monthrange(month_begin.year, month_begin.month)[1]).strftime(tools.DEFAULT_SERVER_DATE_FORMAT)
|
date_end = month_begin.replace(day=calendar.monthrange(month_begin.year, month_begin.month)[1]).strftime(tools.DEFAULT_SERVER_DATE_FORMAT)
|
||||||
for id in ids:
|
for id in ids:
|
||||||
created_domain = [('section_id', '=', id), ('state', 'not in', ['draft', 'cancel']), ('date', '>=', date_begin), ('date', '<=', date_end)]
|
created_domain = [('section_id', '=', id), ('state', 'not in', ['draft', 'cancel']), ('date', '>=', date_begin), ('date', '<=', date_end)]
|
||||||
res[id] = self.__get_bar_values(cr, uid, obj, created_domain, ['price_total', 'date'], 'price_total', 'date', context=context)
|
res[id] = json.dumps(self.__get_bar_values(cr, uid, obj, created_domain, ['price_total', 'date'], 'price_total', 'date', context=context))
|
||||||
return res
|
return res
|
||||||
|
|
||||||
_columns = {
|
_columns = {
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
|
|
||||||
from datetime import date, datetime
|
from datetime import date, datetime
|
||||||
from dateutil import relativedelta
|
from dateutil import relativedelta
|
||||||
|
import json
|
||||||
import time
|
import time
|
||||||
|
|
||||||
from openerp.osv import fields, osv
|
from openerp.osv import fields, osv
|
||||||
|
@ -4100,7 +4100,7 @@ class stock_picking_type(osv.osv):
|
||||||
tristates.insert(0, {'tooltip': picking.name or '' + _(': Backorder exists'), 'value': 0})
|
tristates.insert(0, {'tooltip': picking.name or '' + _(': Backorder exists'), 'value': 0})
|
||||||
else:
|
else:
|
||||||
tristates.insert(0, {'tooltip': picking.name or '' + _(': OK'), 'value': 1})
|
tristates.insert(0, {'tooltip': picking.name or '' + _(': OK'), 'value': 1})
|
||||||
res[picking_type_id] = tristates
|
res[picking_type_id] = json.dumps(tristates)
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def _get_picking_count(self, cr, uid, ids, field_names, arg, context=None):
|
def _get_picking_count(self, cr, uid, ids, field_names, arg, context=None):
|
||||||
|
|
|
@ -38,6 +38,9 @@ instance.web_kanban.GaugeWidget = instance.web_kanban.AbstractField.extend({
|
||||||
var title = this.$node.html() || this.field.string;
|
var title = this.$node.html() || this.field.string;
|
||||||
// current gauge value
|
// current gauge value
|
||||||
var val = this.field.value;
|
var val = this.field.value;
|
||||||
|
if (_.isArray(JSON.parse(val))) {
|
||||||
|
val = JSON.parse(val);
|
||||||
|
}
|
||||||
var value = _.isArray(val) && val.length ? val[val.length-1]['value'] : val;
|
var value = _.isArray(val) && val.length ? val[val.length-1]['value'] : val;
|
||||||
// displayed value under gauge
|
// displayed value under gauge
|
||||||
var gauge_value = value;
|
var gauge_value = value;
|
||||||
|
|
|
@ -11,8 +11,9 @@ instance.web_kanban.SparklineBarWidget = instance.web_kanban.AbstractField.exten
|
||||||
var self = this;
|
var self = this;
|
||||||
var title = this.$node.html() || this.field.string;
|
var title = this.$node.html() || this.field.string;
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
var value = _.pluck(self.field.value, 'value');
|
var field_value = JSON.parse(self.field.value);
|
||||||
var tooltips = _.pluck(self.field.value, 'tooltip');
|
var value = _.pluck(field_value, 'value');
|
||||||
|
var tooltips = _.pluck(field_value, 'tooltip');
|
||||||
var suffix = self.options.tooltip_suffix || "";
|
var suffix = self.options.tooltip_suffix || "";
|
||||||
var tooltipFormat = self.options.type == 'tristate' && '{{offset:offset}}' + suffix || '{{offset:offset}} {{value:value}}' + suffix
|
var tooltipFormat = self.options.type == 'tristate' && '{{offset:offset}}' + suffix || '{{offset:offset}} {{value:value}}' + suffix
|
||||||
var sparkline_options = _.extend({
|
var sparkline_options = _.extend({
|
||||||
|
|
Loading…
Reference in New Issue