# Kidekoop - Addons Custom para Odoo 18.0 Sistema de gestión de compras colaborativas (grupo de consumo) basado en Odoo 18.0 con módulos personalizados y modificados. ## 🎯 Descripción Este repositorio contiene los addons personalizados para Kidekoop, un sistema completo de gestión de grupos de consumo que permite: - **Gestión de compras colaborativas** (eskaera) - **Sistema de precios multinivel** con categorías y descuentos múltiples - **Integración con proveedores** y gestión de precios automática - **Interfaz web moderna** para pedidos grupales - **Multiidioma** (ES, EU, CA, GL, PT, FR, IT) ## 📦 Componentes del Proyecto ### 1. OCB - Odoo Community Backports - **Ubicación**: `/ocb` - **Versión**: 18.0 - **Descripción**: Base de Odoo Community Edition - **Repositorio**: https://github.com/OCA/OCB ### 2. Addons OCA Modificados | Addon | Propósito | Repositorio OCA | |-------|-----------|-----------------| | [account_invoice_triple_discount](account_invoice_triple_discount/) | Sistema de triple descuento en facturas | account-invoicing | | [purchase_triple_discount](purchase_triple_discount/) | Sistema de triple descuento en compras | purchase-workflow | | [product_origin](product_origin/) | Campo de origen del producto | product-attribute | | [product_get_price_helper](product_get_price_helper/) | Helper para cálculo de precios | product-attribute | | [product_main_seller](product_main_seller/) | Proveedor principal por producto | purchase-workflow | | [product_price_category](product_price_category/) | Sistema de categorías de precio | product-attribute | ### 3. Addons Custom Propios | Addon | Propósito | Estado | |-------|-----------|--------| | [account_invoice_triple_discount_readonly](account_invoice_triple_discount_readonly/) | Fix para bug de descuentos acumulados | ✅ Estable | | [product_price_category_supplier](product_price_category_supplier/) | Gestión de categorías por proveedor | ✅ Estable | | [product_sale_price_from_pricelist](product_sale_price_from_pricelist/) | Auto-cálculo precio venta desde compra | ✅ Estable | | [website_sale_aplicoop](website_sale_aplicoop/) | Sistema completo de eskaera web con **lazy loading** 🚀 | ✅ Estable | **✨ Nueva Feature v18.0.1.3.0**: `website_sale_aplicoop` incluye **lazy loading configurable** para mejorar el rendimiento de carga de productos. Reduce el tiempo de carga inicial de 10-20s a 500-800ms. Ver [docs/LAZY_LOADING.md](docs/LAZY_LOADING.md) para detalles. ## 🚀 Quick Start ### Requisitos - Docker & Docker Compose - Python 3.10+ - PostgreSQL 14+ ### Instalación ```bash # Clonar repositorio git clone [URL_REPO] cd addons-cm # Iniciar entorno docker-compose up -d # Verificar logs docker-compose logs -f odoo ``` ### Instalar un addon ```bash docker-compose exec odoo odoo -d odoo -u addon_name --stop-after-init ``` ## 🛠️ Desarrollo ### Estructura de Carpetas ``` addons-cm/ ├── .github/ # GitHub Copilot instructions ├── ocb/ # Odoo 18.0 base ├── account_invoice_*/ # Addons de facturación ├── purchase_*/ # Addons de compras ├── product_*/ # Addons de productos ├── website_sale_aplicoop/ # Sistema eskaera ├── docker-compose.yml # Configuración Docker ├── requirements.txt # Dependencias Python ├── oca_dependencies.txt # Dependencias OCA ├── Makefile # Comandos útiles └── .pre-commit-config.yaml # Hooks de pre-commit ``` ### Herramientas de Calidad ```bash # Ejecutar checks de código make lint # Formatear código make format # Ejecutar todos los pre-commit hooks pre-commit run --all-files # Verificar addon específico ./check_addon.sh addon_name ``` ### Tests ```bash # Ejecutar tests de un addon 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/ ``` ## 🌍 Sistema de Traducciones Todos los addons custom incluyen traducciones completas en: - **Español** (es) - Obligatorio - **Euskera** (eu) - Obligatorio - **Catalán** (ca) - **Gallego** (gl) - **Portugués** (pt) - **Francés** (fr) - **Italiano** (it) ### Actualizar Traducciones ```bash # Exportar términos traducibles docker-compose exec odoo odoo \ --addons-path=/mnt/extra-addons \ --i18n-export=/tmp/addon_name.pot \ --modules=addon_name \ --db=odoo # Actualizar archivos .po cd addon_name/i18n msgmerge --update es.po addon_name.pot msgmerge --update eu.po addon_name.pot ``` **Importante**: No usar `_()` en definiciones de campos a nivel de módulo. Solo usar en métodos. 📖 **[Ver guía completa de traducciones](docs/TRANSLATIONS.md)** ## 📖 Documentación Adicional Cada addon incluye su propio README.md con: - Arquitectura y diseño - Detalles de implementación - Ejemplos de uso - Casos de prueba ### Documentos Principales - [GitHub Copilot Instructions](.github/copilot-instructions.md) - Guía para desarrollo con AI - [Documentación Técnica](docs/) - Guías de instalación, linters, y troubleshooting - **[🚀 Lazy Loading Documentation](docs/LAZY_LOADING.md)** - Guía técnica completa sobre la nueva feature de carga lazy - **[📦 Upgrade Instructions v18.0.1.3.0](docs/UPGRADE_INSTRUCTIONS_v18.0.1.3.0.md)** - Guía de actualización e instalación de lazy loading - [Makefile](Makefile) - Comandos disponibles - [requirements.txt](requirements.txt) - Dependencias Python - [oca_dependencies.txt](oca_dependencies.txt) - Repositorios OCA necesarios ## 🔧 Configuración ### Dependencias OCA Este proyecto depende de los siguientes repositorios OCA: - **account-invoicing**: Sistema de facturación extendido - **product-attribute**: Gestión avanzada de productos - **purchase-workflow**: Flujos de compra personalizados - **sale-workflow**: Flujos de venta personalizados ### Configuración de Odoo Archivo `odoo.conf` incluye: - Configuración de addons path - Parámetros de base de datos - Configuración de workers y límites ## 🐛 Issues Conocidos y Soluciones ### Descuentos Acumulándose en discount1 **Problema**: Al usar triple descuento, todos los descuentos se acumulan en el primer campo. **Solución**: Instalar `account_invoice_triple_discount_readonly` ### Precio de Venta No Actualiza **Problema**: El precio de venta no se calcula automáticamente desde el precio de compra. **Solución**: Configurar `product_sale_price_from_pricelist` correctamente. ### Warnings de Traducción **Problema**: `WARNING: _() called at import time at module...` **Solución**: No usar `_()` en definiciones de campos, solo en métodos ejecutables. ## 🤝 Contribuir ### Estándares de Código - Seguir [OCA Guidelines](https://github.com/OCA/odoo-community.org/blob/master/website/Contribution/CONTRIBUTING.rst) - Usar **black** para formateo - Usar **isort** para imports - Pasar **flake8** y **pylint-odoo** - Todos los commits deben pasar pre-commit hooks ### Estructura de Commits ``` [TAG] module_name: Brief description Detailed explanation if needed Tags: [ADD], [FIX], [IMP], [REF], [REM], [I18N], [DOC] ``` ### Testing Todos los nuevos features deben incluir: - Tests unitarios - Tests de integración (si aplica) - Documentación actualizada ## 📝 License AGPL-3.0 or later ## 👥 Autores - **Criptomart** - Development - **OCA Community** - Base addons ## 🔗 Enlaces - **Odoo Documentation**: https://www.odoo.com/documentation/18.0/ - **OCA**: https://github.com/OCA - **OCB**: https://github.com/OCA/OCB - **OCA Guidelines**: https://github.com/OCA/odoo-community.org --- **Versión Odoo**: 18.0 **Python**: 3.10+ **Última Actualización**: 2026-02-12