81 lines
2.2 KiB
Python
81 lines
2.2 KiB
Python
from flask import url_for, render_template, abort, redirect, request
|
|
from flask.ext.login import current_user, login_required
|
|
from datetime import datetime
|
|
|
|
from app import app, db
|
|
from forms import OrderForm
|
|
from models import Order
|
|
|
|
|
|
|
|
@app.route('/')
|
|
def home():
|
|
if not current_user.is_anonymous():
|
|
orders = Order.query.filter((Order.stoptime > datetime.now()) | (Order.stoptime == None)).all()
|
|
return render_template('home_loggedin.html', orders=orders)
|
|
return render_template('home.html')
|
|
|
|
|
|
@app.route('/about/')
|
|
def about():
|
|
return render_template('about.html')
|
|
|
|
|
|
@app.route('/stats/')
|
|
@login_required
|
|
def stats():
|
|
return render_template('stats.html')
|
|
|
|
|
|
@app.route('/order/<int:id>')
|
|
@login_required
|
|
def order(id):
|
|
order = Order.query.filter(Order.id == id).first()
|
|
if order is not None:
|
|
return render_template('order.html', order=order)
|
|
return abort(404)
|
|
|
|
@app.route('/order/create', methods=['GET', 'POST'])
|
|
@login_required
|
|
def order_create():
|
|
orderForm = OrderForm()
|
|
orderForm.populate()
|
|
if orderForm.validate_on_submit():
|
|
order = Order()
|
|
orderForm.populate_obj(order)
|
|
db.session.add(order)
|
|
db.session.commit()
|
|
print(order.id)
|
|
return redirect(url_for('home'))
|
|
|
|
return render_template('order_form.html', form=orderForm)
|
|
|
|
@app.route('/order')
|
|
@login_required
|
|
def orders():
|
|
orders = Order.query.filter((Order.stoptime > datetime.now()) | (Order.stoptime == None)).all()
|
|
return render_template('orders.html', orders=orders)
|
|
|
|
|
|
if app.debug: # add route information
|
|
@app.route('/routes')
|
|
@login_required
|
|
def list_routes():
|
|
import urllib
|
|
output = []
|
|
for rule in app.url_map.iter_rules():
|
|
options = {}
|
|
for arg in rule.arguments:
|
|
options[arg] = "[{0}]".format(arg)
|
|
|
|
methods = ','.join(rule.methods)
|
|
url = url_for(rule.endpoint, **options)
|
|
line = urllib.unquote(
|
|
"{:50s} {:20s} {}".format(rule.endpoint, methods, url))
|
|
output.append(line)
|
|
|
|
string = ''
|
|
for line in sorted(output):
|
|
string += line + "<br/>"
|
|
|
|
return string
|