Aplicoop desde el repo de kidekoop

This commit is contained in:
snt 2026-02-11 15:32:11 +01:00
parent 69917d1ec2
commit 7cff89e418
93 changed files with 313992 additions and 0 deletions

View file

@ -0,0 +1,180 @@
# Website Sale Aplicoop - Sistema de Pedidos Colaborativos
![Criptomart Logo](icon.svg)
**Versión:** 18.0.1.0.0-beta
**Licencia:** AGPL-3.0
**Autor:** [Criptomart](https://criptomart.net)
## Descripción
Website Sale Aplicoop es un módulo de Odoo 18 que implementa un sistema moderno y escalable para gestionar **pedidos colaborativos de compra grupal** (*eskaera* en euskera).
Este módulo reemplaza la antigua aplicación Aplicoop con una solución integrada en Odoo que permite a grupos de usuarios realizar compras coordinadas con productos específicos, fechas de corte y períodos de recogida.
## Características Principales
### 🛒 Gestión de Pedidos de Grupo
- Crear pedidos colaborativos con fechas de inicio/fin configurables
- Sistema de máquina de estados (draft → open → closed/cancelled)
- Asignación de productos por:
- Producto directo (lista explícita)
- Categoría (todos los productos en categorías seleccionadas)
- Proveedor (todos los productos del proveedor)
### 🔍 Experiencia de Compra
- Búsqueda y filtrado de productos por:
- Nombre y descripción
- Categoría
- Imágenes en miniatura de productos
- Carrito persistente por pedido (localStorage)
- Interfaz responsive (móvil-friendly)
### 👥 Control de Acceso
- Grupos de usuarios (res.partner)
- Solo usuarios miembros de grupos pueden ver/comprar en pedidos
- Dos niveles de permisos:
- Lectora (portal): ver y comprar
- Gestora: crear y editar pedidos
### 📅 Fechas y Períodos
- Fecha de inicio/fin del pedido
- Horas de apertura/cierre opcionales
- Día de corte de compras (cutoff_day)
- Día de recogida del pedido
- Períodos de recurrencia (diario, semanal, quincenal, mensual)
### 🌍 Internacionalización
Disponible en 7 idiomas:
- 🇪🇸 Español
- 🇫🇷 Francés
- 🇨🇦 Catalán
- 🇪🇺 Euskera
- 🇬🇦 Gallego
- 🇮🇹 Italiano
- 🇵🇹 Portugués
## Flujo de Compra
```
1. Usuario ve lista de pedidos activos (/eskaera)
2. Selecciona un pedido y ve productos (/eskaera/<id>)
3. Busca/filtra productos (search, category)
4. Agrega productos al carrito (localStorage)
5. Confirma el carrito (/eskaera/confirm)
6. Sale.order creada automáticamente en BD
7. Flujo estándar de Odoo (quotation → order → invoice)
```
## Instalación
1. Descargar el módulo en la carpeta de addons
2. Actualizar la lista de módulos en Odoo
3. Instalar "Website Sale Aplicoop"
4. Ir a **Website Sale > Group Orders** para crear pedidos
## Uso
### Crear un Pedido de Grupo
1. **Website Sale > Group Orders > Create**
2. Completar campos:
- Nombre del pedido
- Grupos que pueden participar (requerido)
- Productos, categorías o proveedores
- Fechas y horarios
- Día de corte y recogida
3. Cambiar estado a "Open"
4. Los usuarios pueden empezar a comprar
### Buscar y Filtrar Productos
En la página de tienda (/eskaera/<id>):
- Barra de búsqueda para buscar por nombre/descripción
- Dropdown de categorías para filtrar
- Botón "Filtrar" para aplicar
## Estructura Técnica
### Modelos
- `group.order`: Pedido de grupo (máquina de estados)
- Extensiones de `product.product` y `res.partner`
### Controlador
- `/eskaera`: Lista de pedidos activos
- `/eskaera/<id>`: Tienda de productos
- `/eskaera/add-to-cart`: Validación de productos (POST JSON)
- `/eskaera/confirm`: Crear sale.order (POST JSON)
### Vistas
- Plantillas para website (eskaera_page, eskaera_shop, eskaera_checkout)
- Formularios backend para gestión de pedidos
### Internacionalización
- Traducciones al 100% en 7 idiomas
- Basado en POT master con msgmerge
## Validaciones
- `cutoff_day`: Campo requerido
- `start_date`: Opcional (si vacío, pedido siempre abierto)
- `end_date`: Opcional (si vacío, pedido permanente)
- Validación de fechas: `start_date ≤ end_date`
- Validación de horarios: `start_time < end_time` (0-24)
## Seguridad
- CSRF token en rutas JSON
- Validación de acceso por grupo en todas las rutas
- Verificación de estado del pedido (solo open)
- ACL basado en grupos de usuario
## Performance
- Búsqueda de productos optimizada (filtered en lugar de search)
- Carrito en localStorage (sin DB writes hasta confirmación)
- Logging detallado para debugging
## Testing
Suite completa de tests:
- `test_group_order.py`: Validaciones del modelo
- `test_product_extension.py`: Extensión de productos
- `test_res_partner.py`: Extensión de partner
- `test_eskaera_shop.py`: Lógica de descubrimiento de productos
Ejecutar tests:
```bash
docker-compose exec -T odoo odoo -d odoo -p 8070 -i website_sale_aplicoop --test-enable --stop-after-init
```
## Soporte
- Documentación: Ver carpeta `readme/`
- Diagnóstico de problemas: Ver `DIAGNOSTIC_PRODUCTS.md`
- Estado del módulo: Ver `STATUS_REPORT.md`
## Licencia
AGPL-3.0 - Copyright 2025 Criptomart
## Cambios Recientes
**v18.0.1.0.0-beta:**
- ✅ Traducción completa a 7 idiomas
- ✅ Correcciones de tipos de pedido
- ✅ Descubrimiento de productos por categorías/proveedores
- ✅ Búsqueda y filtros en la tienda
- ✅ Imágenes en miniatura de productos
- ✅ Información de fechas de corte y recogida
- ✅ Suite de tests completa
---
**Desarrollado con ❤️ por [Criptomart](https://criptomart.net)**