{% endblock %}
diff --git a/app/templates/orders.html b/app/templates/orders.html
index 112684e..9757ca0 100644
--- a/app/templates/orders.html
+++ b/app/templates/orders.html
@@ -7,10 +7,19 @@
{% block container %}
+ {% if orders|count > 0 -%}
Open orders:
{% for order in orders %}
{{ util.render_order(order) }}
{% endfor %}
+ {% else %}
+ No orders available.
+ {% if not current_user.is_anonymous() %}
+ To create an order, fill in the form on the right.
+ {% else %}
+ Login to create an order, or ask someone else.
+ {% endif %}
+ {%- endif %}
{% if not current_user.is_anonymous() %}
diff --git a/app/views/order.py b/app/views/order.py
index b8089d0..2e9a07b 100644
--- a/app/views/order.py
+++ b/app/views/order.py
@@ -1,3 +1,4 @@
+
__author__ = 'feliciaan'
from flask import url_for, render_template, abort, redirect, Blueprint, flash, session
from flask.ext.login import current_user, login_required
@@ -5,7 +6,7 @@ import random
from datetime import datetime
from app import app, db
-from models import Order, OrderItem
+from models import Order, OrderItem, User
from forms import OrderItemForm, OrderForm, AnonOrderItemForm
order_bp = Blueprint('order_bp', 'order')
@@ -46,7 +47,8 @@ def order(id, form=None):
if order.stoptime and order.stoptime < datetime.now():
form = None
total_price = sum([o.product.price for o in order.items])
- return render_template('order.html', order=order, form=form, total_price=total_price)
+ debts = sum([o.product.price for o in order.items if not o.paid])
+ return render_template('order.html', order=order, form=form, total_price=total_price, debts=debts)
@order_bp.route('//create', methods=['POST'])
@@ -75,6 +77,41 @@ def order_item_create(id):
return redirect(url_for('.order', id=id))
return order(id, form=form)
+
+@order_bp.route('///paid')
+@login_required
+def item_paid(order_id, item_id):
+ item = OrderItem.query.filter(OrderItem.id == item_id).first()
+ id = current_user.id
+ if item.order.courrier_id == id or current_user.admin:
+ item.paid = True
+ db.session.commit()
+ flash('Paid %s by %s' % (item.product.name, item.user.username), 'success')
+ return redirect(url_for('.order', id=order_id))
+ abort(404)
+
+
+@order_bp.route('///user_paid')
+@login_required
+def items_user_paid(order_id, user_name):
+ user = User.query.filter(User.username == user_name).first()
+ items = []
+ if user:
+ items = OrderItem.query.filter((OrderItem.user_id == user.id) & (OrderItem.order_id == order_id))
+ else:
+ items = OrderItem.query.filter((OrderItem.name == user_name) & (OrderItem.order_id == order_id))
+ current_order = Order.query.filter(Order.id == order_id).first()
+ for item in items:
+ print(item)
+ if current_order.courrier_id == current_user.id or current_user.admin:
+ for item in items:
+ item.paid = True
+ db.session.commit()
+ flash('Paid %d items for %s' % (items.count(), item.get_name()), 'success')
+ return redirect(url_for('.order', id=order_id))
+ abort(404)
+
+
@order_bp.route('///delete')
def delete_item(order_id, item_id):
item = OrderItem.query.filter(OrderItem.id == item_id).first()
@@ -85,7 +122,7 @@ def delete_item(order_id, item_id):
product_name = item.product.name
db.session.delete(item)
db.session.commit()
- flash('Deleted %s' % product_name, 'info')
+ flash('Deleted %s' % product_name, 'success')
return redirect(url_for('.order', id=order_id))
abort(404)