Module Template Generator
The Module Template Generator automates the creation of new Odoo modules by generating a complete, ready-to-use module structure. It sets up the base directory with all necessary subfolders and files such as models, views, security configurations, and initialization scripts.
How to Use
- Right-click on your target folder in the PyCharm project explorer
- Navigate to Odoo Module Templates in the context menu
- Select the desired module template
- Enter the name of your new module and press Enter
- You can use the following keyboard shortcuts to quickly access specific Odoo module templates
Available Templates
Basic Odoo Module
A minimal module with essential files:
__init__.py
and__manifest__.py
- Simple example model
- Basic CRUD methods
- Form and tree views
- Minimal security
- Standard folder layout
Ideal for:
- Prototypes
- Learning
- Simple modules
Shortcut:
ctrl shift B
(Default)meta shift B
(Mac OS X)
Expected Structure
basic_module
├── __init__.py
├── __manifest__.py
├── models
│ ├── basic_module_sample.py
│ └── __init__.py
├── security
│ └── ir.model.access.csv
└── views
└── basic_module_sample_views.xml
Advanced Odoo Module
A comprehensive module with:
- Complex models (multiple field types, mixins)
- Diverse views (form, tree, kanban, calendar)
- Advanced XML templates
- Enhanced security (groups, record rules)
- Demo data
- Scheduled actions
- Website/static asset support
- Full documentation
Suitable for:
- Production modules
- Team projects
Expected Structure
advance_module
├── data
│ ├── ir_cron_data.xml
│ └── ir_sequence_data.xml
├── demo
│ └── advance_module_sample_data.xml
├── __init__.py
├── __manifest__.py
├── models
│ ├── advance_module_sample.py
│ └── __init__.py
├── security
│ └── ir.model.access.csv
├── static
│ ├── description
│ └── src
│ ├── css
│ ├── js
│ └── xml
└── views
├── advance_module_sample_views.xml
└── templates.xml
OWL Basic Module
A minimal OWL (Odoo Web Library) module with:
- Example JS/TS components
- Templates
- Manifest entries for JS/CSS loading
- QWeb integration
Great for:
- Simple widgets
- Buttons
- UI enhancements
Expected Structure
owl_basic
├── data
│ ├── ir_cron_data.xml
│ └── ir_sequence_data.xml
├── demo
│ └── owl_basic_sample_data.xml
├── __init__.py
├── __manifest__.py
├── models
│ ├── __init__.py
│ └── owl_basic_sample.py
├── security
│ └── ir.model.access.csv
├── static
│ └── src
│ ├── js
│ │ └── client_action.js
│ └── xml
│ └── client_action.xml
└── views
└── owl_basic_sample_views.xml
OWL Advanced Module
A rich OWL module scaffold featuring:
- Multiple components
- Parent-child relationships
- State management
- Advanced asset bundles
- Backend controllers
- QWeb templates
- Demo UI data
- Documentation
Ideal for:
- Interactive dashboards
- Client features
Expected Structure
owl_advance
├── controllers
│ ├── __init__.py
│ └── main.py
├── data
│ ├── ir_cron_data.xml
│ └── ir_sequence_data.xml
├── demo
│ └── owl_advance_sample_data.xml
├── __init__.py
├── __manifest__.py
├── models
│ ├── __init__.py
│ └── owl_advance_sample.py
├── security
│ └── ir.model.access.csv
├── static
│ └── src
│ ├── js
│ │ └── client_action.js
│ └── xml
│ └── client_action.xml
└── views
└── owl_advance_sample_views.xml
Theme Module
A website theme scaffold with:
- QWeb templates
- CSS, JS, images, and fonts folders
- Asset bundles
- Sample snippets
- Optional demo data
Perfect for:
- Reusable website themes
- Design components
Expected Structure
website_theme
├── __init__.py
├── __manifest__.py
├── static
│ ├── description
│ └── src
└── views
├── footer_template.xml
├── header_template.xml
└── layout_templates.xml
Systray Module
Adds custom icons and menus to the Odoo web client's systray:
- OWL/JS systray components
- QWeb templates
- Manifest setup
- Backend controllers
- Lightweight model/controller logic
Useful for:
- Notifications
- Quick actions
- Systray utilities
Expected Structure
systray_module
├── __init__.py
├── __manifest__.py
└── static
└── src
├── js
│ └── systray.js
└── xml
└── systray_templates.xml
Shortcuts
Action Name | Default Shortcut | Mac OS X Shortcut |
---|---|---|
Create Basic Module | Ctrl + Shift + B | ⌘ + Shift + B |
Create Advanced Module | Ctrl + Shift + D | ⌘ + Shift + D |
Create Website Theme Module | Ctrl + Shift + W | ⌘ + Shift + W |
Create Owl basic Module | Ctrl + Shift + O | ⌘ + Shift + O |
Create Owl Advance Module | Ctrl + Shift + L | ⌘ + Shift + L |
Create Systray Icon Module | Ctrl + Shift + S | ⌘ + Shift + S |
You can customize or add your own keyboard shortcuts by following these steps:
- Open
Settings
(orPreferences
on macOS). - Navigate to
Keymap
in the left sidebar. - Expand the
Plugins
section. - Locate and expand
Cybrosys Assista: Odoo Helper
from the list. - Find the specific action you want to configure.
- Right-click on the action and choose Add
Keyboard Shortcut
. - Press your desired key combination and apply the changes.
Tip: You can also remove or reassign conflicting shortcuts from the same menu.
Next Steps
- Learn about File Creation for adding new files to your module
- Explore Code Snippets for quick code generation
- Check out Best Practices for module development