addons-cm/website_sale_aplicoop/__manifest__.py
snt 2a005a9d5a feat(website_sale_aplicoop): sistema de ribbons basado en stock
- Añadidos ribbons 'Sin Stock' (rojo) y 'Pocas Existencias' (amarillo)
- Nuevo campo configurable: umbral de stock bajo (default: 5.0)
- Campos computed en product.product:
  * is_out_of_stock: True cuando qty_available <= 0
  * is_low_stock: True cuando 0 < qty_available <= threshold
  * dynamic_ribbon_id: ribbon automático según nivel de stock
- Ordenamiento mejorado: productos con stock primero, sin stock al final
- Template actualizado:
  * Muestra ribbon de stock en tarjeta de producto
  * Deshabilita botón add-to-cart cuando producto sin stock
  * Cambia icono a 'fa-ban' en productos sin stock
- Vista de configuración: campo 'Low Stock Threshold' en Settings > Shop Performance
- Solo aplica a productos type='consu' (almacenables)
- Tests: 112 pasados, 0 fallos
2026-02-25 19:48:39 +01:00

75 lines
2.7 KiB
Python

# Copyright 2025 - Today Criptomart
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl)
{ # noqa: B018
"name": "Website Sale - Aplicoop",
"version": "18.0.1.7.0",
"category": "Website/Sale",
"summary": "Modern replacement of legacy Aplicoop - Collaborative consumption group orders",
"author": "Odoo Community Association (OCA), Criptomart",
"maintainers": ["Criptomart"],
"website": "https://git.criptomart.net/criptomart/addons-cm",
"license": "AGPL-3",
"depends": [
"website_sale",
"product",
"sale",
"stock",
"account",
"product_get_price_helper",
"product_origin_char",
],
"data": [
# Datos: Grupos propios
"data/groups.xml",
# Datos: Menús del website
"data/website_menus.xml",
# Datos: Cron jobs
"data/cron.xml",
# Datos: Product ribbons for stock levels
"data/product_ribbon_data.xml",
# Vistas de seguridad
"security/ir.model.access.csv",
"security/record_rules.xml",
# Vistas
"views/group_order_views.xml",
"views/res_partner_views.xml",
"views/res_config_settings_views.xml",
"views/website_templates.xml",
"views/product_template_views.xml",
"views/sale_order_views.xml",
"views/stock_picking_views.xml",
"views/portal_templates.xml",
"views/load_from_history_templates.xml",
],
"i18n": [
"i18n/es.po",
"i18n/eu_ES.po",
],
"external_dependencies": {
"python": [],
},
"assets": {
"web.assets_frontend": [
"website_sale_aplicoop/static/src/css/website_sale.css",
# i18n and helpers must load first
"website_sale_aplicoop/static/src/js/i18n_manager.js",
"website_sale_aplicoop/static/src/js/i18n_helpers.js",
# Core shop functionality
"website_sale_aplicoop/static/src/js/website_sale.js",
"website_sale_aplicoop/static/src/js/checkout_labels.js",
"website_sale_aplicoop/static/src/js/home_delivery.js",
"website_sale_aplicoop/static/src/js/checkout_summary.js",
# Search and pagination
"website_sale_aplicoop/static/src/js/infinite_scroll.js",
"website_sale_aplicoop/static/src/js/realtime_search.js",
],
"web.assets_tests": [
"website_sale_aplicoop/static/tests/test_suite.js",
"website_sale_aplicoop/static/tests/test_cart_functions.js",
"website_sale_aplicoop/static/tests/test_tooltips_labels.js",
"website_sale_aplicoop/static/tests/test_realtime_search.js",
],
},
"application": True,
}