[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
|
||||
from datetime import date
|
||||
from dateutil import relativedelta
|
||||
import json
|
||||
|
||||
from openerp import tools
|
||||
from openerp.osv import fields, osv
|
||||
|
@ -30,8 +33,8 @@ class crm_case_section(osv.Model):
|
|||
res[id] = dict()
|
||||
lead_domain = lead_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_planned_revenue'] = self.__get_bar_values(cr, uid, obj, opp_domain, ['planned_revenue', 'date_deadline'], 'planned_revenue', 'date_deadline', 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'] = json.dumps(self.__get_bar_values(cr, uid, obj, opp_domain, ['planned_revenue', 'date_deadline'], 'planned_revenue', 'date_deadline', context=context))
|
||||
return res
|
||||
|
||||
_columns = {
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
import calendar
|
||||
from datetime import date
|
||||
from dateutil import relativedelta
|
||||
import json
|
||||
|
||||
from openerp import tools
|
||||
from openerp.osv import fields, osv
|
||||
|
@ -20,9 +21,9 @@ class crm_case_section(osv.osv):
|
|||
for id in ids:
|
||||
res[id] = dict()
|
||||
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)]
|
||||
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
|
||||
|
||||
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)
|
||||
for id in ids:
|
||||
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
|
||||
|
||||
_columns = {
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
from datetime import date, datetime
|
||||
from dateutil import relativedelta
|
||||
|
||||
import json
|
||||
import time
|
||||
|
||||
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})
|
||||
else:
|
||||
tristates.insert(0, {'tooltip': picking.name or '' + _(': OK'), 'value': 1})
|
||||
res[picking_type_id] = tristates
|
||||
res[picking_type_id] = json.dumps(tristates)
|
||||
return res
|
||||
|
||||
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;
|
||||
// current gauge 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;
|
||||
// displayed value under gauge
|
||||
var gauge_value = value;
|
||||
|
|
|
@ -11,8 +11,9 @@ instance.web_kanban.SparklineBarWidget = instance.web_kanban.AbstractField.exten
|
|||
var self = this;
|
||||
var title = this.$node.html() || this.field.string;
|
||||
setTimeout(function () {
|
||||
var value = _.pluck(self.field.value, 'value');
|
||||
var tooltips = _.pluck(self.field.value, 'tooltip');
|
||||
var field_value = JSON.parse(self.field.value);
|
||||
var value = _.pluck(field_value, 'value');
|
||||
var tooltips = _.pluck(field_value, 'tooltip');
|
||||
var suffix = self.options.tooltip_suffix || "";
|
||||
var tooltipFormat = self.options.type == 'tristate' && '{{offset:offset}}' + suffix || '{{offset:offset}} {{value:value}}' + suffix
|
||||
var sparkline_options = _.extend({
|
||||
|
|
Loading…
Reference in New Issue