Skip to main content
Odoo 17 / 18 / 19 β€’ HR & Time Off

Leave Management Employees Actually Love

A self-service portal that adds a dedicated "My Time Off" card to the Odoo portal home β€” letting employees request, track, and manage all their leaves without ever touching the backend.

6+
Portal Routes
11
Models Secured
v17-19
Odoo Versions
HR Time Off Portal β€” self-service leave requests and balance tracking for employees
Leave Approved
3.0 Days
Balance
14 Days Left
Portal Dashboard Card β€” The headline feature: a first-class "My Time Off" card appears on the Odoo portal home page alongside Invoices, Orders, and other native cards. Employees get instant, one-click access to all their leave management tools.
What's Included

Every Feature Employees Need

Designed from the ground up for the Odoo portal β€” no backend access required, no IT tickets for balance queries, no email chains for leave requests.

NEW

Portal Dashboard Card

A dedicated 'My Time Off' card appears on the Odoo portal home page, giving employees instant access without navigating menus.

Visual Leave Balances

Color-coded progress bars per leave type show remaining days at a glance. Employees always know exactly how much time off they have left.

Smart Overlap Validation

The system detects conflicting requests before submission and alerts the employee, preventing double-bookings and approval frustrations.

Calendar View

A monthly calendar shows all approved and pending leaves in a visual grid, making it easy to plan time off around team schedules.

Real-Time Balance Preview

As employees fill in the date range on the request form, their remaining balance updates live β€” no surprises after submission.

Fully Mobile Responsive

Every page β€” dashboard, calendar, request form, and history β€” is built with Bootstrap 5 and works perfectly on any screen size.

Screenshots

See It in Action

Every screen built for clarity β€” clean layouts, sensible defaults, and enough information density without cognitive overload. Real screenshots from a live Odoo instance.

Dashboard β€” Leave Balances & Requests
Portal Home showing the My Time Off card alongside Invoices and Addresses on the Odoo portal home page

Portal Home β€” Dashboard Card

New leave request 3-step form: select leave type, pick dates, add details

New Request β€” 3-Step Form

Request detail page showing the approval timeline: Submitted, In Review, Approved

Request Detail β€” Approval Timeline

Setup

Up and Running in Minutes

No custom configuration wizards. No database migrations. Install, link users, and your employees have a fully functional time-off portal.

01

Install the Module

Install hr_time_off_portal from the Odoo Apps menu. No configuration wizards β€” the portal routes and dashboard card activate immediately.

02

Link Employees to Portal Users

Each employee record must have a linked portal user. Odoo's standard 'Grant Portal Access' flow handles this in a few clicks.

03

Configure Leave Allocations

Set up leave types and allocations as you normally would in the HR module. The portal reads directly from these records.

04

Employees Self-Serve

Employees log into the Odoo portal, click 'My Time Off', and manage all their leaves without any backend access.

The Dashboard

Everything at a Glance

The main dashboard surface is designed to answer three questions instantly: how much time off do I have, what requests are pending, and what's coming up. No more emailing HR to find out your balance.

  • Leave balance cards per type with color-coded progress bars
  • Recent requests with live status badges (Draft / Confirmed / Approved / Refused)
  • Quick-action buttons: New Request, View Calendar, Full History
  • Upcoming approved leaves highlighted in a compact preview
  • Responsive two-column layout on tablet and desktop
Dashboard showing leave balances with color-coded progress bars and quick action buttons
New leave request 3-step guided form showing leave type selection, date range picker, and details input
Request Form

Three Steps, Zero Confusion

The new request form guides employees through three clear steps: choose the leave type, select the date range, and add an optional reason. Live validation catches issues before they reach the approver.

  • Step 1: Select leave type β€” only types with remaining allocation shown
  • Step 2: Pick date range β€” calendar picker with working day count
  • Step 3: Add reason β€” optional free-text field
  • Real-time balance deduction preview below the date picker
  • Overlap detection β€” warning shown if dates conflict with existing request
  • Submit creates an hr.leave record in Odoo for normal approval flow
Request Detail

Full Transparency on Every Request

The request detail page shows employees the complete lifecycle of their leave β€” from submission through approval (or refusal) β€” with enough context to understand exactly where it stands and why.

  • Status timeline: Draft β†’ Confirmed β†’ Validated (or Refused)
  • Approver name and decision timestamp
  • Manager refusal reason displayed clearly
  • Cancel button for pending requests (Draft / Confirmed)
  • Back navigation to dashboard and history
  • Leave type, dates, duration, and reason summary
Request detail page showing approval timeline with Submitted, In Review, and Approved stages
Technical Reference

Portal Routes

All routes require an authenticated portal user linked to an employee record. Access control is enforced at the controller level via Odoo's portal security model.

MethodPath
GET/my/timeoff
GET/my/timeoff/new
POST/my/timeoff/submit
GET/my/timeoff/calendar
GET/my/timeoff/<id>
GET/my/timeoff/history
GET/my/timeoff/cancel/<id>
Built With

Technology Stack

Standard Odoo stack β€” no external dependencies, no npm packages, no runtime surprises. If Odoo runs, this module runs.

Python 3.10+QWeb TemplatesVanilla JavaScriptBootstrap 5PostgreSQLOdoo Portal SecurityOdoo 17 / 18 / 19LGPL-3

11 Models, Fully Secured

Portal access rules are defined for all 11 Odoo models touched by this module. Portal users only ever see their own data β€” enforced at the ORM level, not just the controller.

Get Started

Give Your Employees the Portal They Deserve

Install HR Time Off Portal for Odoo 17, 18 or 19 from the Apps store, link your employees to their portal users, and you're done. Free your HR team from leave balance emails β€” forever.

LGPL-3 License
Odoo 17 / 18 / 19
Community & Enterprise
No Extra Dependencies