KY
kylesinlynn/student-management-addon-odoo16
A comprehensive Odoo 16 module for managing students and courses with advanced features including access control, website integration, and automated workflows.
Student Management Module
A comprehensive Odoo 16 module for managing students and courses with advanced features including access control, website integration, and automated workflows.
Features
Models
-
Student Model (
student.student)- Auto-generated student IDs (STU0001, STU0002, etc.)
- Personal information management
- Profile photo support
- Course enrollment tracking
- State management (Draft → Confirmed → Graduated)
- Email uniqueness validation
- Birth date validation (must be in the past)
-
Course Model (
student.course)- Course information management
- Unique course codes
- Student enrollment tracking
- Smart buttons for navigation
Access Control
- Student Manager Group: Full CRUD access to all records
- Student User Group: Read-only access
- Public read access for website display
User Interface
- Modern form and list views
- Smart buttons showing related records count
- State-based workflow buttons
- Profile photo display
- Course enrollment management
Website Integration
- Public route
/studentsdisplaying confirmed students - Course-based filtering
- Responsive design with Bootstrap
- Profile photo display
- Course badges
Business Logic
- Automatic student ID generation using sequences
- State workflow management
- Data validation constraints
- Many2many relationships between students and courses
Installation
- Copy the module to your Odoo addons directory
- Update the apps list in Odoo
- Install the "Student Management" module
- Assign users to the "Student Manager" group for full access
Usage
Managing Students
- Go to Student Management → Students
- Create new students with required information
- Use workflow buttons to change student states
- Enroll students in courses using the Courses tab
Managing Courses
- Go to Student Management → Courses
- Create courses with unique codes
- View enrolled students using smart buttons
- Manage course descriptions and details
Website Display
- Visit
/studentsto see public student directory - Filter by course using the dropdown
- Only confirmed students are displayed
Technical Details
Dependencies
base: Core Odoo functionalitywebsite: Website framework for public pages
File Structure
student_management/
├── __init__.py
├── __manifest__.py
├── README.md
├── controllers/
│ ├── __init__.py
│ └── main.py
├── data/
│ └── sequence.xml
├── models/
│ ├── __init__.py
│ ├── course.py
│ └── student.py
├── security/
│ ├── ir.model.access.csv
│ └── security.xml
├── templates/
│ └── website_templates.xml
└── views/
├── course_views.xml
├── menu.xml
└── student_views.xml
Key Features Implementation
- Sequential IDs: Using
ir.sequencewith prefix "STU" and 4-digit padding - Constraints: Python constraints for email uniqueness and birth date validation
- Access Control: Groups and record rules for proper security
- Website: HTTP controller with QWeb templates for public display
- Smart Buttons: Statistical buttons showing related record counts
Author
Kyle Sin Lynn
Version
16.0.1.0.0
License
This module is licensed under the AGPL License.
On this page
Contributors
Other
Created July 12, 2025
Updated February 8, 2026