[DOC] Añadir archivos de skills detallados (python, xml, html_css, javascript) y actualizar README.md con instrucciones de tests actualizadas.

This commit is contained in:
snt 2026-02-20 20:34:49 +01:00
parent 625b9582b3
commit 02a4758635
5 changed files with 85 additions and 1 deletions

17
.github/skills/html_css.md vendored Normal file
View file

@ -0,0 +1,17 @@
# Skill: HTML & CSS (Odoo/QWeb)
## Estilo y convenciones
- Usa HTML5 válido en QWeb y vistas web.
- No uses lógica condicional en QWeb, solo acceso a atributos.
- Prepara todos los datos en el controller Python.
- CSS: usa clases BEM o utilitarias, nunca estilos inline.
- Indentación: 4 espacios.
## Patrones clave
- Templates en `views/*.xml` o `static/src/xml/`.
- Para estilos, usa `static/src/css/` y carga en manifest si es necesario.
- Para responsive, usa clases utilitarias o Bootstrap si está disponible.
## Errores comunes
- No pongas lógica en QWeb, solo acceso a datos.
- No uses estilos inline salvo casos muy justificados.

18
.github/skills/javascript.md vendored Normal file
View file

@ -0,0 +1,18 @@
# Skill: JavaScript (Odoo Web/Frontend)
## Estilo y convenciones
- Usa ES6+ (let/const, arrow functions, etc).
- Sigue el patrón Odoo: módulos AMD (`odoo.define`).
- Linting con ESLint (`.eslintrc.js` en raíz).
- No mezcles lógica de negocio en JS, solo UI y eventos.
- Usa comentarios para explicar hacks o workarounds.
## Patrones clave
- Scripts en `static/src/js/`.
- Registra tours de UI con `web_tour.tour`.
- Usa eventos delegados para elementos dinámicos (lazy loading, infinite scroll).
- Para AJAX, usa los helpers de Odoo (`ajax.jsonRpc`).
## Errores comunes
- No pongas lógica de negocio en JS, solo en Python.
- Reatacha listeners tras manipular el DOM dinámicamente.

29
.github/skills/python.md vendored Normal file
View file

@ -0,0 +1,29 @@
# Skill: Python (Odoo ORM)
## Estilo y convenciones
- Sigue las OCA guidelines estrictamente.
- Usa `black` para formateo automático (ver `pyproject.toml`).
- Ordena imports con `isort` (perfil black).
- Linting obligatorio con `flake8` y `pylint-odoo`.
- Usa docstrings en clases y métodos públicos.
- Comentarios inline solo para lógica compleja.
## Patrones clave
- Modelos: hereda de `models.Model` o `models.TransientModel`.
- Campos de negocio siempre en `product.product` (no en `product.template`).
- Usa `@api.depends` para campos computados.
- Notificaciones: usa `ir.actions.client` con `display_notification`.
- Logging: `_logger.info()` para trazabilidad de precios y descuentos.
- Bulk updates: prefiere `search().write()` sobre loops.
## Testing
- Tests en `tests/` de cada addon.
- Hereda de `odoo.tests.common.TransactionCase`.
- Ejecuta tests con:
```bash
docker-compose run odoo odoo -d odoo --test-enable --stop-after-init -u addon_name
```
## Errores comunes
- No uses `_()` en definiciones de campos (solo en métodos ejecutables).
- Usa `related` fields en templates para lógica de variantes.

18
.github/skills/xml.md vendored Normal file
View file

@ -0,0 +1,18 @@
# Skill: XML (Odoo Views)
## Estilo y convenciones
- Indentación: 4 espacios (no tabs).
- Usa `position` explícito en XPaths (`before`, `after`, `inside`, `replace`, `attributes`).
- Referencia grupos con `module.xml_id`.
- Usa `sequence` para ordenar campos en vistas.
- No pongas lógica condicional en QWeb, solo acceso a atributos.
## Patrones clave
- Define vistas en `views/*.xml`.
- IDs: usa el patrón `modulo.nombre_descriptivo`.
- Traduce strings en XML, nunca en Python para campos.
- Para QWeb, prepara todos los datos en el controller.
## Errores comunes
- XPath not found: revisa la herencia y los XML IDs.
- No uses lógica compleja en QWeb (ver QWEB_BEST_PRACTICES.md).