Compare commits
3 commits
5d4552581c
...
a1431d3521
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a1431d3521 | ||
|
|
02a4758635 | ||
|
|
625b9582b3 |
7 changed files with 130 additions and 5 deletions
44
.github/copilot-instructions.md
vendored
44
.github/copilot-instructions.md
vendored
|
|
@ -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
|
||||
|
||||
## Project Overview
|
||||
|
|
@ -157,7 +197,9 @@ docker-compose exec odoo odoo -d odoo -u addon_name --stop-after-init
|
|||
docker-compose logs -f odoo
|
||||
|
||||
# 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
|
||||
docker-compose exec odoo bash
|
||||
|
|
|
|||
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
|
||||
|
||||
```bash
|
||||
|
||||
# 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
|
||||
docker-compose exec odoo python -m pytest addons/addon_name/tests/
|
||||
|
|
|
|||
|
|
@ -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 models
|
||||
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl)
|
||||
|
||||
|
||||
class ResConfigSettings(models.TransientModel):
|
||||
_inherit = "res.config.settings"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue