Redirect to delivery page after order has been placed

This commit is contained in:
Yohan Boniface 2019-03-24 21:37:36 +01:00
parent 7cccbad9e5
commit 1ee0b20bca

View file

@ -228,11 +228,12 @@ async def place_order(request, response, id):
delivery = Delivery.load(id) delivery = Delivery.load(id)
email = request.query.get("email", None) email = request.query.get("email", None)
user = session.user.get(None) user = session.user.get(None)
delivery_url = f"/livraison/{delivery.id}"
if not email and user: if not email and user:
email = user.email email = user.email
if not email: if not email:
response.message("Impossible de comprendre pour qui passer commande…", "error") response.message("Impossible de comprendre pour qui passer commande…", "error")
response.redirect = request.path response.redirect = delivery_url
return return
if request.method == "POST": if request.method == "POST":
form = request.form form = request.form
@ -248,7 +249,7 @@ async def place_order(request, response, id):
del delivery.orders[email] del delivery.orders[email]
delivery.persist() delivery.persist()
response.message("La commande est vide.", status="warning") response.message("La commande est vide.", status="warning")
response.redirect = f"/livraison/{delivery.id}" response.redirect = delivery_url
return return
delivery.orders[email] = order delivery.orders[email] = order
delivery.persist() delivery.persist()
@ -266,8 +267,8 @@ async def place_order(request, response, id):
body=txt, body=txt,
html=html, html=html,
) )
response.message("La commande a bien été prise en compte!") response.message(f"La commande pour «{email}» a bien été prise en compte!")
response.redirect = request.path response.redirect = f"/livraison/{delivery.id}"
else: else:
order = delivery.orders.get(email) or Order() order = delivery.orders.get(email) or Order()
response.html( response.html(