| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Employees (hr)
• Attendances (hr_attendance) • Discuss (mail) • Time Off (hr_holidays) • Calendar (calendar) |
| Community Apps Dependencies | Show |
| Lines of code | 7369 |
| Technical Name |
eh_hr_dashboard |
| License | LGPL-3 |
| Website | https://www.erpheritage.com.au/ |
| Versions | 16.0 17.0 18.0 19.0 |
EH HR Dashboard
Your HR command center, one click deep.
Why this module
EH HR Dashboard
Server-side aggregation
All eleven KPIs come back in a single ORM call instead of one searchCount per tile. The board loads as one round trip, and the counting happens on the server where it belongs.
Counts you are allowed to see
Aggregation runs under the calling user's record rules, not as a superuser. The numbers on the board match what that user could see if they opened each list themselves.
Every tile is a way in
Each KPI carries the model and domain it counts, so a click opens the same pre-filtered list. The dashboard is a starting point, never a dead end.
Day in the life
Open it first thing
An HR officer opens the Dashboard from the HR menu. Today's pulse shows who is present, on leave, absent, and which days have anomalies to review. The middle group shows leave, overtime, loan and approval requests waiting on them, each a click from the right list. The workforce group shows headcount, new hires this month, and approved leave for the month. One refresh button reloads the whole board from a single call. Tiles for modules that are not installed simply show a dash instead of breaking the screen.
Edge cases
The cases most modules quietly ignore.
In the shipped code today, each one a place where a cheaper module silently does the wrong thing.
Overtime, loan and approval-request models are not hard dependencies. If a module is not installed, its tile counts to None and renders as a dash rather than raising, so one missing add-on never breaks the whole board.
Today's attendance breakdown is one grouped read by status. If read_group is unavailable or its signature differs, the code falls back to a guarded count per status and still returns a complete result.
Every count runs under the calling user's access, so a user without rights to a model or to certain records sees only what their rules permit, and an unreadable model yields a dash, not an error.
A tile whose value is None is marked non-clickable and openKpi returns early, so you can never open a list for a count the board could not produce.
The aggregation is wrapped so any failure returns an empty result the board can render, and each tile count is guarded individually, keeping the dashboard from throwing in front of the user.
What is inside
Built to do the job, end to end.
- What it adds. One abstract aggregation model, eh.hr.dashboard, with no stored fields and no business data of its own. It exposes get_dashboard_data, which returns all eleven KPIs as integers or None in a single call.
- The screen. An OWL client action registered as eh_hr_dashboard.main, reached from a Dashboard menu under the HR Platform root. The menu is restricted to the HR officer group.
- How it draws. It composes the shared HrCard and HrStat components from the platform core kit into three grouped sections: Today, Pending your action, and Workforce. A single refresh button reloads the board.
- What it reads. Attendance days for present, leave, absent and anomaly counts; leave requests for submitted and approved; employees for headcount and new hires; and, when present, overtime, loan and approval-request models. No new tables, no duplicated data.
Honest about the edges
What this does not do, so nothing surprises you.
- This is a read-only overview. It surfaces and links to records; it does not create, edit, approve or post anything from the dashboard itself.
- It owns no business models. Every number is read from the platform modules beside it, so a KPI only appears with real data once the module that produces it is installed.
- Counts refresh on load or when you press Refresh. It is not a live-streaming or auto-polling board.
- The Today attendance figures depend on eh_hr_attendance_pro having computed day rows; days that have not been computed are not counted.
- It is a backend client action for HR officers, not an employee self-service or portal page.
- Targets Odoo 18 Community. Copy here describes the Odoo 18 build.
odoo 18 hr dashboard, odoo hr overview dashboard, employee headcount kpi odoo, attendance dashboard odoo community, leave approval dashboard odoo, hr command center odoo, owl backend dashboard odoo 18, pending approvals widget odoo hr, new hires this month report odoo, self hosted odoo hr analytics
Need this fitted to the way you work?
ERP Heritage delivers end to end Odoo work: Odoo Implementation, Customization and Development, Integration, Migration, Consultation, Support and Training. We help teams put this module into production, shape it to their process, and keep it running.
We work with businesses across Australia (Melbourne, Sydney, Brisbane, Perth, Adelaide, Canberra) and the Middle East (Dubai, Abu Dhabi, Riyadh, Jeddah, Doha, Kuwait City, Muscat). Start a conversation at erpheritage.com.au or email info@erpheritage.com.au.
Languages
Available in 19 languages
The interface ships translated out of the box. Switch language in Odoo and the fields, menus, and messages follow.
Please log in to comment on this module