This commit is contained in:
blackbelts 2025-06-24 12:42:44 +03:00
parent 3cb98d5a5b
commit 3e8aa1e4bc
1 changed files with 52 additions and 22 deletions

View File

@ -276,17 +276,21 @@ class StandardAppraisalLines(models.Model):
store=True
)
# compute = '_compute_priority',
# inverse = '_inverse_priority',
# inverse='_inverse_priority',
# @api.depends('greed', 'great_level','priority')
@api.onchange('greed', 'great_level')
def _compute_priority(self):
for rec in self:
if rec.great_level:
value = rec.greed / (rec.great_level / 5)
# value = 7/ (10 / 5) = 3.5
_previous_greed = None
_previous_priority = None
@api.onchange('greed', 'great_level', 'priority')
def _onchange_fields(self):
for rec in self:
# Skip if no level
if not rec.great_level:
rec.priority = '0'
return
# Check who changed
if self._previous_greed != rec.greed:
# greed changed → compute priority
value = rec.greed / (rec.great_level / 5)
if 1 <= value < 2:
rec.priority = '1'
elif 2 <= value < 3:
@ -298,19 +302,45 @@ class StandardAppraisalLines(models.Model):
elif value >= 5:
rec.priority = '5'
else:
rec.priority = '0' # fallback
else:
rec.priority = '0'
rec.greed +=1
print(rec.priority)
@api.onchange('priority')
def _inverse_priority(self):
for rec in self:
if rec.great_level and rec.priority:
rec.priority = '0'
elif self._previous_priority != rec.priority:
# priority changed → compute greed
rec.greed = int(rec.priority) * (rec.great_level / 5)
print(rec.greed)
# Update previous values
rec._previous_greed = rec.greed
rec._previous_priority = rec.priority
# @api.onchange('greed', 'great_level')
# def _compute_priority(self):
# for rec in self:
# if rec.great_level:
# value = rec.greed / (rec.great_level / 5)
# # value = 7/ (10 / 5) = 3.5
#
# if 1 <= value < 2:
# rec.priority = '1'
# elif 2 <= value < 3:
# rec.priority = '2'
# elif 3 <= value < 4:
# rec.priority = '3'
# elif 4 <= value < 5:
# rec.priority = '4'
# elif value >= 5:
# rec.priority = '5'
# else:
# rec.priority = '0' # fallback
# else:
# rec.priority = '0'
# # rec.greed +=1
#
# print(rec.priority)
#
# @api.onchange('priority')
# def _inverse_priority(self):
# for rec in self:
# if rec.great_level and rec.priority:
# rec.greed = int(rec.priority) * (rec.great_level / 5)
# print(rec.greed)
@api.constrains('greed', 'great_level')
def greed_constrains(self):