addons-cm/README.md
snt 9000e92324 [DOC] website_sale_aplicoop: Add lazy loading documentation and implement v18.0.1.3.0 feature
- Add LAZY_LOADING.md with complete technical documentation (600+ lines)
- Add LAZY_LOADING_QUICK_START.md for quick reference (5 min)
- Add LAZY_LOADING_DOCS_INDEX.md as navigation guide
- Add UPGRADE_INSTRUCTIONS_v18.0.1.3.0.md with step-by-step installation
- Create DOCUMENTATION.md as main documentation index
- Update README.md with lazy loading reference
- Update docs/README.md with new docs section
- Update website_sale_aplicoop/README.md with features and changelog
- Create website_sale_aplicoop/CHANGELOG.md with version history

Lazy Loading Implementation (v18.0.1.3.0):
- Reduces initial store load from 10-20s to 500-800ms (20x faster)
- Add pagination configuration to res_config_settings
- Add _get_products_paginated() method to group_order model
- Implement AJAX endpoint for product loading
- Create 'Load More' button in website templates
- Add JavaScript listener for lazy loading behavior
- Backward compatible: can be disabled in settings

Performance Improvements:
- Initial load: 500-800ms (vs 10-20s before)
- Subsequent pages: 200-400ms via AJAX
- DOM optimization: 20 products initial vs 1000+ before
- Configurable: enable/disable and items per page

Documentation Coverage:
- Technical architecture and design
- Installation and upgrade instructions
- Configuration options and best practices
- Troubleshooting and common issues
- Performance metrics and validation
- Rollback procedures
- Future improvements roadmap
2026-02-16 18:39:39 +01:00

253 lines
7.7 KiB
Markdown

# 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