A tool to automate Odoo module creation
Project description
Odoo Module Generator (OMG)
Project Overview
The Odoo Module Generator (OMG) is a command-line interface (CLI) tool designed to streamline the initial setup of new Odoo modules. It automates the creation of essential boilerplate files, including Python models, XML views, and security access rules, based on simple command-line arguments. This tool significantly reduces the manual effort and potential for errors when starting new Odoo development projects, allowing developers to focus on core business logic faster.
Features
- Automated Module Structure: Generates the standard Odoo module directory structure.
- Python Model Generation: Creates
models.pywith defined models and fields (Char, Integer, Float, Text, etc.). - XML View Generation: Produces
views.xmlfor form, tree, and action views, ready for customization. - Security Access Rules: Sets up
ir.model.access.csvfor basic user permissions. - Customizable Metadata: Allows specifying module name, summary, and author.
- CamelCase Class Names: Automatically converts model names to Odoo-standard CamelCase for Python classes.
- Clean
__init__.pyManagement: Ensures correct__init__.pyfiles are placed for proper module and package recognition.
Technologies Used
- Python: The core programming language for the CLI tool.
- Jinja2: A powerful templating engine used to generate the Odoo module files (Python, XML, CSV).
argparse: Python's standard library for parsing command-line arguments.
Installation
You can install OMG directly from PyPI using pip:
pip install omg-cli==0.1.5
Usage
To generate a new Odoo module, run the omg command followed by your desired module name and model definitions.
omg <module_name> --model <ModelName> --fields <field1:Type,field2:Type> [--summary "Module Summary"] [--author "Author Name"]
Arguments:
<module_name>: The technical name of your Odoo module (e.g.,my_custom_module). This will also be the name of the generated directory.--model <ModelName>: (Required, can be repeated) Defines an Odoo model. TheModelNamewill be converted to CamelCase for the Python class and snake_case for the_nameattribute.- Example:
--model "Product Item"
- Example:
--fields <field1:Type,field2:Type>: (Optional, applies to the last--modeldefined) Defines fields for the model.field1: The technical name of the field (e.g.,product_code).Type: The Odoo field type (e.g.,Char,Integer,Float,Text,Boolean,Date,Datetime).- Example:
--fields "code:Char,quantity:Integer,notes:Text"
--summary "Module Summary": (Optional) A brief description of your module. Defaults to "My Odoo Module".--author "Author Name": (Optional) The author's name for the module manifest. Defaults to "Me".
Examples:
1. Basic Module with One Model and Fields
Generate a module named my_crm with a model Customer and fields name (Char) and email (Char):
omg my_crm --model "Customer" --fields "name:Char,email:Char" --summary "Custom CRM module" --author "John Doe"
2. Module with Multiple Models
Generate a module named project_management with two models: Project and Task.
omg project_management \
--model "Project" --fields "name:Char,start_date:Date,end_date:Date" \
--model "Task" --fields "name:Char,description:Text,is_done:Boolean" \
--summary "Project Management Module"
Contributing
Contributions are welcome! Please feel free to submit pull requests or open issues on the GitHub repository.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file omg_cli-0.1.5.tar.gz.
File metadata
- Download URL: omg_cli-0.1.5.tar.gz
- Upload date:
- Size: 6.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bacadc9732c71b5e10dbe8353289ecc3485d2b06cefb9603320369881d114452
|
|
| MD5 |
3eefd29d7fb0ccd1f1de9f91498494f7
|
|
| BLAKE2b-256 |
a7f4cc9956a921c98b39953456700a2e2f4904c4759793147ab7143cd32a2915
|
File details
Details for the file omg_cli-0.1.5-py3-none-any.whl.
File metadata
- Download URL: omg_cli-0.1.5-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2cdc95b375334c0f242605792b54abe5438b4c0879c62260cdca35483b7258e
|
|
| MD5 |
4968010eac80007fbbdeb8fbc7a1742d
|
|
| BLAKE2b-256 |
41ad1bef672ce37a90a6afa7ad31867bb1a6b395b8da7372aa3521c9cfd39026
|