ref: cycles
src/blueprints/orders.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
from flask import request, redirect, url_for, Blueprint, jsonify, render_template from flask_login import current_user from ..types.cycle import Cycle, CycleStatus from ..types.order import Order import pdb orders = Blueprint('orders', __name__, url_prefix = '/orders') @orders.route('/', methods = ['GET', 'POST']) def index(): orders = Order.query.filter(Order.user.has(id = current_user.id)).order_by(Order.id.desc()).all() return render_template('orders.html', orders = orders, title = "Seus Pedidos") @orders.route('/create') def create(): current_cycle = Cycle.query.filter_by(status = CycleStatus.published).first() if not current_cycle: return '', 401 Order.create_for(current_user, current_cycle) return redirect(url_for('cycles.show', id = current_cycle.id)) @orders.route('/<id>', methods = ['POST']) def update(id): order = Order.query.filter_by(id = id).first() current_cycle = Cycle.query.filter_by(status = CycleStatus.published).first() if not order: order = Order.create_for(current_user, current_cycle) order.add_products(request.form.getlist('product_ids')) if 'confirm' in request.form: order.confirm() return redirect(url_for('cycles.show', id = current_cycle.id)) @orders.route('/<id>/reopen', methods = ['GET']) def reopen(id): order = Order.query.get(id) order.reopen() current_cycle = Cycle.query.filter_by(status = CycleStatus.published).first() return redirect(url_for('cycles.show', id = current_cycle.id)) @orders.route('/<id>/cancel', methods = ['GET']) def cancel(id): order = Order.query.get(id) order.cancel() current_cycle = Cycle.query.filter_by(status = CycleStatus.published).first() return redirect(url_for('cycles.show', id = current_cycle.id)) |