HR Course Management¶
Overview¶
The HR Course module provides a structured system for managing employee training courses. HR managers define course templates with categories and content, then schedule specific instances of those courses with dates, costs, attendees, and instructors. Each scheduled course moves through a state machine from draft to completion, with attendee results (passed/failed/absent) tracked and validated before a course can be finalized. Employees can view their own course history from their employee record.
Last Updated: March 2026 Target Audience: HR Managers, All Employees
Navigation¶
Courses and Courses Schedule are visible only to HR Managers. Course Categories is found under the main HR Configuration menu.
Course Categories¶
Categories are simple labels used to organize courses into groups. Each category has a unique name.
Menu path: HR > Configuration > Course Categories
| Field | What It Means | Example |
|---|---|---|
| Course category | Name of the category (must be unique) | "Safety Training" |
Set up categories first
Create your categories before creating courses. Common categories at Scott Recycling might include Safety Training, Equipment Certification, Compliance, and Professional Development.
Courses (Templates)¶
A course record is the reusable template that defines what a training course covers. It does not have dates or attendees -- those belong to the Course Schedule. Think of a course as the "what" and the schedule as the "when."
Menu path: HR > Courses > Courses
Course Fields¶
| Field | What It Means | Example |
|---|---|---|
| Name | Title of the course | "Forklift Operator Certification" |
| Category | The course category (required) | "Equipment Certification" |
| Has Permanence | Whether the course certification has an expiration/renewal period | Checked |
| Permanence Time | How long the certification is valid (only visible when Has Permanence is checked) | "12 months" |
Course Tabs¶
| Tab | What It Contains |
|---|---|
| Content | Rich-text description of the course material and curriculum |
| Objective | Rich-text description of learning objectives and goals |
| Evaluation criteria | Rich-text description of how attendees will be assessed |
| Schedules | Inline list of all scheduled instances of this course (name, cost, authorized by, dates, state) |
Creating a Course¶
- Navigate to HR > Courses > Courses
- Click New
- Enter the Course Name
- Select or create a Category
- If the training has an expiration, check Has Permanence and enter the Permanence Time (e.g., "6 months", "1 year")
- Fill in the Content, Objective, and Evaluation criteria tabs as needed
- Save
Courses have chatter
Course records include the Odoo chatter (messages, followers, activities). Use this to discuss course content updates, attach reference documents, or schedule follow-up activities.
Course Schedule¶
A course schedule is a specific instance of a course -- the actual training event with dates, cost, location, instructor, and attendees. This is where all the day-to-day course management happens.
Menu path: HR > Courses > Courses Schedule
Schedule Fields¶
| Field | What It Means | Example |
|---|---|---|
| Name | Title for this specific session | "Forklift Cert -- March 2026" |
| Course | Link to the parent course template (required) | "Forklift Operator Certification" |
| Course Cost | Monetary cost of running this session (required) | $500.00 |
| Currency | Currency for the cost (defaults to company currency; only visible with multi-currency enabled) | USD |
| Authorized by | Employee who authorized this training (required) | "Jane Smith" |
| Training company | External company providing the training | "SafetyFirst Training LLC" |
| Instructor | One or more instructors (displayed as tags) | "John Doe, Maria Garcia" |
| Place | Location where the training takes place | "Warehouse B Conference Room" |
| Start Date | When the training begins (locked after draft) | 2026-03-15 |
| End Date | When the training ends (must be on or after start date; locked after draft) | 2026-03-16 |
| Comment | General comments about this session | "Rescheduled from February" |
Dates lock after Draft
The Start Date, End Date, and Authorized by fields become read-only once you move the schedule out of Draft. Make sure these are correct before advancing to the next stage.
Schedule Tabs¶
| Tab | When Visible | What It Contains |
|---|---|---|
| Attendees | Draft, Waiting Attendees, Cancelled | List of employees assigned to attend this session |
| Course Results | In Progress, In Validation, Completed | Per-attendee results (passed/failed/absent/pending) |
| Internal notes | Always (HR Managers only) | Private notes visible only to HR managers |
Status Workflow¶
Every course schedule follows a five-stage workflow. Only HR Managers can advance stages using the buttons in the form header.
Draft --> Waiting Attendees --> In Progress --> In Validation --> Completed
|
+--> Cancelled (from any non-completed stage)
Any stage can be reset Back to Draft (with confirmation)
Stage Details¶
| Stage | What Happens | Available Actions |
|---|---|---|
| Draft | Initial setup. Set dates, cost, location, instructor, and authorized-by. | Assign attendees (advances to Waiting Attendees), Cancel Course, Back to Draft |
| Waiting Attendees | Add employees to the attendee list. This is the only stage where the attendee list is editable. | Start Course (advances to In Progress), Cancel Course, Back to Draft |
| In Progress | Course is actively running. Attendee records are created automatically from the attendee list. If an employee was removed from the list, they are archived and a log message is posted. | Rate Course (advances to In Validation), Cancel Course, Back to Draft |
| In Validation | Rate each attendee's result. The attendee result list becomes editable. Use "Pass everybody" for quick bulk grading. | Complete Course (advances to Completed), Cancel Course, Back to Draft |
| Completed | Final state. All results are locked. The course is done. | None (terminal state) |
| Cancelled | Course was cancelled. Shown with red label. | Back to Draft |
Transition: Waiting Attendees to In Progress¶
When you click Start Course, the system automatically:
- Creates an attendee record (
hr.course.attendee) for each employee in the attendee list who does not already have one - Archives (soft-deletes) attendee records for any employees who were removed from the list since the last transition
- Posts a chatter message listing any removed employees
Transition: In Validation to Completed¶
When you click Complete Course, the system checks that every active attendee has a result other than "pending." If any attendee still has a pending result, the system blocks completion with a validation error.
All results must be set before completing
You cannot complete a course while any attendee has a "Pending" result. Set every attendee to Passed, Failed, or Absent first. Use the Pass everybody button if all attendees passed.
Managing Attendees¶
Adding Attendees¶
- Open the course schedule record
- Click Assign attendees to move from Draft to Waiting Attendees
- In the Attendees tab, add employees to the list
- Click Start Course when the roster is finalized
Removing Attendees¶
If you need to remove someone after the course has started:
- Remove the employee from the Attendees list (the many2many field)
- The next time Start Course is triggered (or re-triggered), their attendee record will be archived
- A chatter message will document who was removed
Recording Results¶
Setting Individual Results¶
- Advance the course to In Validation by clicking Rate Course
- In the Course Results tab, set each attendee's result using the inline dropdown
| Result | What It Means | Row Color |
|---|---|---|
| Passed | Employee successfully completed the course | Green |
| Failed | Employee did not meet the evaluation criteria | Red |
| Absent | Employee did not attend | Red |
| Pending | Not yet graded (default) | Normal |
Bulk Pass All Attendees¶
- In the In Validation stage, click the Pass everybody button (top-right of the Course Results tab)
- All attendees are set to Passed
- Click Complete Course to finalize
Use 'Pass everybody' then adjust exceptions
If most attendees passed, click Pass everybody first, then manually change the few who failed or were absent. This is faster than setting each one individually.
Employee Course History¶
Each employee record includes a Courses stat button (graduation cap icon) that shows how many courses they have attended.
Viewing an Employee's Courses¶
- Open the employee's record (HR > Employees)
- Click the Courses button in the stat button bar (shows the count of course attendee records)
- The list view shows all course attendee records for that employee with columns:
| Column | What It Shows |
|---|---|
| Course Schedule | Name of the scheduled course |
| State | Current state of the course schedule |
| Course Start | Start date |
| Course End | End date |
| Result | Passed, Failed, Absent, or Pending |
Row colors in the employee's course list:
- Green: Course is not cancelled and result is Passed
- Red: Course is not cancelled and result is Failed or Absent
- Muted/Gray: Course was cancelled
Course Attendee Record¶
Each attendee record tracks one employee's participation in one scheduled course.
| Field | What It Means |
|---|---|
| Course Schedule | The scheduled course this record belongs to |
| Employee | The attending employee |
| Course Start | Start date (inherited from the schedule) |
| Course End | End date (inherited from the schedule) |
| State | Current state (inherited from the schedule) |
| Result | Passed, Failed, Absent, or Pending |
| Active | Whether this record is active (archived records are hidden by default) |
Attendee records are created automatically
You do not create attendee records manually. They are generated when the course schedule transitions from Waiting Attendees to In Progress. The results are then edited inline during the In Validation stage.
Security¶
Access Rights¶
| Model | Regular Employee | HR Manager |
|---|---|---|
| Course (template) | Read only | Full access (create, read, write, delete) |
| Course Schedule | Read only | Full access |
| Course Attendee | Read only | Full access |
| Course Category | Read only | Full access |
Record Rules¶
| Rule | Who It Applies To | What It Does |
|---|---|---|
| Course Schedule -- Employee | All internal users | Can only see course schedules where they are in the attendee list |
| Course Schedule -- Manager | HR Managers | Can see all course schedules |
| Course Attendee -- Employee | All internal users | Can only see attendee records where they are the employee |
| Course Attendee -- Manager | HR Managers | Can see all attendee records |
Regular employees see only their own courses
Non-manager employees can only view course schedules they are assigned to and their own attendee results. They cannot create, edit, or delete any course records. The menu items for Courses and Courses Schedule are also restricted to HR Managers.
Common Tasks Summary¶
| Task | Steps |
|---|---|
| Create a course category | HR > Configuration > Course Categories > New > Enter name > Save |
| Create a course template | HR > Courses > Courses > New > Fill in name, category, content > Save |
| Schedule a training session | HR > Courses > Courses Schedule > New > Select course, set dates/cost/authorized by > Save |
| Add attendees | Open schedule > Assign attendees > Add employees in Attendees tab > Start Course |
| Record results | Open schedule in In Progress > Rate Course > Set each attendee result > Complete Course |
| Pass everyone at once | In Validation stage > Click "Pass everybody" > Complete Course |
| View an employee's training history | Open employee record > Click the Courses stat button |
| Cancel a course | Open schedule > Click "Cancel Course" (available in any stage except Completed and Cancelled) |
| Reopen a cancelled course | Open cancelled schedule > Click "Back to Draft" (confirm the prompt) |
Questions? Contact your HR administrator.