[FIX] hr_holidays: fix activity creation for second approval
Prior, if the time off type needed second approval, there was no activity generated for the responsible. This commit fixes that. Moreover we also organize the code by taking references out of the loop. task - 3584190 closes odoo/odoo#142327 Signed-off-by: Bertrand Dossogne (bedo) <bedo@odoo.com>
This commit is contained in:
@@ -3322,6 +3322,13 @@ msgstr ""
|
||||
msgid "Second Month Day Display"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_holidays
|
||||
#. odoo-python
|
||||
#: code:addons/hr_holidays/models/hr_leave.py:0
|
||||
#, python-format
|
||||
msgid "Second approval request for %(leave_type)s"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_holidays
|
||||
#. odoo-javascript
|
||||
#: code:addons/hr_holidays/static/src/tours/hr_holidays_tour.js:0
|
||||
|
||||
@@ -1493,21 +1493,32 @@ Attempting to double-book your time off won't magically make your vacation 2x be
|
||||
return responsible
|
||||
|
||||
def activity_update(self):
|
||||
to_clean, to_do = self.env['hr.leave'], self.env['hr.leave']
|
||||
to_clean, to_do, to_do_confirm_activity = self.env['hr.leave'], self.env['hr.leave'], self.env['hr.leave']
|
||||
activity_vals = []
|
||||
today = fields.Date.today()
|
||||
model_id = self.env.ref('hr_holidays.model_hr_leave').id
|
||||
confirm_activity = self.env.ref('hr_holidays.mail_act_leave_approval')
|
||||
approval_activity = self.env.ref('hr_holidays.mail_act_leave_second_approval')
|
||||
for holiday in self:
|
||||
note = _(
|
||||
'New %(leave_type)s Request created by %(user)s',
|
||||
leave_type=holiday.holiday_status_id.name,
|
||||
user=holiday.create_uid.name,
|
||||
)
|
||||
if holiday.state == 'draft':
|
||||
to_clean |= holiday
|
||||
elif holiday.state == 'confirm':
|
||||
elif holiday.state in ['confirm', 'validate1']:
|
||||
if holiday.holiday_status_id.leave_validation_type != 'no_validation':
|
||||
if holiday.state == 'confirm':
|
||||
activity_type = confirm_activity
|
||||
note = _(
|
||||
'New %(leave_type)s Request created by %(user)s',
|
||||
leave_type=holiday.holiday_status_id.name,
|
||||
user=holiday.create_uid.name,
|
||||
)
|
||||
else:
|
||||
activity_type = approval_activity
|
||||
note = _(
|
||||
'Second approval request for %(leave_type)s',
|
||||
leave_type=holiday.holiday_status_id.name,
|
||||
)
|
||||
to_do_confirm_activity |= holiday
|
||||
user_ids = holiday.sudo()._get_responsible_for_approval().ids or self.env.user.ids
|
||||
today = fields.Date.today()
|
||||
activity_type = self.env.ref('hr_holidays.mail_act_leave_approval')
|
||||
for user_id in user_ids:
|
||||
date_deadline = (
|
||||
(holiday.date_from -
|
||||
@@ -1522,7 +1533,7 @@ Attempting to double-book your time off won't magically make your vacation 2x be
|
||||
'note': note,
|
||||
'user_id': user_id,
|
||||
'res_id': holiday.id,
|
||||
'res_model_id': self.env.ref('hr_holidays.model_hr_leave').id,
|
||||
'res_model_id': model_id,
|
||||
})
|
||||
elif holiday.state == 'validate':
|
||||
to_do |= holiday
|
||||
@@ -1530,6 +1541,8 @@ Attempting to double-book your time off won't magically make your vacation 2x be
|
||||
to_clean |= holiday
|
||||
if to_clean:
|
||||
to_clean.activity_unlink(['hr_holidays.mail_act_leave_approval', 'hr_holidays.mail_act_leave_second_approval'])
|
||||
if to_do_confirm_activity:
|
||||
to_do_confirm_activity.activity_feedback(['hr_holidays.mail_act_leave_approval'])
|
||||
if to_do:
|
||||
to_do.activity_feedback(['hr_holidays.mail_act_leave_approval', 'hr_holidays.mail_act_leave_second_approval'])
|
||||
self.env['mail.activity'].create(activity_vals)
|
||||
|
||||
Reference in New Issue
Block a user