Compare commits
No commits in common. "a1431d3521923f303daf87fe3f5f50c23e2395c4" and "5d4552581cc364d79f2ca7850e3d4a02125c646e" have entirely different histories.
a1431d3521
...
5d4552581c
7 changed files with 5 additions and 130 deletions
44
.github/copilot-instructions.md
vendored
44
.github/copilot-instructions.md
vendored
|
|
@ -1,43 +1,3 @@
|
||||||
# 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
|
||||||
|
|
@ -197,9 +157,7 @@ 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 run odoo odoo -d odoo --test-enable --stop-after-init -u addon_name
|
docker-compose exec 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
17
.github/skills/html_css.md
vendored
|
|
@ -1,17 +0,0 @@
|
||||||
# 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
18
.github/skills/javascript.md
vendored
|
|
@ -1,18 +0,0 @@
|
||||||
# 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
29
.github/skills/python.md
vendored
|
|
@ -1,29 +0,0 @@
|
||||||
# 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
18
.github/skills/xml.md
vendored
|
|
@ -1,18 +0,0 @@
|
||||||
# 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,10 +112,8 @@ pre-commit run --all-files
|
||||||
### Tests
|
### Tests
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|
||||||
# Ejecutar tests de un addon
|
# Ejecutar tests de un addon
|
||||||
docker-compose run odoo odoo -d odoo --test-enable --stop-after-init -u addon_name
|
docker-compose exec 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/
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
|
# 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"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue