diff --git a/app/forms.py b/app/forms.py index 8aa1a20..873c9cb 100644 --- a/app/forms.py +++ b/app/forms.py @@ -1,4 +1,5 @@ from datetime import datetime, timedelta +from flask.ext.login import current_user from flask_wtf import Form from wtforms import SelectField, DateTimeField, validators, SubmitField, HiddenField from models import User, Location @@ -15,8 +16,11 @@ class OrderForm(Form): submit_button = SubmitField('Submit') def populate(self): - self.courrier_id.choices = [(0, None)] + \ - [(u.id, u.username) for u in User.query.order_by('username')] + if current_user.is_admin(): + self.courrier_id.choices = [(0, None)] + \ + [(u.id, u.username) for u in User.query.order_by('username')] + else: + self.courrier_id.choices = [(0, None), (current_user.id, current_user.username)] self.location_id.choices = [(l.id, l.name) for l in Location.query.order_by('name')] if self.stoptime.data is None: diff --git a/app/templates/layout.html b/app/templates/layout.html index 8f4c712..0971737 100644 --- a/app/templates/layout.html +++ b/app/templates/layout.html @@ -1,4 +1,5 @@ {% extends "bootstrap/base.html" %} +{% import "bootstrap/utils.html" as utils %} {% set navbar = [ ('home', 'Home'), @@ -52,6 +53,7 @@ {% endblock %} {% block content -%} + {{ utils.flashed_messages() }}
{% block container -%} {%- endblock %} diff --git a/app/templates/order.html b/app/templates/order.html index 39e13b0..ab64a8b 100644 --- a/app/templates/order.html +++ b/app/templates/order.html @@ -6,7 +6,11 @@

Order {{ order.id }}

- Courrier: {{ order.courrier.username }}
+ Courrier: {{ order.courrier.username }} + {% if order.courrier == None %} + Volunteer + {% endif %} +
Location: {{ order.location.name }}
Starttime: {{ order.starttime }}
Stoptime: {{ order.stoptime }}
@@ -19,7 +23,7 @@

Order:

- {{ wtf.quick_form(form, action=url_for('.order_create'), button_map={'submit_button': 'primary'}, form_type='horizontal') }} + {{ wtf.quick_form(form, action=url_for('.order_item_create', id=order.id), button_map={'submit_button': 'primary'}, form_type='horizontal') }}
{% endblock %} \ No newline at end of file diff --git a/app/views/order.py b/app/views/order.py index a12ba3d..92b59e9 100644 --- a/app/views/order.py +++ b/app/views/order.py @@ -1,5 +1,5 @@ __author__ = 'feliciaan' -from flask import url_for, render_template, abort, redirect, Blueprint +from flask import url_for, render_template, abort, redirect, Blueprint, flash from flask.ext.login import current_user, login_required from datetime import datetime @@ -73,4 +73,20 @@ def delete_item(order_id, item_id): return redirect(url_for('.order', id=order_id)) abort(404) + +@order_bp.route('//volunteer') +@login_required +def volunteer(id): + order = Order.query.filter(Order.id == id).first() + if order is not None: + print(order.courrier_id) + if order.courrier_id == 0: + order.courrier_id = current_user.id + db.session.commit() + flash("Thank you for volunteering!") + else: + flash("Volunteering not possible!") + return redirect(url_for('.order', id=id)) + abort(404) + app.register_blueprint(order_bp, url_prefix='/order') \ No newline at end of file