diff --git a/app/app.py b/app/app.py index 11bac36..c4e09cd 100644 --- a/app/app.py +++ b/app/app.py @@ -1,8 +1,10 @@ from flask import Flask +from flask.ext.bootstrap import Bootstrap from flask.ext.sqlalchemy import SQLAlchemy app = Flask(__name__) app.config.from_object('config.Configuration') +Bootstrap(app) db = SQLAlchemy(app) diff --git a/app/foodbot.py b/app/foodbot.py index f723257..92df91e 100644 --- a/app/foodbot.py +++ b/app/foodbot.py @@ -10,6 +10,7 @@ from app import app, db from admin import admin from login import login_manager from models import * +from forms import * from utils import * from views import * diff --git a/app/forms.py b/app/forms.py new file mode 100644 index 0000000..5e21f2f --- /dev/null +++ b/app/forms.py @@ -0,0 +1,24 @@ +from datetime import datetime, timedelta +from flask_wtf import Form +from wtforms import SelectField, DateTimeField, validators, SubmitField +from models import User, Location + +__author__ = 'feliciaan' + + +class OrderForm(Form): + courrier_id = SelectField('Courrier', coerce=int) + location_id = SelectField('Location', coerce=int, validators=[validators.optional()]) + starttime = DateTimeField('Starttime', default=datetime.now) + stoptime = DateTimeField('Stoptime') + submit_button = SubmitField('Submit Form') + + def populate(self): + self.courrier_id.choices = [(0, None)] + \ + [(u.id, u.username) for u in User.query.order_by('username')] + self.location_id.choices = [(l.id, l.name) + for l in Location.query.order_by('name')] + if self.stoptime.data is None: + self.stoptime.data = datetime.now() + timedelta(hours=1) + + diff --git a/app/requirements.txt b/app/requirements.txt index 44bb7c4..b101d8f 100644 --- a/app/requirements.txt +++ b/app/requirements.txt @@ -3,6 +3,7 @@ Flask-Admin==1.0.9 Flask-Login==0.2.11 Flask-SQLAlchemy==2.0 Flask-WTF==0.10.3 +Flask-Bootstrap==3.3.2.1 Jinja2==2.7.2 MarkupSafe==0.23 SQLAlchemy==0.9.8 diff --git a/app/templates/about.html b/app/templates/about.html index b412cf7..b2732d5 100644 --- a/app/templates/about.html +++ b/app/templates/about.html @@ -1,7 +1,7 @@ {% extends "layout.html" -%} {% set active_page = "about" -%} -{% block content %} +{% block container %}
This is an About page for FoodBot. Don't I look good? Oh stop, you're making me blush.
{% endblock %} \ No newline at end of file diff --git a/app/templates/errors/401.html b/app/templates/errors/401.html index b8cb43e..59d7815 100644 --- a/app/templates/errors/401.html +++ b/app/templates/errors/401.html @@ -1,6 +1,6 @@ {% extends "layout.html" -%} -{% block content %} +{% block container %}You're not authorized to look to this page!
diff --git a/app/templates/errors/404.html b/app/templates/errors/404.html index 2a1e549..534a1e1 100644 --- a/app/templates/errors/404.html +++ b/app/templates/errors/404.html @@ -1,6 +1,6 @@ {% extends "layout.html" -%} -{% block content %} +{% block container %}What you were looking for is just not there.
diff --git a/app/templates/home.html b/app/templates/home.html index eefe505..f2bd54d 100644 --- a/app/templates/home.html +++ b/app/templates/home.html @@ -1,6 +1,6 @@ {% extends "layout.html" -%} {% set active_page = "home" -%} -{% block content %} +{% block container %}TOP 4
{% endblock %} \ No newline at end of file diff --git a/app/views.py b/app/views.py index 6bf3794..879019e 100644 --- a/app/views.py +++ b/app/views.py @@ -1,8 +1,9 @@ -from flask import url_for, render_template, abort +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 +from app import app, db +from forms import OrderForm from models import Order @@ -10,7 +11,7 @@ from models import Order @app.route('/') def home(): if not current_user.is_anonymous(): - orders = Order.query.filter(Order.stoptime > datetime.now()).all() + 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') @@ -34,6 +35,28 @@ def order(id): 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