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})
|
response.html("delivery.html", {"delivery": delivery})
|
||||||
|
|
||||||
|
|
||||||
@app.route("/livraison/{id}/commander", methods=["GET"])
|
@app.route("/livraison/{id}/commander", methods=["POST", "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"])
|
|
||||||
@auth_required
|
@auth_required
|
||||||
async def place_order(request, response, id):
|
async def place_order(request, response, id):
|
||||||
delivery = Delivery.load(id)
|
delivery = Delivery.load(id)
|
||||||
|
@ -255,18 +229,35 @@ async def place_order(request, response, id):
|
||||||
user = session.user.get(None)
|
user = session.user.get(None)
|
||||||
if user:
|
if user:
|
||||||
email = user.email
|
email = user.email
|
||||||
order = Order()
|
if not email:
|
||||||
form = request.form
|
response.message("Impossible de comprendre pour qui passer commande…", "error")
|
||||||
for product in delivery.products:
|
response.redirect = request.path
|
||||||
quantity = form.int(product.ref, 0)
|
return
|
||||||
if quantity:
|
if request.method == "POST":
|
||||||
order.products[product.ref] = ProductOrder(wanted=quantity)
|
form = request.form
|
||||||
if not delivery.orders:
|
order = Order()
|
||||||
delivery.orders = {}
|
for product in delivery.products:
|
||||||
delivery.orders[email] = order
|
quantity = form.int(product.ref, 0)
|
||||||
delivery.persist()
|
if quantity:
|
||||||
response.message("Jour de fête! Votre commande a bien été prise en compte!")
|
order.products[product.ref] = ProductOrder(wanted=quantity)
|
||||||
response.redirect = request.url.decode()
|
if not delivery.orders:
|
||||||
|
delivery.orders = {}
|
||||||
|
delivery.orders[email] = order
|
||||||
|
delivery.persist()
|
||||||
|
response.message("Jour de fête! Votre commande a bien été prise en compte!")
|
||||||
|
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"])
|
@app.route("/livraison/{id}/importer/commande", methods=["POST"])
|
||||||
|
|
Loading…
Reference in a new issue