Purpose ======= Have a clear distinction between leave and allocation requests instead of using the same model to mix 2 different concepts. Splitting the model will allow different business code to be run on each model as allocations and leaves are not exactly the same thing; this will add some code but simplify future improvements Specification ============= 1/ Completely separate the models Model hr.holidays has been split into leave.request and leave.allocation. 2/ Make reporting working again by using an SQL view aggregating data from leaves and allocations A new report has been added in order to aggregate datas from both allocations and requests. The views have been modified accordingly.
49 lines
2.1 KiB
Python
49 lines
2.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo.addons.mail.controllers.main import MailController
|
|
from odoo import http
|
|
|
|
|
|
class HrHolidaysController(http.Controller):
|
|
|
|
@http.route('/leave/validate', type='http', auth='user', methods=['GET'])
|
|
def hr_holidays_request_validate(self, res_id, token):
|
|
comparison, record, redirect = MailController._check_token_and_record_or_redirect('hr.leave', int(res_id), token)
|
|
if comparison and record:
|
|
try:
|
|
record.action_approve()
|
|
except Exception:
|
|
return MailController._redirect_to_messaging()
|
|
return redirect
|
|
|
|
@http.route('/leave/refuse', type='http', auth='user', methods=['GET'])
|
|
def hr_holidays_request_refuse(self, res_id, token):
|
|
comparison, record, redirect = MailController._check_token_and_record_or_redirect('hr.leave', int(res_id), token)
|
|
if comparison and record:
|
|
try:
|
|
record.action_refuse()
|
|
except Exception:
|
|
return MailController._redirect_to_messaging()
|
|
return redirect
|
|
|
|
@http.route('/allocation/validate', type='http', auth='user', methods=['GET'])
|
|
def hr_holidays_allocation_validate(self, res_id, token):
|
|
comparison, record, redirect = MailController._check_token_and_record_or_redirect('hr.leave.allocation', int(res_id), token)
|
|
if comparison and record:
|
|
try:
|
|
record.action_approve()
|
|
except Exception:
|
|
return MailController._redirect_to_messaging()
|
|
return redirect
|
|
|
|
@http.route('/allocation/refuse', type='http', auth='user', methods=['GET'])
|
|
def hr_holidays_allocation_refuse(self, res_id, token):
|
|
comparison, record, redirect = MailController._check_token_and_record_or_redirect('hr.leave.allocation', int(res_id), token)
|
|
if comparison and record:
|
|
try:
|
|
record.action_refuse()
|
|
except Exception:
|
|
return MailController._redirect_to_messaging()
|
|
return redirect
|