Odoo addons personalizados por Criptomart
Find a file
snt eb6b53db1a [ADD] website_sale_aplicoop: Phase 3 test suite implementation
Implementa test_phase3_confirm_eskaera.py con cobertura completa de los 3 helpers
creados en Phase 3 del refactoring de confirm_eskaera():

Helper Methods Tested:
- _validate_confirm_json(): Validación de request JSON
- _process_cart_items(): Procesamiento de items del carrito
- _build_confirmation_message(): Construcción de mensajes localizados

Test Coverage:
- 4 test classes
- 24 test methods
- 61 assertions

Test Breakdown:
1. TestValidateConfirmJson (5 tests):
   - Validación exitosa de datos JSON
   - Manejo de error: order_id faltante
   - Manejo de error: order no existe
   - Manejo de error: carrito vacío
   - Validación de flag is_delivery

2. TestProcessCartItems (5 tests):
   - Procesamiento exitoso de items
   - Fallback a list_price cuando price=0
   - Skip de productos inválidos
   - Error cuando no quedan items válidos
   - Traducción de nombres de productos

3. TestBuildConfirmationMessage (11 tests):
   - Mensaje de confirmación para pickup
   - Mensaje de confirmación para delivery
   - Manejo cuando no hay fechas
   - Formato de fecha DD/MM/YYYY
   - Soporte multi-idioma: ES, EU, CA, GL, PT, FR, IT

4. TestConfirmEskaera_Integration (3 tests):
   - Flujo completo para pickup order
   - Flujo completo para delivery order
   - Actualización de draft existente

Features Validated:
 Validación robusta de request JSON con mensajes de error claros
 Procesamiento de items con manejo de errores y fallbacks
 Construcción de mensajes con soporte para 7 idiomas
 Diferenciación pickup vs delivery con fechas correctas
 Integración completa end-to-end del flujo confirm_eskaera

Quality Checks:
 Sintaxis Python válida
 Pre-commit hooks: black, isort, flake8, pylint (all passed)
 671 líneas de código de tests
 29 docstrings explicativos

Total Test Suite (Phase 1 + 2 + 3):
- 53 test methods (18 + 11 + 24)
- 3 test files (test_helper_methods_phase1.py, test_phase2_eskaera_shop.py, test_phase3_confirm_eskaera.py)
- 1,311 líneas de código de tests

Este commit completa la implementación de tests para el refactoring completo de 3 fases,
proporcionando cobertura exhaustiva de todas las funcionalidades críticas del sistema
eskaera (pedidos de grupo cooperativos).

Files:
- website_sale_aplicoop/tests/test_phase3_confirm_eskaera.py (NEW, 671 lines)
2026-02-16 16:00:39 +01:00
.github [FIX] website_sale_aplicoop: Correct XPath for block element 2026-02-16 15:16:56 +01:00
.vscode build: configurar herramientas de verificación OCA 2026-02-11 16:09:41 +01:00
account_invoice_triple_discount build: configurar herramientas de verificación OCA 2026-02-11 16:09:41 +01:00
account_invoice_triple_discount_readonly update pylint10, corrije authors manifest 2026-02-12 17:15:33 +01:00
docs [DOC] all: Reorganize and consolidate project documentation 2026-02-12 16:25:49 +01:00
ocb@6fb141fc75 [FIX] product_sale_price_from_pricelist: Actualizar tests para Odoo 18 2026-02-12 19:23:29 +01:00
product_get_price_helper [DOC] all: Reorganize and consolidate project documentation 2026-02-12 16:25:49 +01:00
product_main_seller [DOC] all: Reorganize and consolidate project documentation 2026-02-12 16:25:49 +01:00
product_origin [FIX] product_sale_price_from_pricelist: Actualizar tests para Odoo 18 2026-02-12 19:23:29 +01:00
product_price_category build: configurar herramientas de verificación OCA 2026-02-11 16:09:41 +01:00
product_price_category_supplier [FIX] website_sale_aplicoop: Correct XPath for block element 2026-02-16 15:16:56 +01:00
product_sale_price_from_pricelist [FIX] product_sale_price_from_pricelist: Correct _compute_price method signature 2026-02-16 15:26:22 +01:00
purchase_triple_discount build: configurar herramientas de verificación OCA 2026-02-11 16:09:41 +01:00
setup build: configurar herramientas de verificación OCA 2026-02-11 16:09:41 +01:00
website_sale_aplicoop [ADD] website_sale_aplicoop: Phase 3 test suite implementation 2026-02-16 16:00:39 +01:00
.editorconfig build: configurar herramientas de verificación OCA 2026-02-11 16:09:41 +01:00
.flake8 build: configurar herramientas de verificación OCA 2026-02-11 16:09:41 +01:00
.gitignore LaOsaCoop/Odoo16#12 migration pos_balance_multishop + pos_balance_epelsa 2025-05-22 13:10:51 +02:00
.isort.cfg build: configurar herramientas de verificación OCA 2026-02-11 16:09:41 +01:00
.pre-commit-config.yaml update pylint10, corrije authors manifest 2026-02-12 17:15:33 +01:00
.prettierignore [FIX] product_sale_price_from_pricelist: Actualizar tests para Odoo 18 2026-02-12 19:23:29 +01:00
.prettierrc.yml [FIX] product_sale_price_from_pricelist: Actualizar tests para Odoo 18 2026-02-12 19:23:29 +01:00
.pylintrc update pylint10, corrije authors manifest 2026-02-12 17:15:33 +01:00
.pylintrc-mandatory update pylint10, corrije authors manifest 2026-02-12 17:15:33 +01:00
check_addon.sh build: configurar herramientas de verificación OCA 2026-02-11 16:09:41 +01:00
check_tax_config.sh Revertir cambio: eliminar cálculo duplicado de impuestos 2026-02-11 19:54:28 +01:00
docker-compose.yml [FIX] product_sale_price_from_pricelist: Convert JSONB columns in product_template too 2026-02-14 18:15:15 +01:00
Makefile build: configurar herramientas de verificación OCA 2026-02-11 16:09:41 +01:00
oca_dependencies.txt build: configurar herramientas de verificación OCA 2026-02-11 16:09:41 +01:00
odoo.conf docker test files 2026-02-11 15:33:31 +01:00
pyproject.toml build: configurar herramientas de verificación OCA 2026-02-11 16:09:41 +01:00
README.md [DOC] all: Reorganize and consolidate project documentation 2026-02-12 16:25:49 +01:00
requirements.txt build: configurar herramientas de verificación OCA 2026-02-11 16:09:41 +01:00
run_price_tests.sh Revertir cambio: eliminar cálculo duplicado de impuestos 2026-02-11 19:54:28 +01:00
setup.cfg build: configurar herramientas de verificación OCA 2026-02-11 16:09:41 +01:00
test_prices.py Revertir cambio: eliminar cálculo duplicado de impuestos 2026-02-11 19:54:28 +01:00
test_with_docker_run.sh Revertir cambio: eliminar cálculo duplicado de impuestos 2026-02-11 19:54:28 +01:00

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 Estable

🚀 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