Imugiii
2f98168182
feat(borne): produit/menu en rupture stock non commandable (RG-T21)
...
CI / secret-scan (push) Successful in 12s
CI / php-lint (push) Successful in 26s
CI / secret-scan (pull_request) Successful in 13s
CI / php-lint (pull_request) Successful in 25s
CI / static-tests (pull_request) Successful in 52s
CI / static-tests (push) Successful in 57s
CI / js-tests (push) Successful in 32s
CI / js-tests (pull_request) Successful in 31s
La rupture calculee (autoUnavailableIds) etait deja derivee mais pas
appliquee au parcours de commande. Desormais :
- CatalogueController expose is_orderable par produit/menu (menu = burger
impose seul), en croisant le catalogue avec autoUnavailableIds en une
requete (pas de N+1). La borne (data.js -> commandable) grise la tuile +
badge "Indisponible" et bloque le clic (page-products.js + CSS).
- Garde SERVEUR a la creation de commande (OrderRepository::resolveLine) :
un produit, ou le burger d'un menu, en rupture est refuse quel que soit
le canal, y compris par acces direct ou repli sans-JS. C'est la couche
qui fait foi ; le grisage borne n'est qu'un echo UX.
Tests : CatalogueControllerTest (is_orderable liste+detail, produits+menus),
OrderRepositoryTest (refus a la commande produit + menu burger), data.test
(commandable). Doubles desambiguises (autoUnavailableIds vs composition).
PHPStan L6 propre.
2026-06-24 09:20:40 +00:00
411b04d548
feat(borne): menu Maxi agrandit la boisson en 50cl + transport du format ( #98 )
CI / secret-scan (push) Successful in 13s
CI / php-lint (push) Successful in 33s
CI / static-tests (push) Successful in 1m5s
CI / js-tests (push) Successful in 35s
2026-06-24 11:04:20 +02:00
82adc77879
fix(borne): affiche la Grande en menu Maxi (accompagnement) ( #90 )
CI / secret-scan (push) Successful in 9s
CI / php-lint (push) Successful in 24s
CI / static-tests (push) Successful in 55s
CI / js-tests (push) Successful in 27s
2026-06-22 16:23:39 +02:00
042c30a5fe
fix(borne): persiste + garde le mode de consommation (corrige 422 paiement) ( #89 )
CI / secret-scan (push) Successful in 14s
CI / php-lint (push) Successful in 30s
CI / static-tests (push) Successful in 1m1s
CI / js-tests (push) Successful in 30s
2026-06-22 15:43:32 +02:00
545aa19cf1
feat(borne): tailles 30/50cl boissons a la carte (R4) ( #88 )
CI / secret-scan (push) Successful in 18s
CI / php-lint (push) Successful in 33s
CI / static-tests (push) Successful in 1m9s
CI / js-tests (push) Successful in 41s
2026-06-22 14:07:46 +02:00
034038a31f
feat(orders): UI modificateurs composeur comptoir/drive (R3c) ( #87 )
CI / secret-scan (push) Successful in 13s
CI / php-lint (push) Successful in 28s
CI / static-tests (push) Successful in 56s
CI / js-tests (push) Successful in 31s
2026-06-22 13:39:30 +02:00
6347c66a7e
feat(orders): composeur de menus (slots + format) saisie comptoir/drive ( #86 )
CI / secret-scan (push) Successful in 8s
CI / php-lint (push) Successful in 21s
CI / static-tests (push) Successful in 48s
CI / js-tests (push) Successful in 28s
2026-06-22 12:28:13 +02:00
66aaa77f87
feat(borne): police OpenDyslexic auto-hebergee + bascule accessibilite (RGAA Cr 1.c.2) ( #73 )
CI / secret-scan (push) Successful in 8s
CI / php-lint (push) Successful in 20s
CI / static-tests (push) Successful in 47s
CI / js-tests (push) Successful in 24s
2026-06-22 08:38:46 +02:00
7575d0458a
feat(borne): soumission reelle de commande + ecran chevalet (P5 L4) ( #68 )
CI / secret-scan (push) Successful in 11s
CI / php-lint (push) Successful in 23s
CI / static-tests (push) Successful in 54s
CI / js-tests (push) Successful in 28s
2026-06-19 20:02:01 +02:00
22a4bacc22
feat(borne): modale options produit + grille en modales (P5 L3) ( #66 )
CI / secret-scan (push) Successful in 9s
CI / php-lint (push) Successful in 22s
CI / static-tests (push) Successful in 54s
CI / js-tests (push) Successful in 29s
2026-06-19 18:41:57 +02:00
6e5a5f9334
feat(borne): composeur menu pilote par les slots /api/menus (P5 L2) ( #65 )
CI / secret-scan (push) Successful in 11s
CI / php-lint (push) Successful in 31s
CI / static-tests (push) Successful in 58s
CI / js-tests (push) Successful in 33s
2026-06-19 18:30:38 +02:00
c73afdf471
feat(borne): panneau commande persistant + bandeau categories (P5 L1) ( #64 )
CI / secret-scan (push) Successful in 10s
CI / php-lint (push) Successful in 21s
CI / static-tests (push) Successful in 53s
CI / js-tests (push) Successful in 26s
2026-06-19 16:54:47 +02:00
7a0702ff6e
feat(borne): cablage de la borne sur l'API (CORS + data.js) ( #61 )
CI / secret-scan (push) Successful in 8s
CI / php-lint (push) Successful in 23s
CI / static-tests (push) Successful in 52s
CI / js-tests (push) Successful in 26s
2026-06-18 16:46:17 +02:00
60535bbe00
feat(admin): modal de re-autorisation PIN ( #52 )
CI / secret-scan (push) Successful in 15s
CI / php-lint (push) Successful in 19s
CI / static-tests (push) Successful in 1m5s
CI / js-tests (push) Successful in 32s
CI / auto-merge (push) Has been skipped
2026-06-18 13:17:59 +02:00
1ecd78324c
feat(borne): modale allergenes generale (14 INCO) sur carte et fiche + harnais tests JS (P3) ( #36 )
CI / secret-scan (push) Successful in 7s
CI / php-lint (push) Successful in 18s
CI / static-tests (push) Successful in 42s
CI / js-tests (push) Successful in 18s
CI / auto-merge (push) Has been skipped
2026-06-17 12:10:46 +02:00