addons-cm/.claude/skills/odoo-javascript/SKILL.md

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.
type
reference

JavaScript (Odoo Web/Frontend)

Style and conventions

  • ES6+ (let/const, arrow functions). Linting with ESLint (.eslintrc.js at 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.