addons-cm/website_sale_aplicoop/controllers
GitHub Copilot 23edee6154 [IMP] website_sale_aplicoop: readable slug in the group order URL
Group order pages were published under their database id (`/eskaera/1`), which
says nothing to the member opening the link. `group.order` gains a `slug` field
and the public pages move to `/eskaera/<slug>` (e.g. `/eskaera/escola-fructuos`).

The slug is generated from the order name on creation, is unique, and can be
edited under the name on the form; emptying it regenerates it from the current
name. Values that would make the order unreachable are rejected: a plain number
(the legacy numeric URLs win that match) and the static routes served under
`/eskaera/` (`labels`, `save-order`, `i18n`, ...).

`/eskaera/<id>` and `/eskaera/<id>/checkout` are kept as redirects to their slug
URL, so the links already shared with members keep working. The AJAX endpoints
(`load-page`, `save-order`, `confirm`, ...) stay numeric: they never show up in
the address bar. Consequently the frontend now reads the order id from the
`data-order-id` attribute only, as the URL no longer carries it.

The post-migration script fills the slug of the orders that already existed.

Renaming the `/eskaera` prefix itself (`/escolas` for a schools deployment)
needs no code: a *308 Redirect / Rewrite* rule per public route in Website >
Configuration > Redirects serves the pages on the new prefix, rewrites the
links in the templates and redirects the old URLs, per website. Documented in
`readme/CONFIGURE.rst`.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-11 16:49:54 +02:00
..
__init__.py Aplicoop desde el repo de kidekoop 2026-02-11 15:32:11 +01:00
exceptions.py [FIX] website_sale_aplicoop: lint fixes (exception chaining, imports, remove unused vars) 2026-05-20 16:05:14 +02:00
portal.py [I18N] website_sale_aplicoop: Translate weekdays 2026-03-03 15:26:01 +01:00
website_sale.py [IMP] website_sale_aplicoop: readable slug in the group order URL 2026-08-11 16:49:54 +02:00
website_sale_i18n.py [IMP] website_sale_aplicoop: improve i18n label fallbacks and response parsing 2026-05-25 12:28:33 +02:00
website_sale_pickup.py [FIX] website_sale_aplicoop: lint fixes (exception chaining, imports, remove unused vars) 2026-05-20 16:05:14 +02:00
website_sale_pricing.py [FIX] website_sale_aplicoop: precio por kg/litro con IVA y granel por litro 2026-07-31 18:48:58 +02:00
website_sale_products.py [FIX] website_sale_aplicoop: lint fixes (exception chaining, imports, remove unused vars) 2026-05-20 16:05:14 +02:00
website_sale_utils.py [FIX] website_sale_aplicoop: lint fixes (exception chaining, imports, remove unused vars) 2026-05-20 16:05:14 +02:00
website_sale_validators.py [IMP] website_sale_aplicoop: automate non-weekly group order cycles 2026-07-15 16:26:14 +02:00