diff --git a/addons/gamification/goal.py b/addons/gamification/goal.py
index a020e98e6e5..e695322e9a0 100644
--- a/addons/gamification/goal.py
+++ b/addons/gamification/goal.py
@@ -343,6 +343,19 @@ class gamification_goal(osv.Model):
return False
+ def changed_users_avatar(self, cr, uid, ids, context):
+ """Warning a user changed his avatar.
+
+ The goal_type type_base_avatar requires a change of avatar. As an
+ avatar is randomly generated by default, trigger warning when change.
+ Set the state of every type_base_avatar linked to ids to 'reached' and
+ set current value to 1.
+ """
+ goal_type_id = self.pool['ir.model.data'].get_object(cr, uid, 'gamification', 'type_base_avatar', context)
+ goal_ids = self.search(cr, uid, [('type_id', '=', goal_type_id.id), ('user_id', 'in', ids)], context=context)
+ values = {'state': 'reached', 'current': 1}
+ self.write(cr, uid, goal_ids, values, context=context)
+
class goal_manual_wizard(osv.TransientModel):
"""Wizard type to update a manual goal"""
diff --git a/addons/gamification/goal_base_data.xml b/addons/gamification/goal_base_data.xml
index ded06f45dec..5c8158f5523 100644
--- a/addons/gamification/goal_base_data.xml
+++ b/addons/gamification/goal_base_data.xml
@@ -19,12 +19,12 @@
Change of avatar
In your user perference
manually
+ base.action_res_users_my
diff --git a/addons/gamification/plan.py b/addons/gamification/plan.py
index 9bd658703ed..53230c5cd87 100644
--- a/addons/gamification/plan.py
+++ b/addons/gamification/plan.py
@@ -128,8 +128,8 @@ class gamification_goal_plan(osv.Model):
string='State',
required=True),
'visibility_mode': fields.selection([
- ('board','Leader board'),
- ('progressbar','Personal progressbar')
+ ('board', 'Leader board'),
+ ('progressbar', 'Personal progressbar')
],
string="Visibility",
help='How are displayed the results, shared or in a single progressbar',
diff --git a/addons/gamification/res_users.py b/addons/gamification/res_users.py
index c8fa6c409be..af887319f74 100644
--- a/addons/gamification/res_users.py
+++ b/addons/gamification/res_users.py
@@ -20,6 +20,9 @@ class res_users_gamification_group(osv.Model):
plan_ids = goal_plan_obj.search(cr, uid, [('autojoin_group_id', 'in', user_group_ids)], context=context)
goal_plan_obj.plan_subscribe_users(cr, uid, plan_ids, ids, context=context)
+
+ if vals.get('image'):
+ self.pool.get('gamification.goal').changed_users_avatar(cr, uid, ids, context)
return write_res
def get_goals_todo_info(self, cr, uid, context=None):
diff --git a/addons/gamification/static/src/js/gamification.js b/addons/gamification/static/src/js/gamification.js
index d415d35a890..7f49f66785f 100644
--- a/addons/gamification/static/src/js/gamification.js
+++ b/addons/gamification/static/src/js/gamification.js
@@ -39,7 +39,9 @@ openerp.gamification = function(instance) {
});
$.when(goal_action).done(function() {
var action_manager = new instance.web.ActionManager(this);
- action_manager.do_action(goal_action.action);
+ action_manager.do_action(goal_action.action).done(function () {
+ self.get_goal_todo_info();
+ });
//var form = action_manager.dialog_widget.views.form.controller;
});