1 KiB
1 KiB
| name | description | metadata | ||
|---|---|---|---|---|
| odoo-javascript | JavaScript/Odoo frontend conventions for this repo (modules, tours, events, lazy loading). Use when editing JS in static/src/js/ of Odoo addons. |
|
JavaScript (Odoo Web/Frontend)
Style and conventions
- ES6+ (
let/const, arrow functions). Linting with ESLint (.eslintrc.jsat root). - Odoo pattern: AMD modules (
odoo.define). - No business logic in JS (pricing rules, stock/availability decisions, permission checks) — these belong in Python. JS handles only rendering, DOM events, and calling Python endpoints via
ajax.jsonRpc. - Comments to explain hacks or workarounds.
Key patterns
- Scripts in
static/src/js/. - UI tours registered with
web_tour.tour(test: true, url, steps). - Delegated events for dynamic elements (lazy loading, infinite scroll in
website_sale_aplicoop). - AJAX via Odoo helpers (
ajax.jsonRpc).
Common mistakes
- Business logic in JS → move it to Python.
- Listeners lost after DOM manipulation → reattach via event delegation.