mirror of
https://github.com/almet/copanier.git
synced 2025-04-28 19:42:37 +02:00
Place order: merge GET and POST views
This commit is contained in:
parent
59783879b6
commit
0480cc585a
1 changed files with 30 additions and 39 deletions
|
@ -220,33 +220,7 @@ async def view_delivery(request, response, id):
|
|||
response.html("delivery.html", {"delivery": delivery})
|
||||
|
||||
|
||||
@app.route("/livraison/{id}/commander", methods=["GET"])
|
||||
@auth_required
|
||||
async def order_form(request, response, id):
|
||||
delivery = Delivery.load(id)
|
||||
email = request.query.get("email", None)
|
||||
if not email:
|
||||
user = session.user.get(None)
|
||||
if user:
|
||||
email = user.email
|
||||
if email:
|
||||
order = delivery.orders.get(email) or Order()
|
||||
response.html(
|
||||
"place_order.html", {"delivery": delivery, "person": email, "order": order}
|
||||
)
|
||||
else:
|
||||
response.message("Impossible de comprendre pour qui passer commande…", "error")
|
||||
response.redirect = request.path
|
||||
|
||||
|
||||
@app.route("/livraison/{id}/émargement", methods=["GET"])
|
||||
@auth_required
|
||||
async def signing_sheet(request, response, id):
|
||||
delivery = Delivery.load(id)
|
||||
response.html("signing_sheet.html", {"delivery": delivery})
|
||||
|
||||
|
||||
@app.route("/livraison/{id}/commander", methods=["POST"])
|
||||
@app.route("/livraison/{id}/commander", methods=["POST", "GET"])
|
||||
@auth_required
|
||||
async def place_order(request, response, id):
|
||||
delivery = Delivery.load(id)
|
||||
|
@ -255,8 +229,13 @@ async def place_order(request, response, id):
|
|||
user = session.user.get(None)
|
||||
if user:
|
||||
email = user.email
|
||||
order = Order()
|
||||
if not email:
|
||||
response.message("Impossible de comprendre pour qui passer commande…", "error")
|
||||
response.redirect = request.path
|
||||
return
|
||||
if request.method == "POST":
|
||||
form = request.form
|
||||
order = Order()
|
||||
for product in delivery.products:
|
||||
quantity = form.int(product.ref, 0)
|
||||
if quantity:
|
||||
|
@ -266,7 +245,19 @@ async def place_order(request, response, id):
|
|||
delivery.orders[email] = order
|
||||
delivery.persist()
|
||||
response.message("Jour de fête! Votre commande a bien été prise en compte!")
|
||||
response.redirect = request.url.decode()
|
||||
response.redirect = request.path
|
||||
else:
|
||||
order = delivery.orders.get(email) or Order()
|
||||
response.html(
|
||||
"place_order.html", {"delivery": delivery, "person": email, "order": order}
|
||||
)
|
||||
|
||||
|
||||
@app.route("/livraison/{id}/émargement", methods=["GET"])
|
||||
@auth_required
|
||||
async def signing_sheet(request, response, id):
|
||||
delivery = Delivery.load(id)
|
||||
response.html("signing_sheet.html", {"delivery": delivery})
|
||||
|
||||
|
||||
@app.route("/livraison/{id}/importer/commande", methods=["POST"])
|
||||
|
|
Loading…
Reference in a new issue