HR

Salariés et congés

Place de marchéÉquipes et projetsVersion 0.1.0manifest

À quoi elle sert ​

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.

Ce que fait et ne fait pas le paquet ​

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.

Modèles ​

hr_department ​

A team or department of the company

Groupe de lecture: hr.user. Groupe d'écriture: hr.manager.

ChampTypeClasse de donnéesDonnées personnellesGroupeVu par les agentsDescription
nametextnonenonhr.useren clairDepartment name
headtextpublic_directoryouihr.usermasquéName of the department head
cost_centretextnonenonhr.useren clairCost centre code used by finance

hr_employee ​

A person employed by the company

Groupe de lecture: hr.user. Groupe d'écriture: hr.manager.

ChampTypeClasse de donnéesDonnées personnellesGroupeVu par les agentsDescription
nametextpublic_directoryouihr.usermasquéFull name
job_titletextpublic_directoryouihr.usermasquéJob title
work_emailtextpublic_directoryouihr.usermasquéWork email address
work_phonetextpublic_directoryouihr.usermasquéWork phone number
department_idref → hr_departmentnonenonhr.useren clairThe department the person belongs to
reports_to_idref → hr_employeenonenonhr.useren clairThe person's line manager
hired_ondateinternalouihr.usermasquéFirst day of employment (YYYY-MM-DD)
contract_typeselect (permanent, fixed_term, contractor, intern)confidential_hrouihr.managernon communiquéType of employment contract: permanent, fixed_term, contractor, intern
private_emailtextconfidential_hrouihr.managernon communiquéPrivate email address
private_phonetextconfidential_hrouihr.managernon communiquéPrivate phone number
home_addresslongtextconfidential_hrouihr.managernon communiquéPrivate home address
birth_datedateconfidential_hrouihr.managernon communiquéDate of birth (YYYY-MM-DD)
national_idtextconfidential_hrouihr.managernon communiquéNational identity or social security number
emergency_contacttextconfidential_hrouihr.managernon communiquéName and phone of the person to call in an emergency
salarymoneyfinancialouihr.managernon communiquéGross annual salary (minor currency units, e.g. cents)
bank_ibantextfinancialouihr.managernon communiquéBank account salary is paid into
union_memberboolspecial_categoryouihr.special_readernon communiquéWhether the person is a trade union member
work_permit_expirydatespecial_categoryouihr.special_readernon communiquéDate the work permit expires, for non-citizens (YYYY-MM-DD)
health_notelongtextspecial_categoryouihr.special_readernon communiquéHealth condition or disability relevant to the workplace
stateselect (onboarding, active, offboarded)nonenonhr.useren clairEmployment status: onboarding, active, offboarded

hr_leave_request ​

A request for time off

Groupe de lecture: hr.user. Groupe d'écriture: hr.user.

ChampTypeClasse de donnéesDonnées personnellesGroupeVu par les agentsDescription
employee_idref → hr_employeenonenonhr.useren clairThe employee asking for time off
leave_kindselect (paid, unpaid, parental, study, other)confidential_hrouihr.usernon communiquéKind of leave: paid, unpaid, parental, study, other
start_ondateinternalouihr.usermasquéFirst day of absence (YYYY-MM-DD)
end_ondateinternalouihr.usermasquéLast day of absence (YYYY-MM-DD)
daysnumbernonenonhr.useren clairWorking days requested
reasonlongtextconfidential_hrouihr.managernon communiquéWhy the leave is requested
is_sick_leaveboolspecial_categoryouihr.special_readernon communiquéWhether the absence is due to illness
medical_notelongtextspecial_categoryouihr.special_readernon communiquéReference to the medical certificate, if any
stateselect (draft, requested, approved, refused)nonenonhr.useren clairRequest status: draft, requested, approved, refused

Flux de travail ​

hr_employee ​

ActionTransitionQui peut l'exécuterApprobation
hr_employee.activatestate: onboarding → activehr.managernon
hr_employee.offboardstate: active → offboardedhr.manageroui

hr_leave_request ​

ActionTransitionQui peut l'exécuterApprobation
hr_leave_request.requeststate: draft → requestedhr.usernon
hr_leave_request.approvestate: requested → approvedhr.manageroui
hr_leave_request.refusestate: requested → refusedhr.manageroui

Groupes de permissions ​

Groupes utilisés par cette application :

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

Étapes d'approbation ​

Étapes qu'un agent ne peut que proposer :

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

Ce que les agents peuvent et ne peuvent pas faire ​

Un agent peut lire, rechercher, créer et modifier les enregistrements de cette application, et exécuter les actions qui ne requièrent pas d'approbation, dans les limites des groupes de permissions de son jeton.

Il ne peut que proposer ces étapes, qu'une personne doit approuver : hr_employee.offboard, hr_leave_request.approve, hr_leave_request.refuse, hr_department.delete, hr_employee.delete, hr_leave_request.delete.

Les données personnelles sont masquées sous forme de jetons de substitution : 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.

Ces champs ne sont pas communiqués aux agents : 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.

Dépendances ​

Aucune.

Installation ​

Installez-la depuis l'application Customize (Place de marché), ou en ligne de commande :

bash
obop modules install-from hr

Nécessite une base de données et des droits d'administrateur.

Créer la vôtre ​

Le guide des modules montre comment sont écrites les applications de ce type