From bc99390b25919f373befe38b1fcdbc7de3c2e2d3 Mon Sep 17 00:00:00 2001 From: Sli Date: Tue, 15 Apr 2025 18:42:17 +0200 Subject: [PATCH] Rename makecommand to checkout --- eboutic/README.md | 37 +++++++------------ ...makecommand-index.ts => checkout-index.ts} | 0 ...kecommand.jinja => eboutic_checkout.jinja} | 2 +- eboutic/templates/eboutic/eboutic_main.jinja | 10 ++--- eboutic/urls.py | 8 ++-- eboutic/views.py | 19 ++++------ 6 files changed, 31 insertions(+), 45 deletions(-) rename eboutic/static/bundled/eboutic/{makecommand-index.ts => checkout-index.ts} (100%) rename eboutic/templates/eboutic/{eboutic_makecommand.jinja => eboutic_checkout.jinja} (96%) diff --git a/eboutic/README.md b/eboutic/README.md index a4feb639..fa68016b 100644 --- a/eboutic/README.md +++ b/eboutic/README.md @@ -32,48 +32,39 @@ susnommés afin de comprendre comment celui-ci marche. Cette application contient les vues suivantes : -- `eboutic_main` (GET) : la vue retournant la page principale de la boutique en ligne. +- `EbouticMainView` (GET/POST) : la vue retournant la page principale de la boutique en ligne. Cette vue effectue un filtrage des produits à montrer à l'utilisateur en fonction de ce qu'il a le droit d'acheter. -Si cette vue est appelée lors d'une redirection parce qu'une erreur -est survenue au cours de la navigation sur la boutique, il est possible -de donner les messages d'erreur à donner à l'utilisateur dans la session -avec la clef ``"errors"``. +Elle est en charge de récupérer le formulaire de création d'un panier et +redirige alors vers la vue de checkout. - ``payment_result`` (GET) : retourne une page assez simple disant à l'utilisateur si son paiement a échoué ou réussi. Cette vue est appelée par redirection lorsque l'utilisateur paye son panier avec son argent du compte AE. -- ``EbouticCommand`` (POST) : traite la soumission d'un panier par l'utilisateur. -Lors de l'appel de cette vue, la requête doit contenir un cookie avec l'état -du panier à valider. Ce panier doit strictement être de la forme : -``` -[ - {"id": , "name": , "quantity": , "unit_price": }, - {"id": , "name": , "quantity": , "unit_price": }, - -] -``` -Si le panier est mal formaté ou contient des valeurs invalides, -une redirection est faite vers `eboutic_main`. -- ``pay_with_sith`` (POST) : paie le panier avec l'argent présent sur le compte +- ``EbouticCheckout`` (GET/POST) : Page récapitulant le contenu d'un panier. +Permet de sélectionner le moyen de paiement et de mettre à jour ses coordonnées +de paiement par carte bancaire. +- ``PayWithSith`` (POST) : paie le panier avec l'argent présent sur le compte AE. Redirige vers `payment_result`. - ``ETransactionAutoAnswer`` (GET) : vue destinée à communiquer avec le service de paiement bancaire pour valider ou non le paiement de l'utilisateur. +- ``BillingInfoFormFragment`` (GET/POST) : vue destinée à gérer les informations de paiement de l'utilisateur courant. # Les templates - ``eboutic_payment_result.jinja`` : très court template contenant juste un message pour dire à l'utilisateur si son achat s'est bien déroulé. Retourné par la vue ``payment_result``. -- ``eboutic_makecommand.jinja`` : template contenant un résumé du panier et deux +- ``eboutic_checkout.jinja`` : template contenant un résumé du panier et deux boutons, un pour payer avec le site AE et l'autre pour payer par carte bancaire. -Retourné par la vue ``EbouticCommand`` +Retourné par la vue ``EbouticCheckout`` +- ``eboutic_billing_info.jinja`` : formulaire de modification des coordonnées bancaires. +Elle permet également de mettre à jour ses coordonnées de paiement - ``eboutic_main.jinja`` : le plus gros template de cette application. Contient une interface pour que l'utilisateur puisse consulter les produits et remplir son panier. Les opérations de remplissage du panier se font entièrement côté client. À chaque clic pour ajouter ou retirer un élément du panier, le script JS - (AlpineJS, plus précisément) édite en même temps un cookie. -Au moment de la validation du panier, ce cookie est envoyé au serveur pour -vérifier que la commande est valide et payer. + (AlpineJS, plus précisément) édite en même temps le localStorage du navigateur. +Cette vue fabrique dynamiquement un formulaire qui sera soumis au serveur. # Les modèles diff --git a/eboutic/static/bundled/eboutic/makecommand-index.ts b/eboutic/static/bundled/eboutic/checkout-index.ts similarity index 100% rename from eboutic/static/bundled/eboutic/makecommand-index.ts rename to eboutic/static/bundled/eboutic/checkout-index.ts diff --git a/eboutic/templates/eboutic/eboutic_makecommand.jinja b/eboutic/templates/eboutic/eboutic_checkout.jinja similarity index 96% rename from eboutic/templates/eboutic/eboutic_makecommand.jinja rename to eboutic/templates/eboutic/eboutic_checkout.jinja index 3d17f023..50fbd2fa 100644 --- a/eboutic/templates/eboutic/eboutic_makecommand.jinja +++ b/eboutic/templates/eboutic/eboutic_checkout.jinja @@ -9,7 +9,7 @@ {% endblock %} {% block additional_js %} - + {% endblock %} {% block content %} diff --git a/eboutic/templates/eboutic/eboutic_main.jinja b/eboutic/templates/eboutic/eboutic_main.jinja index 9fb217cf..826e78e3 100644 --- a/eboutic/templates/eboutic/eboutic_main.jinja +++ b/eboutic/templates/eboutic/eboutic_main.jinja @@ -30,10 +30,10 @@ {{ form.management_form }} - {% if form.non_form_errors() %} + {% if form.non_form_errors() or form.errors %}
- {% for error in form.non_form_errors() %} + {% for error in form.non_form_errors() + form.errors %}

{{ error }}

{% endfor %}
@@ -50,7 +50,7 @@ -