Compare commits

..

3 commits

7 changed files with 130 additions and 5 deletions

View file

@ -1,3 +1,43 @@
# AI Agent Skills & Prompt Guidance
Para máxima productividad y calidad, los agentes AI deben seguir estas pautas y consultar los archivos de skills detallados:
## 1. Skills por Lenguaje/Stack
- **Python/Odoo ORM**: `.github/skills/python.md`
- **XML/Odoo Views**: `.github/skills/xml.md`
- **HTML/CSS/QWeb**: `.github/skills/html_css.md`
- **JavaScript/Odoo Web**: `.github/skills/javascript.md`
## 2. Ejecución de tests
Siempre usa:
```bash
docker-compose run odoo odoo -d odoo --test-enable --stop-after-init -u addon_name
```
> NOTA: Usa `docker-compose run` (no `exec`) para evitar efectos de caché.
## 3. Patrones y convenciones clave
- Sigue OCA guidelines y skills.
- No pongas lógica en QWeb, solo acceso a datos preparados en el controller.
- Usa `main_seller_id` en vez de `default_supplier_id` en product_main_seller.
- Para bulk updates, prefiere `search().write()` sobre loops.
## 4. Errores comunes a evitar
- No uses `_()` en definiciones de campos, solo en métodos ejecutables.
- No pongas lógica de negocio en JavaScript, solo en Python.
- No uses estilos inline en QWeb salvo casos justificados.
## 5. Documentación y referencias
- Consulta este archivo para patrones globales.
- Consulta los archivos de skills para detalles por lenguaje.
- Para troubleshooting de templates, revisa `docs/QWEB_BEST_PRACTICES.md` y `docs/FINAL_SOLUTION_SUMMARY.md`.
# GitHub Copilot Instructions - Kidekoop Addons Custom # GitHub Copilot Instructions - Kidekoop Addons Custom
## Project Overview ## Project Overview
@ -157,7 +197,9 @@ docker-compose exec odoo odoo -d odoo -u addon_name --stop-after-init
docker-compose logs -f odoo docker-compose logs -f odoo
# Ejecutar tests # Ejecutar tests
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.
# Acceder a shell de Odoo # Acceder a shell de Odoo
docker-compose exec odoo bash docker-compose exec odoo bash

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).

View file

@ -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/

View file

@ -1,9 +1,8 @@
# Copyright 2026 Criptomart
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl)
from odoo import fields from odoo import fields
from odoo import models from odoo import models
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl)
class ResConfigSettings(models.TransientModel): class ResConfigSettings(models.TransientModel):
_inherit = "res.config.settings" _inherit = "res.config.settings"