diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index ad05bc1..a62dd49 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -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 ## Project Overview @@ -197,9 +157,7 @@ docker-compose exec odoo odoo -d odoo -u addon_name --stop-after-init docker-compose logs -f odoo # Ejecutar tests -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. +docker-compose exec odoo odoo -d odoo --test-enable --stop-after-init -u addon_name # Acceder a shell de Odoo docker-compose exec odoo bash diff --git a/.github/skills/html_css.md b/.github/skills/html_css.md deleted file mode 100644 index dc75195..0000000 --- a/.github/skills/html_css.md +++ /dev/null @@ -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. diff --git a/.github/skills/javascript.md b/.github/skills/javascript.md deleted file mode 100644 index d3223ff..0000000 --- a/.github/skills/javascript.md +++ /dev/null @@ -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. diff --git a/.github/skills/python.md b/.github/skills/python.md deleted file mode 100644 index 95fe6ae..0000000 --- a/.github/skills/python.md +++ /dev/null @@ -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. diff --git a/.github/skills/xml.md b/.github/skills/xml.md deleted file mode 100644 index 50fc15c..0000000 --- a/.github/skills/xml.md +++ /dev/null @@ -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). diff --git a/README.md b/README.md index d064ba6..dd547b3 100644 --- a/README.md +++ b/README.md @@ -112,10 +112,8 @@ pre-commit run --all-files ### Tests ```bash - # Ejecutar tests de un addon -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. +docker-compose exec odoo odoo -d odoo --test-enable --stop-after-init -u addon_name # Tests específicos con Python unittest docker-compose exec odoo python -m pytest addons/addon_name/tests/ diff --git a/website_sale_aplicoop/models/res_config_settings.py b/website_sale_aplicoop/models/res_config_settings.py index f4a56f0..b8dcfa3 100644 --- a/website_sale_aplicoop/models/res_config_settings.py +++ b/website_sale_aplicoop/models/res_config_settings.py @@ -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 models -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) - class ResConfigSettings(models.TransientModel): _inherit = "res.config.settings"