summaryrefslogtreecommitdiff
path: root/addons/gamification
diff options
context:
space:
mode:
authorMartin Trigaux <mat@openerp.com>2014-09-12 10:37:14 +0200
committerThibault Delavallée <tde@openerp.com>2014-09-18 11:12:15 +0200
commit56b3db82192d6ed2dad45982ebce9f471cf7c0cf (patch)
treeada7d85e8a591fa6a9babecb9c0d97e450de3f03 /addons/gamification
parent764c5acd81f3793606f1b9f7db48cc27bb837102 (diff)
[IMP] gamification: usability and shit
Challenge - 'Reward as soon as every goal is reached' box checked by default (most of the time people want this behaviour, few special cases were do not) - Click on challenge kanban opens goal list instead of challenge form - Add button 'Start Challenge' clicking on statusbar is not intuitive Badge - When creates a challenge from badge view, set by default badge to 'For Every Succeding User' field - replace filter 'Current' vs 'Passed' by 'Running' (in progress and done with not reached end date) vs 'Done' (done & failed without end date or end date passed) Goal - list of badge on employee form not the first tab
Diffstat (limited to 'addons/gamification')
-rw-r--r--addons/gamification/models/challenge.py6
-rw-r--r--addons/gamification/static/src/js/gamification.js11
-rw-r--r--addons/gamification/views/badge.xml2
-rw-r--r--addons/gamification/views/challenge.xml9
-rw-r--r--addons/gamification/views/goal.xml16
5 files changed, 20 insertions, 24 deletions
diff --git a/addons/gamification/models/challenge.py b/addons/gamification/models/challenge.py
index 2a1c6d5b0a5..4e128fc8f12 100644
--- a/addons/gamification/models/challenge.py
+++ b/addons/gamification/models/challenge.py
@@ -204,6 +204,7 @@ class gamification_challenge(osv.Model):
'category': 'hr',
'reward_failure': False,
'report_template_id': lambda s, *a, **k: s._get_report_template(*a, **k),
+ 'reward_realtime': True,
}
@@ -361,6 +362,9 @@ class gamification_challenge(osv.Model):
return True
+ def action_start(self, cr, uid, ids, context=None):
+ """Start a challenge"""
+ return self.write(cr, uid, ids, {'state': 'inprogress'}, context=context)
def action_check(self, cr, uid, ids, context=None):
"""Check a challenge
@@ -707,7 +711,7 @@ class gamification_challenge(osv.Model):
rewarded_users = []
challenge_ended = end_date == yesterday.strftime(DF) or force
- if challenge.reward_id and challenge_ended or challenge.reward_realtime:
+ if challenge.reward_id and (challenge_ended or challenge.reward_realtime):
# not using start_date as intemportal goals have a start date but no end_date
reached_goals = self.pool.get('gamification.goal').read_group(cr, uid, [
('challenge_id', '=', challenge.id),
diff --git a/addons/gamification/static/src/js/gamification.js b/addons/gamification/static/src/js/gamification.js
index 6e2e5201968..0c02162e59f 100644
--- a/addons/gamification/static/src/js/gamification.js
+++ b/addons/gamification/static/src/js/gamification.js
@@ -125,16 +125,5 @@ openerp.gamification = function(instance) {
sidebar.appendTo($('.oe_mail_wall_aside'));
},
});
-
- instance.web_kanban.KanbanRecord.include({
- // open related goals when clicking on challenge kanban view
- on_card_clicked: function() {
- if (this.view.dataset.model === 'gamification.challenge') {
- this.$('.oe_kanban_project_list a').first().click();
- } else {
- this._super.apply(this, arguments);
- }
- },
- });
};
diff --git a/addons/gamification/views/badge.xml b/addons/gamification/views/badge.xml
index 302ad66caf0..315ccd68308 100644
--- a/addons/gamification/views/badge.xml
+++ b/addons/gamification/views/badge.xml
@@ -75,7 +75,7 @@
</div>
</group>
<group string="Rewards for challenges">
- <field name="challenge_ids" widget="many2many_kanban" nolabel="1" />
+ <field name="challenge_ids" widget="many2many_kanban" nolabel="1" context="{'default_reward_id': active_id}" />
</group>
<group string="Statistics">
<group>
diff --git a/addons/gamification/views/challenge.xml b/addons/gamification/views/challenge.xml
index 9c76b73bdae..75515c42183 100644
--- a/addons/gamification/views/challenge.xml
+++ b/addons/gamification/views/challenge.xml
@@ -34,6 +34,7 @@
<field name="arch" type="xml">
<form string="Goal definitions">
<header>
+ <button string="Start Challenge" type="object" name="action_start" states="draft" class="oe_highlight"/>
<button string="Refresh Challenge" type="object" name="action_check" states="inprogress"/>
<button string="Send Report" type="object" name="action_report_progress" states="inprogress,done" groups="base.group_no_one"/>
<field name="state" widget="statusbar" clickable="True"/>
@@ -48,7 +49,7 @@
<label for="user_domain" class="oe_edit_only" string="Assign Challenge To"/>
<div>
<field name="user_domain" widget="char_domain" options="{'model': 'res.users'}" />
- <field name="user_ids" groups="base.group_no_one" widget="many2many_tags" />
+ <field name="user_ids" groups="base.group_no_one" widget="many2many_tags" readonly="True" />
</div>
</div>
@@ -142,12 +143,6 @@
<templates>
<t t-name="kanban-box">
<div t-attf-class="oe_kanban_card oe_kanban_goal oe_kanban_global_click">
- <div class="oe_dropdown_toggle oe_dropdown_kanban">
- <span class="oe_e">í</span>
- <ul class="oe_dropdown_menu">
- <li><a type="edit">Configure Challenge</a></li>
- </ul>
- </div>
<div class="oe_kanban_content">
<strong>
<h4 class="text-center"><field name="name"/></h4>
diff --git a/addons/gamification/views/goal.xml b/addons/gamification/views/goal.xml
index ed0702f9a52..e8081f4bc21 100644
--- a/addons/gamification/views/goal.xml
+++ b/addons/gamification/views/goal.xml
@@ -98,13 +98,21 @@
<filter name="my" string="My Goals" domain="[('user_id', '=', uid)]"/>
<separator/>
<filter name="draft" string="Draft" domain="[('state', '=', 'draft')]"/>
- <filter name="inprogress" string="Current"
+ <filter name="inprogress" string="Running"
domain="[
'|',
('state', '=', 'inprogress'),
- ('end_date', '>=', context_today().strftime('%%Y-%%m-%%d'))
- ]"/>
- <filter name="closed" string="Passed" domain="[('state', 'in', ('reached', 'failed'))]"/>
+ '&amp;',
+ ('state', 'in', ('done', 'failed')),
+ ('end_date', '>=', context_today().strftime('%%Y-%%m-%%d'))
+ ]"/>
+ <filter name="closed" string="Done"
+ domain="[
+ ('state', 'in', ('reached', 'failed')),
+ '|',
+ ('end_date', '=', False),
+ ('end_date', '&lt;', context_today().strftime('%%Y-%%m-%%d'))
+ ]"/>
<separator/>
<field name="user_id"/>