Skip to content

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

  1. Right-click on your target folder in the PyCharm project explorer
  2. Navigate to Odoo Module Templates in the context menu
  3. Select the desired module template
  4. 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 NameDefault ShortcutMac OS X Shortcut
Create Basic ModuleCtrl + Shift + B⌘ + Shift + B
Create Advanced ModuleCtrl + Shift + D⌘ + Shift + D
Create Website Theme ModuleCtrl + Shift + W⌘ + Shift + W
Create Owl basic ModuleCtrl + Shift + O⌘ + Shift + O
Create Owl Advance ModuleCtrl + Shift + L⌘ + Shift + L
Create Systray Icon ModuleCtrl + Shift + S⌘ + Shift + S

You can customize or add your own keyboard shortcuts by following these steps:

  1. Open Settings (or Preferences on macOS).
  2. Navigate to Keymap in the left sidebar.
  3. Expand the Plugins section.
  4. Locate and expand Cybrosys Assista: Odoo Helper from the list.
  5. Find the specific action you want to configure.
  6. Right-click on the action and choose Add Keyboard Shortcut.
  7. Press your desired key combination and apply the changes.

Tip: You can also remove or reassign conflicting shortcuts from the same menu.

Next Steps