mirror of
https://github.com/bringout/oca-ocb-vertical-industry.git
synced 2026-04-22 21:12:06 +02:00
19.0 vanilla
This commit is contained in:
parent
4607ccbd2e
commit
825ff6514e
487 changed files with 184979 additions and 195262 deletions
|
|
@ -4,10 +4,10 @@ from odoo import api, fields, models
|
|||
from odoo.tools.translate import html_translate
|
||||
|
||||
|
||||
class KarmaRank(models.Model):
|
||||
class GamificationKarmaRank(models.Model):
|
||||
_name = 'gamification.karma.rank'
|
||||
_description = 'Rank based on karma'
|
||||
_inherit = 'image.mixin'
|
||||
_inherit = ['image.mixin']
|
||||
_order = 'karma_min'
|
||||
|
||||
name = fields.Text(string='Rank Name', translate=True, required=True)
|
||||
|
|
@ -20,20 +20,21 @@ class KarmaRank(models.Model):
|
|||
user_ids = fields.One2many('res.users', 'rank_id', string='Users')
|
||||
rank_users_count = fields.Integer("# Users", compute="_compute_rank_users_count")
|
||||
|
||||
_sql_constraints = [
|
||||
('karma_min_check', "CHECK( karma_min > 0 )", 'The required karma has to be above 0.')
|
||||
]
|
||||
_karma_min_check = models.Constraint(
|
||||
'CHECK( karma_min > 0 )',
|
||||
'The required karma has to be above 0.',
|
||||
)
|
||||
|
||||
@api.depends('user_ids')
|
||||
def _compute_rank_users_count(self):
|
||||
requests_data = self.env['res.users']._read_group([('rank_id', '!=', False)], ['rank_id'], ['rank_id'])
|
||||
requests_mapped_data = dict((data['rank_id'][0], data['rank_id_count']) for data in requests_data)
|
||||
requests_data = self.env['res.users']._read_group([('rank_id', '!=', False)], ['rank_id'], ['__count'])
|
||||
requests_mapped_data = {rank.id: count for rank, count in requests_data}
|
||||
for rank in self:
|
||||
rank.rank_users_count = requests_mapped_data.get(rank.id, 0)
|
||||
|
||||
@api.model_create_multi
|
||||
def create(self, values_list):
|
||||
res = super(KarmaRank, self).create(values_list)
|
||||
def create(self, vals_list):
|
||||
res = super().create(vals_list)
|
||||
if any(res.mapped('karma_min')) > 0:
|
||||
users = self.env['res.users'].sudo().search([('karma', '>=', max(min(res.mapped('karma_min')), 1))])
|
||||
if users:
|
||||
|
|
@ -46,7 +47,7 @@ class KarmaRank(models.Model):
|
|||
low = min(vals['karma_min'], min(self.mapped('karma_min')))
|
||||
high = max(vals['karma_min'], max(self.mapped('karma_min')))
|
||||
|
||||
res = super(KarmaRank, self).write(vals)
|
||||
res = super().write(vals)
|
||||
|
||||
if 'karma_min' in vals:
|
||||
after_ranks = self.env['gamification.karma.rank'].search([], order="karma_min DESC").ids
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue