HR

Pracownicy i urlopy

MarketplaceLudzie i projektyWersja 0.1.0manifest

Do czego służy ​

A register of employees, departments and leave requests, with strict data classes: pay, bank details and national id are visible to managers only and health or union data only to a special reader group. Agents never see the sensitive classes.

Co pakiet robi, a czego nie robi ​

Employees, departments and leave requests. Personal data is classified strictly: pay, bank and national id are visible to managers only, and health and union data to the special reader group.

Modele ​

hr_department ​

A team or department of the company

Grupa odczytu: hr.user. Grupa zapisu: hr.manager.

PoleRodzajKlasa danychDane osoboweGrupaAgenci widząOpis
nametextnoneniehr.userjawnieDepartment name
headtextpublic_directorytakhr.userzamaskowaneName of the department head
cost_centretextnoneniehr.userjawnieCost centre code used by finance

hr_employee ​

A person employed by the company

Grupa odczytu: hr.user. Grupa zapisu: hr.manager.

PoleRodzajKlasa danychDane osoboweGrupaAgenci widząOpis
nametextpublic_directorytakhr.userzamaskowaneFull name
job_titletextpublic_directorytakhr.userzamaskowaneJob title
work_emailtextpublic_directorytakhr.userzamaskowaneWork email address
work_phonetextpublic_directorytakhr.userzamaskowaneWork phone number
department_idref → hr_departmentnoneniehr.userjawnieThe department the person belongs to
reports_to_idref → hr_employeenoneniehr.userjawnieThe person's line manager
hired_ondateinternaltakhr.userzamaskowaneFirst day of employment (YYYY-MM-DD)
contract_typeselect (permanent, fixed_term, contractor, intern)confidential_hrtakhr.managerwstrzymaneType of employment contract: permanent, fixed_term, contractor, intern
private_emailtextconfidential_hrtakhr.managerwstrzymanePrivate email address
private_phonetextconfidential_hrtakhr.managerwstrzymanePrivate phone number
home_addresslongtextconfidential_hrtakhr.managerwstrzymanePrivate home address
birth_datedateconfidential_hrtakhr.managerwstrzymaneDate of birth (YYYY-MM-DD)
national_idtextconfidential_hrtakhr.managerwstrzymaneNational identity or social security number
emergency_contacttextconfidential_hrtakhr.managerwstrzymaneName and phone of the person to call in an emergency
salarymoneyfinancialtakhr.managerwstrzymaneGross annual salary (minor currency units, e.g. cents)
bank_ibantextfinancialtakhr.managerwstrzymaneBank account salary is paid into
union_memberboolspecial_categorytakhr.special_readerwstrzymaneWhether the person is a trade union member
work_permit_expirydatespecial_categorytakhr.special_readerwstrzymaneDate the work permit expires, for non-citizens (YYYY-MM-DD)
health_notelongtextspecial_categorytakhr.special_readerwstrzymaneHealth condition or disability relevant to the workplace
stateselect (onboarding, active, offboarded)noneniehr.userjawnieEmployment status: onboarding, active, offboarded

hr_leave_request ​

A request for time off

Grupa odczytu: hr.user. Grupa zapisu: hr.user.

PoleRodzajKlasa danychDane osoboweGrupaAgenci widząOpis
employee_idref → hr_employeenoneniehr.userjawnieThe employee asking for time off
leave_kindselect (paid, unpaid, parental, study, other)confidential_hrtakhr.userwstrzymaneKind of leave: paid, unpaid, parental, study, other
start_ondateinternaltakhr.userzamaskowaneFirst day of absence (YYYY-MM-DD)
end_ondateinternaltakhr.userzamaskowaneLast day of absence (YYYY-MM-DD)
daysnumbernoneniehr.userjawnieWorking days requested
reasonlongtextconfidential_hrtakhr.managerwstrzymaneWhy the leave is requested
is_sick_leaveboolspecial_categorytakhr.special_readerwstrzymaneWhether the absence is due to illness
medical_notelongtextspecial_categorytakhr.special_readerwstrzymaneReference to the medical certificate, if any
stateselect (draft, requested, approved, refused)noneniehr.userjawnieRequest status: draft, requested, approved, refused

Przepływy pracy ​

hr_employee ​

AkcjaPrzenosiKto może uruchomićZatwierdzenie
hr_employee.activatestate: onboarding → activehr.managernie
hr_employee.offboardstate: active → offboardedhr.managertak

hr_leave_request ​

AkcjaPrzenosiKto może uruchomićZatwierdzenie
hr_leave_request.requeststate: draft → requestedhr.usernie
hr_leave_request.approvestate: requested → approvedhr.managertak
hr_leave_request.refusestate: requested → refusedhr.managertak

Grupy uprawnień ​

Grupy używane przez tę aplikację:

  • hr.manager
  • hr.special_reader
  • hr.user

Kroki zatwierdzania ​

Kroki, które agent może tylko zaproponować:

  • hr_employee.offboard
  • hr_leave_request.approve
  • hr_leave_request.refuse

Co agenci mogą, a czego nie mogą ​

Agent może odczytywać, wyszukiwać, tworzyć i aktualizować rekordy tej aplikacji oraz uruchamiać akcje niewymagające zatwierdzenia, w ramach grup uprawnień swojego tokenu.

Te kroki może tylko zaproponować, a człowiek musi je zatwierdzić: hr_employee.offboard, hr_leave_request.approve, hr_leave_request.refuse, hr_department.delete, hr_employee.delete, hr_leave_request.delete.

Dane osobowe są maskowane jako tokeny zastępcze: hr_department.head, hr_employee.name, hr_employee.job_title, hr_employee.work_email, hr_employee.work_phone, hr_employee.hired_on, hr_leave_request.start_on, hr_leave_request.end_on.

Te pola są całkowicie wstrzymane i niedostępne dla agentów: hr_employee.contract_type, hr_employee.private_email, hr_employee.private_phone, hr_employee.home_address, hr_employee.birth_date, hr_employee.national_id, hr_employee.emergency_contact, hr_employee.salary, hr_employee.bank_iban, hr_employee.union_member, hr_employee.work_permit_expiry, hr_employee.health_note, hr_leave_request.leave_kind, hr_leave_request.reason, hr_leave_request.is_sick_leave, hr_leave_request.medical_note.

Zależności ​

Brak.

Instalacja ​

Zainstaluj ją w aplikacji Customize (Marketplace) lub z wiersza poleceń:

bash
obop modules install-from hr

Wymaga bazy danych i uprawnień administratora.

Zbuduj własną ​

Przewodnik po modułach pokazuje, jak pisze się takie aplikacje