addons-cm/website_sale_aplicoop/__manifest__.py
GitHub Copilot f2194c5367 [ADD] website_sale_disable_cart: extract cart restriction from website_sale_aplicoop
The "shop as a read-only catalog" behaviour lived inside website_sale_aplicoop,
so every site that wanted the eskaera flow also lost the standard cart. It now
ships as its own installable addon, with the redirect target configurable
instead of hardcoded to /eskaera.

- website_sale_disable_cart: hides the cart UI (12 header styles + the product
  card quick-add) and overrides the standard cart endpoints. Redirect URL is
  configurable in Website settings (default /shop); only site-internal paths are
  accepted, so a misconfigured value cannot turn the shop into an open redirect
  nor loop back into a disabled route.
- Fixes carried over from the original code: /shop/cart/quantity is the Odoo 18
  path (it was /shop/cart_quantity, which never matched), the boxed, sidebar and
  sales two/three/four headers were not covered (the cart link stayed visible on
  them), and the routes now override the standard methods instead of registering
  duplicate ones.
- website_sale_aplicoop 18.0.1.12.0: drops the view file and the four redirect
  routes; installing it no longer touches the standard shop.

Upgrade order matters: update website_sale_aplicoop first, then install
website_sale_disable_cart in a second Odoo run — both use the same XPaths and
obsolete records are only cleaned up at the end of a run.

Tests: 8/8 in website_sale_disable_cart, aplicoop unaffected (its 2 failures
predate this change). Verified live on a DB clone: /shop/cart returns 303 to the
configured URL and no cart markup remains on /shop.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-06 11:34:59 +02:00

92 lines
3.3 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.12.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",
"website_sale_stock",
"product",
"sale",
"stock",
"stock_picking_batch",
"account",
"product_get_price_helper",
"l10n_es_partner",
],
"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/product_category_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",
],
"demo": [
# Demo: Account Taxes (must be loaded first)
"demo/account_tax_demo.xml",
# Demo: Partners (Groups and Members)
"demo/res_partner_demo.xml",
# Demo: Suppliers
"demo/res_partner_suppliers_demo.xml",
# Demo: Products and Categories
"demo/product_demo.xml",
# Demo: Group Orders
"demo/group_order_demo.xml",
# Demo: Sale Orders
"demo/sale_order_demo.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,
}