- In order to test the hr_holiday module in OpenERP, I will Allocate leaves for Employee and manage leaves and leaves requests. - I create new user "test_holiday_user1" who will make leave request. - !record {model: res.users, id: test_holiday_user1}: company_id: base.main_company context_lang: en_US groups_id: - base.group_user - base.group_hr_manager - base.group_hr_user login: test_holiday_user1 name: test_holiday_user1 password: test_holiday_user1 - I create a new employee “Mark Johnshon” as Manager to validate employee leave. - !record {model: hr.employee, id: hr_employee_employee0}: address_home_id: base.res_partner_address_1 company_id: base.main_company gender: male name: Mark Johnson user_id: base.user_root - I Create another employee "Phil Graves" as "test_holiday_user1". - !record {model: hr.employee, id: hr_employee_philgraves0}: address_home_id: base.res_partner_address_8 name: Phil Graves parent_id: 'hr_employee_employee0' user_id: 'test_holiday_user1' - I create a new Leave type "Sick Leave". - !record {model: hr.holidays.status, id: hr_holidays_status_sick0}: color_name: red name: Sick Leave. limit: 12 - I allocate leave request for employee "Phil Graves". - !record {model: hr.holidays, id: hr_holidays_allocateleaveforuser0}: employee_id: 'hr_employee_philgraves0' holiday_status_id: hr_holidays_status_sick0 name: Sick Leaves for Phil Graves number_of_days_temp: 12.0 date_from: !eval "'%s-05-20 13:59:00' %(datetime.now().year)" date_to: !eval "'%s-05-22 13:59:00' %(datetime.now().year)" type: add - I confirmed the allocation by clicking on "Confirm" button. - !workflow {model: hr.holidays, action: confirm, ref: hr_holidays_allocateleaveforuser0} - I validate the allocation by clicking on "To Approve" button. - !workflow {model: hr.holidays, action: validate, ref: hr_holidays_allocateleaveforuser0} - I connect as "test_holiday_user1", and create a new leave request for employee "Phil Graves". - !record {model: hr.holidays, id: hr_holidays_iwanttoleaveforgotohospital0}: date_from: !eval "'%s-05-20 11:48:00' %(datetime.now().year)" date_to: !eval "'%s-05-21 11:48:00' %(datetime.now().year)" employee_id: 'hr_employee_philgraves0' holiday_status_id: 'hr_holidays_status_sick0' name: Appointment with Doctor notes: My appointment with the doctor is confirmed. so please accept my leave. number_of_days_temp: 2.0 type: remove user_id: 'test_holiday_user1' - I check that Leave Request is in "Draft" state. - !assert {model: hr.holidays, id: hr_holidays_iwanttoleaveforgotohospital0}: - state == 'draft' - I confirm leave Request by click on "Confirm" button. - !workflow {model: hr.holidays, action: confirm, ref: hr_holidays_iwanttoleaveforgotohospital0} - I connect as "Admin" user and Open Leave request of "Phil Graves" and "validate" it by click on "Approve" button. - !workflow {model: hr.holidays, action: validate, ref: hr_holidays_iwanttoleaveforgotohospital0} - I check that "Leave Manager" field is automatically filled by the user who validate the leave'. - !python {model: hr.holidays}: | ids2 = self.pool.get('hr.employee').search(cr, uid, [('user_id','=', uid)]) obj = self.browse(cr, uid, ref('hr_holidays_iwanttoleaveforgotohospital0')) assert ids2[0] == obj.manager_id.id - I check that Leave request state is "Validated". - !assert {model: hr.holidays, id: hr_holidays_iwanttoleaveforgotohospital0}: - state == "validate" - I can also see Summary of Employee's holiday by using 'Employee's Holidays' Report. This report will allows to choose to print holidays with state Confirmed, Validated or both.