[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:
parent
625b9582b3
commit
02a4758635
5 changed files with 85 additions and 1 deletions
17
.github/skills/html_css.md
vendored
Normal file
17
.github/skills/html_css.md
vendored
Normal 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
18
.github/skills/javascript.md
vendored
Normal 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
29
.github/skills/python.md
vendored
Normal 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
18
.github/skills/xml.md
vendored
Normal 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).
|
||||||
|
|
@ -112,8 +112,10 @@ pre-commit run --all-files
|
||||||
### Tests
|
### Tests
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|
||||||
# Ejecutar tests de un addon
|
# Ejecutar tests de un addon
|
||||||
docker-compose exec odoo odoo -d odoo --test-enable --stop-after-init -u addon_name
|
docker-compose run odoo odoo -d odoo --test-enable --stop-after-init -u addon_name
|
||||||
|
# NOTA: Usa `docker-compose run` (no `exec`) para lanzar un contenedor limpio y evitar efectos de caché. Cambia `addon_name` por el módulo a testear.
|
||||||
|
|
||||||
# Tests específicos con Python unittest
|
# Tests específicos con Python unittest
|
||||||
docker-compose exec odoo python -m pytest addons/addon_name/tests/
|
docker-compose exec odoo python -m pytest addons/addon_name/tests/
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue