HR

Mitarbeitende und Abwesenheiten

MarktplatzPersonal und ProjekteVersion 0.1.0manifest

Wofür sie gedacht ist ​

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.

Was das Paket leistet und was nicht ​

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.

Modelle ​

hr_department ​

A team or department of the company

Lesegruppe: hr.user. Schreibgruppe: hr.manager.

FeldArtDatenklassePersonenbezogene DatenGruppeAgenten sehenBeschreibung
nametextnoneneinhr.userim KlartextDepartment name
headtextpublic_directoryjahr.usermaskiertName of the department head
cost_centretextnoneneinhr.userim KlartextCost centre code used by finance

hr_employee ​

A person employed by the company

Lesegruppe: hr.user. Schreibgruppe: hr.manager.

FeldArtDatenklassePersonenbezogene DatenGruppeAgenten sehenBeschreibung
nametextpublic_directoryjahr.usermaskiertFull name
job_titletextpublic_directoryjahr.usermaskiertJob title
work_emailtextpublic_directoryjahr.usermaskiertWork email address
work_phonetextpublic_directoryjahr.usermaskiertWork phone number
department_idref → hr_departmentnoneneinhr.userim KlartextThe department the person belongs to
reports_to_idref → hr_employeenoneneinhr.userim KlartextThe person's line manager
hired_ondateinternaljahr.usermaskiertFirst day of employment (YYYY-MM-DD)
contract_typeselect (permanent, fixed_term, contractor, intern)confidential_hrjahr.managerzurückgehaltenType of employment contract: permanent, fixed_term, contractor, intern
private_emailtextconfidential_hrjahr.managerzurückgehaltenPrivate email address
private_phonetextconfidential_hrjahr.managerzurückgehaltenPrivate phone number
home_addresslongtextconfidential_hrjahr.managerzurückgehaltenPrivate home address
birth_datedateconfidential_hrjahr.managerzurückgehaltenDate of birth (YYYY-MM-DD)
national_idtextconfidential_hrjahr.managerzurückgehaltenNational identity or social security number
emergency_contacttextconfidential_hrjahr.managerzurückgehaltenName and phone of the person to call in an emergency
salarymoneyfinancialjahr.managerzurückgehaltenGross annual salary (minor currency units, e.g. cents)
bank_ibantextfinancialjahr.managerzurückgehaltenBank account salary is paid into
union_memberboolspecial_categoryjahr.special_readerzurückgehaltenWhether the person is a trade union member
work_permit_expirydatespecial_categoryjahr.special_readerzurückgehaltenDate the work permit expires, for non-citizens (YYYY-MM-DD)
health_notelongtextspecial_categoryjahr.special_readerzurückgehaltenHealth condition or disability relevant to the workplace
stateselect (onboarding, active, offboarded)noneneinhr.userim KlartextEmployment status: onboarding, active, offboarded

hr_leave_request ​

A request for time off

Lesegruppe: hr.user. Schreibgruppe: hr.user.

FeldArtDatenklassePersonenbezogene DatenGruppeAgenten sehenBeschreibung
employee_idref → hr_employeenoneneinhr.userim KlartextThe employee asking for time off
leave_kindselect (paid, unpaid, parental, study, other)confidential_hrjahr.userzurückgehaltenKind of leave: paid, unpaid, parental, study, other
start_ondateinternaljahr.usermaskiertFirst day of absence (YYYY-MM-DD)
end_ondateinternaljahr.usermaskiertLast day of absence (YYYY-MM-DD)
daysnumbernoneneinhr.userim KlartextWorking days requested
reasonlongtextconfidential_hrjahr.managerzurückgehaltenWhy the leave is requested
is_sick_leaveboolspecial_categoryjahr.special_readerzurückgehaltenWhether the absence is due to illness
medical_notelongtextspecial_categoryjahr.special_readerzurückgehaltenReference to the medical certificate, if any
stateselect (draft, requested, approved, refused)noneneinhr.userim KlartextRequest status: draft, requested, approved, refused

Workflows ​

hr_employee ​

AktionBewegtWer sie ausführen darfFreigabe
hr_employee.activatestate: onboarding → activehr.managernein
hr_employee.offboardstate: active → offboardedhr.managerja

hr_leave_request ​

AktionBewegtWer sie ausführen darfFreigabe
hr_leave_request.requeststate: draft → requestedhr.usernein
hr_leave_request.approvestate: requested → approvedhr.managerja
hr_leave_request.refusestate: requested → refusedhr.managerja

Berechtigungsgruppen ​

Von dieser App verwendete Gruppen:

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

Freigabeschritte ​

Schritte, die ein Agent nur vorschlagen kann:

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

Was Agenten tun können und was nicht ​

Ein Agent kann Datensätze dieser App lesen, durchsuchen, anlegen und aktualisieren sowie Aktionen ausführen, die keine Freigabe brauchen, und zwar innerhalb der Berechtigungsgruppen seines Tokens.

Diese Schritte kann er nur vorschlagen, und eine Person muss sie freigeben: hr_employee.offboard, hr_leave_request.approve, hr_leave_request.refuse, hr_department.delete, hr_employee.delete, hr_leave_request.delete.

Personenbezogene Daten werden als Platzhalter maskiert: 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.

Diese Felder werden Agenten vollständig vorenthalten: 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.

Abhängigkeiten ​

Keine.

Installation ​

Installieren Sie sie in der App Customize (Marktplatz) oder über die Kommandozeile:

bash
obop modules install-from hr

Erfordert eine Datenbank und Administratorrechte.

Selbst bauen ​

Der Modulleitfaden zeigt, wie Apps wie diese geschrieben werden