[FIX] web_kanban_sparkline, sales_team, stock: use char function field to transmit...
authorThibault Delavallée <tde@openerp.com>
Fri, 4 Jul 2014 12:36:21 +0000 (14:36 +0200)
committerThibault Delavallée <tde@openerp.com>
Fri, 4 Jul 2014 12:42:38 +0000 (14:42 +0200)
addons/crm/sales_team.py
addons/sale/sales_team.py
addons/stock/stock.py
addons/web_kanban_gauge/static/src/js/kanban_gauge.js
addons/web_kanban_sparkline/static/src/js/kanban_sparkline.js

index 8a1e9f9..cd75417 100644 (file)
@@ -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 = {
index 372fc0f..3d831ef 100644 (file)
@@ -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 = {
index acb228b..0aaa136 100644 (file)
@@ -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):
index fdae953..29a7772 100644 (file)
@@ -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;
index dd2f9ca..b8c7761 100644 (file)
@@ -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({