From 635df4028a8cf9d5185e31d21df67daf609506b3 Mon Sep 17 00:00:00 2001 From: Martin Trigaux Date: Tue, 26 Mar 2013 16:45:53 +0100 Subject: [PATCH] [ADD] monetary field bzr revid: mat@openerp.com-20130326154553-t8cacle6s1oll4r9 --- addons/gamification/goal.py | 8 +++--- addons/gamification/goal_view.xml | 2 ++ addons/gamification/res_users.py | 11 ++++++-- .../static/src/js/gamification.js | 20 ++++++++++++++- .../static/src/xml/gamification.xml | 25 ++++++++++++++----- .../gamification_sale_crm/sale_crm_goals.xml | 6 ++--- 6 files changed, 57 insertions(+), 15 deletions(-) diff --git a/addons/gamification/goal.py b/addons/gamification/goal.py index 5ecb0ca6779..40cc304806c 100644 --- a/addons/gamification/goal.py +++ b/addons/gamification/goal.py @@ -40,6 +40,7 @@ class gamification_goal_type(osv.Model): _columns = { 'name': fields.char('Type Name', required=True, translate=True), 'description': fields.text('Description'), + 'monetary': fields.boolean('Use Currency', help="The target and current value used is monetary"), 'unit': fields.char('Unit', help="The unit of the target and current values", translate=True), 'computation_mode': fields.selection([ @@ -76,13 +77,14 @@ class gamification_goal_type(osv.Model): help='Sequence number for ordering', required=True), } - + _order = 'sequence' _defaults = { 'sequence': 1, 'condition': 'higher', - 'computation_mode':'manually', - 'domain':"[]", + 'computation_mode': 'manually', + 'domain': "[]", + 'monetary': False, } diff --git a/addons/gamification/goal_view.xml b/addons/gamification/goal_view.xml index cc5f5027e04..1877c4fc3dd 100644 --- a/addons/gamification/goal_view.xml +++ b/addons/gamification/goal_view.xml @@ -214,6 +214,8 @@ + + diff --git a/addons/gamification/res_users.py b/addons/gamification/res_users.py index cbec5adb0cf..70d8054b3cb 100644 --- a/addons/gamification/res_users.py +++ b/addons/gamification/res_users.py @@ -32,8 +32,10 @@ class res_users_gamification_group(osv.Model): # serialize goals info to be able to use it in javascript serialized_goals_info = { 'name': plan.name, - 'visibility_mode': plan.visibility_mode + 'visibility_mode': plan.visibility_mode, } + user = self.browse(cr, uid, uid, context=context) + serialized_goals_info['currency'] = user.company_id.currency_id.id if plan.visibility_mode == 'board': # board report should be grouped by planline for all users @@ -49,6 +51,9 @@ class res_users_gamification_group(osv.Model): vals = {'type_name': planline_board['goal_type'].name, 'type_description': planline_board['goal_type'].description, 'type_condition': planline_board['goal_type'].condition, + 'type_computation_mode': planline_board['goal_type'].computation_mode, + 'type_monetary': planline_board['goal_type'].monetary, + 'type_unit': planline_board['goal_type'].unit, 'goals': []} for goal in planline_board['board_goals']: vals['goals'].append({ @@ -76,8 +81,10 @@ class res_users_gamification_group(osv.Model): serialized_goals_info['goals'].append({ 'id': goal.id, 'type_name': goal.type_id.name, - 'type_condition': goal.type_id.condition, 'type_description': goal.type_description, + 'type_condition': goal.type_id.condition, + 'type_monetary': goal.type_id.monetary, + 'type_unit': goal.type_id.unit, 'state': goal.state, 'completeness': goal.completeness, 'computation_mode': goal.computation_mode, diff --git a/addons/gamification/static/src/js/gamification.js b/addons/gamification/static/src/js/gamification.js index 01004d94edd..62de4835842 100644 --- a/addons/gamification/static/src/js/gamification.js +++ b/addons/gamification/static/src/js/gamification.js @@ -64,13 +64,31 @@ openerp.gamification = function(instance) { self.goals_info['info'] = res }); $.when(goals_info).done(function() { - console.log(self.goals_info.info); if(self.goals_info.info.length > 0){ self.render_template_replace(self.$el.filter(".oe_gamification_goal"),'gamification.goal_list_to_do'); self.$el.find('.oe_type_description').hide(); + self.render_money_fields(self.goals_info.info[0].currency); } }); }, + render_money_fields: function(currency_id) { + var self = this; + + self.dfm = new instance.web.form.DefaultFieldManager(self); + self.$el.find(".oe_goal_field_monetary").each(function() { + money_field = new instance.web.form.FieldMonetary(self.dfm, { + attrs: { + modifiers: '{"readonly": true}' + } + }); + money_field.set('currency', currency_id); + money_field.get_currency_info(); + money_field.set('value', parseInt($(this).text())); + console.log(money_field.get('value')); + money_field.replace($(this)); + console.log(money_field.$el.html()); + }); + } }); instance.mail.Widget.include({ diff --git a/addons/gamification/static/src/xml/gamification.xml b/addons/gamification/static/src/xml/gamification.xml index d68b7320e90..bbd005e5c2a 100644 --- a/addons/gamification/static/src/xml/gamification.xml +++ b/addons/gamification/static/src/xml/gamification.xml @@ -9,19 +9,25 @@
  • - - - + + + modify +

    + / + - (less than ) + (less than + + + )