Odoo 18 Skill - Master Index
Master index for all Odoo 18 guides. Use this to quickly find the appropriate guide for your task.
Quick Reference
| Topic |
File |
When to Use |
| Actions |
odoo-18-actions-guide.md |
Creating actions, menus, scheduled jobs, server actions |
| API Decorators |
odoo-18-decorator-guide.md |
Using @api decorators, compute fields, validation |
| Data Files |
odoo-18-data-guide.md |
XML/CSV data files, records, shortcuts |
| Development |
odoo-18-development-guide.md |
Creating modules, manifest, reports, security, wizards |
| Field Types |
odoo-18-field-guide.md |
Defining model fields, choosing field types |
| Manifest |
odoo-18-manifest-guide.md |
manifest.py configuration, dependencies, hooks |
| Mixins |
odoo-18-mixins-guide.md |
mail.thread, activities, email aliases, tracking |
| Model Methods |
odoo-18-model-guide.md |
Writing ORM queries, CRUD operations, domain filters |
| Performance |
odoo-18-performance-guide.md |
Optimizing queries, fixing slow code, preventing N+1 |
| Reports |
odoo-18-reports-guide.md |
QWeb reports, PDF/HTML, templates, paper formats |
| Security |
odoo-18-security-guide.md |
Access rights, record rules, field permissions |
| Testing |
odoo-18-testing-guide.md |
Writing tests, mocking, assertions, browser testing |
| Translation |
odoo-18-translation-guide.md |
Adding translations, localization, i18n |
| Transactions |
odoo-18-transaction-guide.md |
Handling database errors, savepoints, UniqueViolation |
| Controllers |
odoo-18-controller-guide.md |
Writing HTTP endpoints, routes, web controllers |
| Views & XML |
odoo-18-view-guide.md |
Writing XML views, actions, menus, QWeb templates |
| OWL Components |
odoo-18-owl-guide.md |
Building OWL UI components, hooks, services |
| Migration |
odoo-18-migration-guide.md |
Upgrading modules, data migration, version changes |
Guide Index
Actions Guide
File: odoo-18-actions-guide.md
When to read:
- Creating window actions, URL actions, server actions
- Setting up scheduled/cron jobs
- Configuring report actions
- Creating client-side actions
- Understanding action bindings
Controller Guide
File: odoo-18-controller-guide.md
When to read:
- Creating HTTP endpoints
- Writing web controllers
- Setting up routes
- Choosing auth types (user, public, none)
- Handling JSON vs HTTP responses
Data Files Guide
File: odoo-18-data-guide.md
When to read:
- Creating XML data files
- Understanding record, field, delete, function tags
- Using CSV data files
- Working with shortcuts (menuitem, template, asset)
- Understanding noupdate attribute
Decorator Guide
File: odoo-18-decorator-guide.md
When to read:
- Using
@api.depends for computed fields
- Using
@api.constrains for validation
- Using
@api.ondelete (Odoo 18) for delete validation
- Using
@api.onchange for form UI updates
- Using
@api.model for model-level methods
Development Guide
File: odoo-18-development-guide.md
When to read:
- Creating new modules
- Writing
__manifest__.py
- Setting up module structure
- Configuring access rights (CSV)
- Creating record rules
- Building wizards (TransientModel)
- Creating reports
Field Guide
File: odoo-18-field-guide.md
When to read:
- Defining new model fields
- Choosing appropriate field types (Char, Text, Monetary, etc.)
- Setting field parameters (required, default, index, etc.)
- Creating computed fields
- Setting up relational fields (Many2one, One2many, Many2many)
Manifest Guide
File: odoo-18-manifest-guide.md
When to read:
- Configuring
__manifest__.py
- Setting up module dependencies
- Defining asset bundles
- Declaring external dependencies (Python, binary)
- Using module hooks (pre_init, post_init, uninstall)
- Understanding auto_install behavior
Migration Guide
File: odoo-18-migration-guide.md
When to read:
- Upgrading modules from earlier versions
- Writing migration scripts (pre, post, end)
- Handling data migration
- Using module hooks (pre_init, post_init, uninstall)
- Version-specific migration logic
Mixins Guide
File: odoo-18-mixins-guide.md
When to read:
- Using mail.thread (messaging, chatter, field tracking)
- Setting up mail.alias.mixin (email aliases)
- Adding mail.activity.mixin (activities)
- Using utm.mixin (campaign tracking)
- Website publishing (website.published.mixin)
- SEO metadata (website.seo.metadata)
- Customer ratings (rating.mixin)
Model Guide
File: odoo-18-model-guide.md
When to read:
- Writing model methods
- Using ORM queries (
search, read, create, write, unlink)
- Working with domain filters
- Understanding recordsets and prefetching
- Batch operations
OWL Guide
File: odoo-18-owl-guide.md
When to read:
- Building OWL components
- Using hooks (useState, onWillStart, onMounted, etc.)
- Using services (orm, rpc, action, dialog, notification)
- Component lifecycle management
- JavaScript/OWL translations with
_t()
Performance Guide
File: odoo-18-performance-guide.md
When to read:
- Fixing N+1 query problems
- Optimizing slow code
- Reducing database queries
- Understanding prefetch behavior
- Using
search_read(), read_group(), mapped(), filtered()
Reports Guide
File: odoo-18-reports-guide.md
When to read:
- Creating QWeb reports (PDF/HTML)
- Writing report templates
- Configuring paper formats
- Creating custom reports with _get_report_values
- Adding barcodes to reports
- Using custom fonts
- Creating translatable reports
Security Guide
File: odoo-18-security-guide.md
When to read:
- Configuring access rights (ACL)
- Creating record rules
- Understanding field-level access
- Multi-company security
- Preventing security pitfalls (SQL injection, XSS)
- Public/Portal user security
Testing Guide
File: odoo-18-testing-guide.md
When to read:
- Writing unit tests (TransactionCase)
- Writing browser tests (HttpCase)
- Using test decorators (@tagged, @users, @warmup)
- Testing with Form class
- Mocking external APIs
- Query count assertions
Translation Guide
File: odoo-18-translation-guide.md
When to read:
- Adding translatable strings in Python (
_(), _lt())
- Adding translatable strings in JavaScript (
_t())
- Creating translatable QWeb templates
- Setting up translated fields (
translate=True)
- Managing PO files
- Exporting/importing translations
- Working with languages (
res.lang)
Transaction Guide
File: odoo-18-transaction-guide.md
When to read:
- Handling database errors (UniqueViolation, NotNullViolation)
- Using savepoints for error isolation
- Understanding transaction states
- Dealing with serialization failures
- Commit and rollback patterns
View Guide
File: odoo-18-view-guide.md
When to read:
- Writing list views (use
<list> not <tree> in Odoo 18)
- Writing form views
- Writing search views
- Creating view inheritance with xpath
- Writing QWeb templates
- Creating actions and menus
File Structure
agent-skills/skills/odoo/18.0/
├── SKILL.md # THIS FILE - master index
├── dev/ # Development guides folder
│ ├── odoo-18-actions-guide.md # ir.actions.*, cron, bindings
│ ├── odoo-18-controller-guide.md # HTTP, routing, controllers
│ ├── odoo-18-data-guide.md # XML/CSV data files, records
│ ├── odoo-18-decorator-guide.md # @api decorators
│ ├── odoo-18-development-guide.md # Manifest, wizards (overview)
│ ├── odoo-18-field-guide.md # Field types, parameters
│ ├── odoo-18-manifest-guide.md # __manifest__.py reference
│ ├── odoo-18-mixins-guide.md # mail.thread, activities, etc.
│ ├── odoo-18-model-guide.md # ORM, CRUD, search, domain
│ ├── odoo-18-migration-guide.md # Migration scripts, hooks
│ ├── odoo-18-owl-guide.md # OWL components, services
│ ├── odoo-18-performance-guide.md # N+1 prevention, optimization
│ ├── odoo-18-reports-guide.md # QWeb reports, PDF/HTML
│ ├── odoo-18-security-guide.md # ACL, record rules, security
│ ├── odoo-18-testing-guide.md # Test classes, decorators
│ ├── odoo-18-transaction-guide.md # Savepoints, errors
│ ├── odoo-18-translation-guide.md # Translations, i18n
│ └── odoo-18-view-guide.md # XML views, QWeb
├── CLAUDE.md # Claude Code specific
└── AGENTS.md # AI agents setup
Base Code Reference (Odoo 18)
All guides are based on analysis of Odoo 18 source code:
odoo/models.py - ORM implementation
odoo/fields.py - Field types
odoo/api.py - Decorators
odoo/http.py - HTTP layer
odoo/exceptions.py - Exception types
odoo/tools/translate.py - Translation system
odoo/addons/base/models/res_lang.py - Language model
addons/web/static/src/core/l10n/translation.js - JS translations
For setup instructions with different AI IDEs, see AGENTS.md
1---2name: odoo-183description: Master index for Odoo 18 guides. This file provides a quick reference to find the appropriate detailed guide for each topic. Use this as an index to locate specific guides when working with Odoo 18 code.4globs: "**/*.{py,xml}"5license: MIT6author: UncleCat7version: 1.0.08---910# Odoo 18 Skill - Master Index1112Master index for all Odoo 18 guides. Use this to quickly find the appropriate guide for your task.1314## Quick Reference1516| Topic | File | When to Use |17|-------|------|-------------|18| [Actions](#actions-guide) | `odoo-18-actions-guide.md` | Creating actions, menus, scheduled jobs, server actions |19| [API Decorators](#decorator-guide) | `odoo-18-decorator-guide.md` | Using @api decorators, compute fields, validation |20| [Data Files](#data-guide) | `odoo-18-data-guide.md` | XML/CSV data files, records, shortcuts |21| [Development](#development-guide) | `odoo-18-development-guide.md` | Creating modules, manifest, reports, security, wizards |22| [Field Types](#field-guide) | `odoo-18-field-guide.md` | Defining model fields, choosing field types |23| [Manifest](#manifest-guide) | `odoo-18-manifest-guide.md` | __manifest__.py configuration, dependencies, hooks |24| [Mixins](#mixins-guide) | `odoo-18-mixins-guide.md` | mail.thread, activities, email aliases, tracking |25| [Model Methods](#model-guide) | `odoo-18-model-guide.md` | Writing ORM queries, CRUD operations, domain filters |26| [Performance](#performance-guide) | `odoo-18-performance-guide.md` | Optimizing queries, fixing slow code, preventing N+1 |27| [Reports](#reports-guide) | `odoo-18-reports-guide.md` | QWeb reports, PDF/HTML, templates, paper formats |28| [Security](#security-guide) | `odoo-18-security-guide.md` | Access rights, record rules, field permissions |29| [Testing](#testing-guide) | `odoo-18-testing-guide.md` | Writing tests, mocking, assertions, browser testing |30| [Translation](#translation-guide) | `odoo-18-translation-guide.md` | Adding translations, localization, i18n |31| [Transactions](#transaction-guide) | `odoo-18-transaction-guide.md` | Handling database errors, savepoints, UniqueViolation |32| [Controllers](#controller-guide) | `odoo-18-controller-guide.md` | Writing HTTP endpoints, routes, web controllers |33| [Views & XML](#view-guide) | `odoo-18-view-guide.md` | Writing XML views, actions, menus, QWeb templates |34| [OWL Components](#owl-guide) | `odoo-18-owl-guide.md` | Building OWL UI components, hooks, services |35| [Migration](#migration-guide) | `odoo-18-migration-guide.md` | Upgrading modules, data migration, version changes |3637---3839## Guide Index4041### Actions Guide42**File**: `odoo-18-actions-guide.md`4344**When to read**:45- Creating window actions, URL actions, server actions46- Setting up scheduled/cron jobs47- Configuring report actions48- Creating client-side actions49- Understanding action bindings5051---5253### Controller Guide54**File**: `odoo-18-controller-guide.md`5556**When to read**:57- Creating HTTP endpoints58- Writing web controllers59- Setting up routes60- Choosing auth types (user, public, none)61- Handling JSON vs HTTP responses6263---6465### Data Files Guide66**File**: `odoo-18-data-guide.md`6768**When to read**:69- Creating XML data files70- Understanding record, field, delete, function tags71- Using CSV data files72- Working with shortcuts (menuitem, template, asset)73- Understanding noupdate attribute7475---7677### Decorator Guide78**File**: `odoo-18-decorator-guide.md`7980**When to read**:81- Using `@api.depends` for computed fields82- Using `@api.constrains` for validation83- Using `@api.ondelete` (Odoo 18) for delete validation84- Using `@api.onchange` for form UI updates85- Using `@api.model` for model-level methods8687---8889### Development Guide90**File**: `odoo-18-development-guide.md`9192**When to read**:93- Creating new modules94- Writing `__manifest__.py`95- Setting up module structure96- Configuring access rights (CSV)97- Creating record rules98- Building wizards (TransientModel)99- Creating reports100101---102103### Field Guide104**File**: `odoo-18-field-guide.md`105106**When to read**:107- Defining new model fields108- Choosing appropriate field types (Char, Text, Monetary, etc.)109- Setting field parameters (required, default, index, etc.)110- Creating computed fields111- Setting up relational fields (Many2one, One2many, Many2many)112113---114115### Manifest Guide116**File**: `odoo-18-manifest-guide.md`117118**When to read**:119- Configuring `__manifest__.py`120- Setting up module dependencies121- Defining asset bundles122- Declaring external dependencies (Python, binary)123- Using module hooks (pre_init, post_init, uninstall)124- Understanding auto_install behavior125126---127128### Migration Guide129**File**: `odoo-18-migration-guide.md`130131**When to read**:132- Upgrading modules from earlier versions133- Writing migration scripts (pre, post, end)134- Handling data migration135- Using module hooks (pre_init, post_init, uninstall)136- Version-specific migration logic137138---139140### Mixins Guide141**File**: `odoo-18-mixins-guide.md`142143**When to read**:144- Using mail.thread (messaging, chatter, field tracking)145- Setting up mail.alias.mixin (email aliases)146- Adding mail.activity.mixin (activities)147- Using utm.mixin (campaign tracking)148- Website publishing (website.published.mixin)149- SEO metadata (website.seo.metadata)150- Customer ratings (rating.mixin)151152---153154### Model Guide155**File**: `odoo-18-model-guide.md`156157**When to read**:158- Writing model methods159- Using ORM queries (`search`, `read`, `create`, `write`, `unlink`)160- Working with domain filters161- Understanding recordsets and prefetching162- Batch operations163164---165166### OWL Guide167**File**: `odoo-18-owl-guide.md`168169**When to read**:170- Building OWL components171- Using hooks (useState, onWillStart, onMounted, etc.)172- Using services (orm, rpc, action, dialog, notification)173- Component lifecycle management174- JavaScript/OWL translations with `_t()`175176---177178### Performance Guide179**File**: `odoo-18-performance-guide.md`180181**When to read**:182- Fixing N+1 query problems183- Optimizing slow code184- Reducing database queries185- Understanding prefetch behavior186- Using `search_read()`, `read_group()`, `mapped()`, `filtered()`187188---189190### Reports Guide191**File**: `odoo-18-reports-guide.md`192193**When to read**:194- Creating QWeb reports (PDF/HTML)195- Writing report templates196- Configuring paper formats197- Creating custom reports with _get_report_values198- Adding barcodes to reports199- Using custom fonts200- Creating translatable reports201202---203204### Security Guide205**File**: `odoo-18-security-guide.md`206207**When to read**:208- Configuring access rights (ACL)209- Creating record rules210- Understanding field-level access211- Multi-company security212- Preventing security pitfalls (SQL injection, XSS)213- Public/Portal user security214215---216217### Testing Guide218**File**: `odoo-18-testing-guide.md`219220**When to read**:221- Writing unit tests (TransactionCase)222- Writing browser tests (HttpCase)223- Using test decorators (@tagged, @users, @warmup)224- Testing with Form class225- Mocking external APIs226- Query count assertions227228---229230### Translation Guide231**File**: `odoo-18-translation-guide.md`232233**When to read**:234- Adding translatable strings in Python (`_()`, `_lt()`)235- Adding translatable strings in JavaScript (`_t()`)236- Creating translatable QWeb templates237- Setting up translated fields (`translate=True`)238- Managing PO files239- Exporting/importing translations240- Working with languages (`res.lang`)241242---243244### Transaction Guide245**File**: `odoo-18-transaction-guide.md`246247**When to read**:248- Handling database errors (UniqueViolation, NotNullViolation)249- Using savepoints for error isolation250- Understanding transaction states251- Dealing with serialization failures252- Commit and rollback patterns253254---255256### View Guide257**File**: `odoo-18-view-guide.md`258259**When to read**:260- Writing list views (use `<list>` not `<tree>` in Odoo 18)261- Writing form views262- Writing search views263- Creating view inheritance with xpath264- Writing QWeb templates265- Creating actions and menus266267---268269## File Structure270271```272agent-skills/skills/odoo/18.0/273├── SKILL.md # THIS FILE - master index274├── dev/ # Development guides folder275│ ├── odoo-18-actions-guide.md # ir.actions.*, cron, bindings276│ ├── odoo-18-controller-guide.md # HTTP, routing, controllers277│ ├── odoo-18-data-guide.md # XML/CSV data files, records278│ ├── odoo-18-decorator-guide.md # @api decorators279│ ├── odoo-18-development-guide.md # Manifest, wizards (overview)280│ ├── odoo-18-field-guide.md # Field types, parameters281│ ├── odoo-18-manifest-guide.md # __manifest__.py reference282│ ├── odoo-18-mixins-guide.md # mail.thread, activities, etc.283│ ├── odoo-18-model-guide.md # ORM, CRUD, search, domain284│ ├── odoo-18-migration-guide.md # Migration scripts, hooks285│ ├── odoo-18-owl-guide.md # OWL components, services286│ ├── odoo-18-performance-guide.md # N+1 prevention, optimization287│ ├── odoo-18-reports-guide.md # QWeb reports, PDF/HTML288│ ├── odoo-18-security-guide.md # ACL, record rules, security289│ ├── odoo-18-testing-guide.md # Test classes, decorators290│ ├── odoo-18-transaction-guide.md # Savepoints, errors291│ ├── odoo-18-translation-guide.md # Translations, i18n292│ └── odoo-18-view-guide.md # XML views, QWeb293├── CLAUDE.md # Claude Code specific294└── AGENTS.md # AI agents setup295```296297---298299## Base Code Reference (Odoo 18)300301All guides are based on analysis of Odoo 18 source code:302- `odoo/models.py` - ORM implementation303- `odoo/fields.py` - Field types304- `odoo/api.py` - Decorators305- `odoo/http.py` - HTTP layer306- `odoo/exceptions.py` - Exception types307- `odoo/tools/translate.py` - Translation system308- `odoo/addons/base/models/res_lang.py` - Language model309- `addons/web/static/src/core/l10n/translation.js` - JS translations310311---312313**For setup instructions with different AI IDEs, see [AGENTS.md](./AGENTS.md)**