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

7.7 KiB

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

2. Addons OCA Modificados

Addon Propósito Repositorio OCA
account_invoice_triple_discount Sistema de triple descuento en facturas account-invoicing
purchase_triple_discount Sistema de triple descuento en compras purchase-workflow
product_origin Campo de origen del producto product-attribute
product_get_price_helper Helper para cálculo de precios product-attribute
product_main_seller Proveedor principal por producto purchase-workflow
product_price_category Sistema de categorías de precio product-attribute

3. Addons Custom Propios

Addon Propósito Estado
account_invoice_triple_discount_readonly Fix para bug de descuentos acumulados Estable
product_price_category_supplier Gestión de categorías por proveedor Estable
product_sale_price_from_pricelist Auto-cálculo precio venta desde compra Estable
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 para detalles.

🚀 Quick Start

Requisitos

  • Docker & Docker Compose
  • Python 3.10+
  • PostgreSQL 14+

Instalación

# 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

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

# 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

# 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

# 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

📖 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

🔧 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
  • 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


Versión Odoo: 18.0 Python: 3.10+ Última Actualización: 2026-02-12