Absence approvals
Overview
This page is the inbox for open absence requests. It shows requests in the state "requested" only — everything already decided disappears from it. Compared with the general list under Absences it adds the two things that make a Monday morning: a multiple selection and a remaining-balance preview.
The preview is the actual point. Next to every request stands this year's leave balance before and after this decision ("12 → 7"). If the value would turn negative, it is shown in red — then you are approving more than the account holds. For requests without a leave account, sick leave for example, a dash is shown.
If nothing is open, the page says "Nothing to decide". Up to 100 open requests are loaded; the balances are fetched in a single call for all employees involved.
Core tasks
Select. A checkbox per row, one in the table header for all of them. The two buttons on top carry the number of currently selected requests and stay disabled without a selection.
Approve. "Approve" decides the selection right away, without a confirmation step. The list then reloads and the decided rows are gone.
Reject. "Reject" opens a dialog with a field for the reason. The text is optional but is shown to the requester — a full sentence is worth more here than a single word. The same reason goes to all selected requests.
Read partial results. Every request is checked and decided individually. If one drops out — because it was cancelled in the meantime, the account does not suffice, or the permission is missing for exactly that employee — the others stay decided. The page then reports "x decided, y left open" as a notice, not as an error; the requests left open remain in the list and can be checked individually under Absences.
Fields in detail
The page itself has only one input form: the reject dialog. Everything else is selection.
| Field | Required | Values / format | What it does |
|---|---|---|---|
Selection ulids | yes | 1 to 100 requests | Which requests are decided. The checkboxes of the list fill this field; more than 100 at once is rejected. |
Decision approve | no | yes/no, defaults to approve | Which of the two buttons was pressed: approve or reject. |
Reason decisionNote | no | text | Recorded on the request and shown to the requester. Applies to all selected requests at once. |
Columns of the list
| Column | What it shows |
|---|---|
| Employee | Who filed the request. |
| Period | First and last day of the absence. |
| Type | The absence type, vacation or sick leave for instance. |
| Working days | The counted working days according to the employee's calendar — public holidays and days off are already out. |
| Remaining leave | This year's balance before and after this approval. Red if it would turn negative. |
Settings & permissions
- Module
module.hrmust be active. hr.absence.approveopens the page and is the permission decisions are made with. It is
checked per request: whoever may only decide for their own team also only decides for their own team in a bulk action — the remaining requests come back as "left open".
- Reading the list and the balances needs the ordinary absence read permission; whoever may not
approve never reaches this page in the first place.
FAQ & troubleshooting
A request stays despite "Approve". Then it did not go through: cancelled in the meantime, already decided, the leave account does not suffice, or the permission is missing for exactly that employee. The message names the count; the reason is shown by the individual case under Absences.
The remaining leave shows a dash. There is no leave account for that employee in the current year — with sick leave that is the normal case.
The remaining balance is red. The approval would overdraw the account. Whether it goes through anyway is decided by the rule of the absence type; if it is ruled out, the request comes back as "left open".
More than 100 requests at once. The bulk action is capped on purpose. Select them in two rounds.