Commit Graph
30 Commits
Author SHA1 Message Date
Aurélien Warnon 2390ef9bcd [FIX] gamification: adapt _get_next_rank method to always return a recordset
The return type of the _get_next_rank method on the 'res.users' model was inconsistent.
It sometimes returned a recordset, sometimes False.

This commit adapts the method to always return a recordset (which is empty for the previously
'False' case).

This is a preliminary work for the level up animation on website_slides task.

PR #39870
Task#2032649
2019-11-06 13:01:09 +00:00
Thibault Delavallée 1d468caf94 [IMP] website_profile: handle both groupby and search in users page
Purpose is to support both search term and karma gain group by in the
URL, using keep_query.

Clean some code and move karma computation to res.users model to avoid
having sql in controllers.

Also fix some display issues.

LINKS

Task ID 2003505
PR #34594
2019-11-05 15:08:34 +00:00
Patrick Hoste bfbc7c6a18 [IMP] gamification: track karma change on users
PURPOSE

Allow karma gain tracking enabling notably display of top users based on
weekly / monthly gain in website profile.

SPECIFCIATIONS

Each time a user gains karma a record is created in the gamification karma
tracking model. Scheduled activity runs to consolidate the records into
monthly gain records to avoid having crowdy table and unnecessary noise
in karma gain.

This model is made private and only accessible through some dedicated
compute methods / controllers used in website profile.

In website profile module buttons are added to see users ranking based
on their total karma (like before) but also by last week and last month
gains (using the newly introduced tracking model).

LINKS

Task ID 2003505
PR #34594
2019-11-05 15:08:34 +00:00
Christophe Simonis d5e1fd16b4 [MERGE] forward port branch saas-12.4 up to cda4f3c308 2019-07-29 14:10:30 +02:00
Jeremy Kersten 8a80efd7cd [FIX] gamification: perf on write karma_min on gamification.karma.rank
This commits avoid to call recompute when you write on the rank without
touch the karma_min value.

On write on karma_min, we have 2 cases:
- Rank order are the same, just need to recompute the rank for the user
that could be impacted. Eg. if karma_min changes from 45 to 50, we need
to recheck for all user between 45 and 50 their new rank.
- Rank order are not the same, we need to recompute for all users.
(could be still improved if needed)

When you recompute the rank on a list of users, depending of the number of
users (bulk if more than 3 * number of rank) we check for each user what is
the new rank, or for each rank whats is the new users.

task-internal

No way to edit a rank on the prod server. Lock sql -> crash server

closes odoo/odoo#34835

Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
2019-07-24 09:03:13 +00:00
David Beguin 6b10864bb9 [IMP] gamification : remove karma_position field
Since task Id 2000687  and PR #33475, karma position field is not necessary anymore
as the karma position is computed directly in the website_profile controller.

Task ID: 2001367
PR #35103

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2019-07-23 12:33:29 +00:00
Adrian Torres 4b38cc6590 [REM] *: calls to @api.multi
Multi is the default api for methods, it is not necessary to explicitly
decorate methods with it, adds clutter and most people use it because
they see that the rest of the code uses it.

Done with `find . -type f -name '*.py' | xargs sed -i '/@api.multi/d'`
2019-07-17 14:13:12 +02:00
Thibault Delavallée cd039b64d4 [FIX] gamification, website_{profile, slides}: correctly display next rank
This fix correctly displayed motivational of next rank to achieve depending
on current karma. Indeed description_motivational field is not the
motivational to reach next rank but to reach the current rank, taken from
previous rank point of view. That way a given rank is configured by modifying
only 1 data.

When not having any karma points (newly created user) the next rank is computed
as being the first available rank. Motivational phrases and badges are updated
accordingly. This commit partially reverts 489c8623e2.

Result

  * new user with no karma: next rank is the first rank;
  * user with karma and next rank: as currently;
  * user being at final rank: next rank is just current rank with a 100%
    circle;

Linked to task 2005840
Related to PR #34220
2019-06-28 13:45:33 +00:00
David Beguin 472c95e4af [FIX] website_profile, gamification : compute rank for website_published users only
If a non website_published user was 2nd in karma position, the all users page was
displaying in the top 3 a user with position 4 (in rank) as "normal users" cannot see
non published users.

The field karma_position is now deprecated and will be removed in master.

Task ID : 2000687
PR #33475

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2019-05-21 11:22:08 +00:00
David Beguin d7cc1520f4 [IMP] website_profile, gamification, : add search bar in all users page
This commit adds the search bar in 'All users' page in order to filter on name or company name.
To be able to keep the position, a non stored computed field has been added on res_users
to get the position depending on the user's karma.

The podium (top 3 users) is now displayed only if there is no search applied and if the page = 1
because it has no sens anymore in other cases.

Special thanks to @jem-odoo who helped me finding smart solution for position computing.

Task ID : 1943788
PR #31321
2019-03-15 14:59:12 +00:00
David Beguin 1949c796b5 [FIX] gamification, website_profile : re-fix division by zero if user has no karma
If a new user try to access the elearning platform or his porfile, if he has
no karma, has it is the case for new users, he won't get any rank. So that
the next rank karma minus current rank karma equals zero.

To avoid this, next_rank will always be first one existing if the user has no
karma. Also, the current rank will not be displayed if the user has no karma.
finally, next rank will not be displayed if the user reached the last existing
rank.

Task ID : 1941250
PR #31512
2019-03-06 14:08:24 +00:00
David Beguin cfbd8d1ada [IMP] gamification, website_forum : apply various improvements
- add menu to configure ranks in gamification tools because was missing
- move admin karma data in gamification : karma linked to gamification
  and not forum anymore
- fix rank computation : next_rank_id could never been recomputed correctly
  if rank are created in a karma ascending order.

Task ID : 1922159
PR #30988
2019-02-14 08:30:29 +00:00
David Beguin f95f8cc696 [FIX] gamification: fix rank computation 2019-02-12 11:24:23 +00:00
David Beguin b9902d961e [IMP] gamification : rename rank.karma_required into karma_min for grep convenience
Rename rank.karma_required into karma_min to avoid confusion
with karma_required from website_forum

Linked to Task ID : 1922159
Closes PR #30965
2019-02-08 18:03:29 +00:00
David Beguin 9e082662af [IMP] gamification : add ranks based on karma
To encourage forum and slides users to be more active ranks are now added.
They are directly linked to karma. The more the user has karma the more his
rank will be high.

The default rank is Newbie, with 1 point of karma. Users with 0 karma are
considered as inactive on forum or slides. When a user reach a new rank
a mail is sent to him to congratulate him with his new rank.

To add a button in the mail template to allow users to go directly on
a website section (like forum or slides) simply override
get_gamification_redirection_data to add the target url.

Partial commit linked to eLearning project. Main specifications related
to gamification and user profile can be found on task 1922159 (PR #30514).
Main specifications related to eLearning can be found on task 1902304
(PR #29876).
2019-02-07 12:13:28 +00:00
David Beguin 3b9dcb6d8d [REF] gamification, website_forum: move karma, badge and badge level to gamification
Purpose of this commit is to prepare addition of gamification in slides /
eLearning platform. In order to be able to use karma and the badges in other
modules we move those models in gamification.

Partial commit linked to eLearning project. Main specifications related
to gamification and user profile can be found on task 1922159 (PR #30514).
Main specifications related to eLearning can be found on task 1902304
(PR #29876).
2019-02-07 12:11:44 +00:00
Xavier Morel c7a818caee [REM] gamification: res_users extensions
Apparently leftover from when features got removed from the client.
2016-08-05 10:18:02 +02:00
Olivier Dony 0bd4545348 [LEGAL] Use global LICENSE/COPYRIGHT files, remove boilerplate text
- Preserved explicit 3rd-party copyright notices
- Explicit boilerplate should not be necessary - copyright law applies
  automatically in all countries thanks to Berne Convention + WTO rules,
  and a reference to the applicable license is clear enough.
2015-06-02 03:16:04 +02:00
Martin Trigaux a6bcf53bd3 [IMP] gamification: performance improvement in generation method
bzr revid: mat@openerp.com-20140418150618-9g179rleuru44xrt
2014-04-18 17:06:18 +02:00
Martin Trigaux d79cbd3fb8 [FIX] gamification: convert autojoin_group_id to a domain representing the list of users
bzr revid: mat@openerp.com-20140416151026-lmvyo8k0wo4hw9gn
2014-04-16 17:10:26 +02:00
Martin Trigaux 35c7f4814d Allow overwrite of the serialising method to exclude some categories in the challenge search
bzr revid: mat@openerp.com-20140415134809-uconkvnp0z32jxjs
2014-04-15 15:48:09 +02:00
Martin Trigaux cce60acc15 [FIX] gamification: when auto-subscribing users to challenges, do it as superuser
bzr revid: mat@openerp.com-20140218140403-eamxtm6dvwj3g5d3
2014-02-18 15:04:03 +01:00
Martin Trigaux f988e74828 [FIX] gamification: when serialising data, skip lines and challenges with no goals
bzr revid: mat@openerp.com-20140207093643-vr1on5oxqtzkalj9
2014-02-07 10:36:43 +01:00
Martin Trigaux 691d305ed9 [FIX] gamification: automatically generates goals for users when adding them to a new challenge
bzr revid: mat@openerp.com-20140207092411-yju3pif1ibipcff8
2014-02-07 10:24:11 +01:00
Martin Trigaux f77aefc07a [REF] gamification: cleaning methods and reports
bzr revid: mat@openerp.com-20131220144521-wyu1gx8bcitu6nk4
2013-12-20 15:45:21 +01:00
Martin Trigaux e7887b8b8f [REF] gamification: python tests and other improvements
bzr revid: mat@openerp.com-20131218111243-npnauv6mxhb4nttg
2013-12-18 12:12:43 +01:00
Martin Trigaux b63950e0dc [REF] gamification: mode to adequate folders
bzr revid: mat@openerp.com-20131218085907-6501sfdif2rk4a0b
2013-12-18 09:59:07 +01:00
Martin Trigaux 4bc29b9ffa [REF] gamification
bzr revid: mat@openerp.com-20131217170232-e0zruxzl1wlycaji
2013-12-17 18:02:32 +01:00
Martin Trigaux c184adab44 [REF] gamification
bzr revid: mat@openerp.com-20131217164619-ewgj8cclza3u44pp
2013-12-17 17:46:19 +01:00
Martin Trigaux 122c15c48d [REF] gamification: pretty much changing half of the code to make tde happy...
bzr revid: mat@openerp.com-20131217161541-oxsgy7gmko2x6qui
2013-12-17 17:15:41 +01:00