Added totals
This commit is contained in:
parent
7514396669
commit
a0b79b68ac
3 changed files with 19 additions and 1 deletions
|
@ -1,4 +1,6 @@
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
from collections import defaultdict
|
||||||
|
|
||||||
from app import db
|
from app import db
|
||||||
|
|
||||||
|
|
||||||
|
@ -90,6 +92,17 @@ class Order(db.Model):
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return 'Order %s' % (self.location.name)
|
return 'Order %s' % (self.location.name)
|
||||||
|
|
||||||
|
def group_by_user(self):
|
||||||
|
group = defaultdict(list)
|
||||||
|
for item in self.orders:
|
||||||
|
group[item.user_id] += [item.food]
|
||||||
|
return group
|
||||||
|
|
||||||
|
def group_by_user_pay(self):
|
||||||
|
group = defaultdict(int)
|
||||||
|
for item in self.orders:
|
||||||
|
group[item.user] += item.food.price
|
||||||
|
return group
|
||||||
|
|
||||||
class OrderItem(db.Model):
|
class OrderItem(db.Model):
|
||||||
id = db.Column(db.Integer, primary_key=True)
|
id = db.Column(db.Integer, primary_key=True)
|
||||||
|
|
|
@ -20,6 +20,10 @@
|
||||||
{{ item.user.username }} - {{ item.food.name }} - {{ item.food.price|euro }}
|
{{ item.user.username }} - {{ item.food.name }} - {{ item.food.price|euro }}
|
||||||
{% if item.can_delete(order.id, current_user.id) -%}<a href="{{ url_for('.delete_item', order_id=order.id, item_id=item.id) }}"><span class="glyphicon glyphicon-remove"></span></a>{%- endif %}<br/>
|
{% if item.can_delete(order.id, current_user.id) -%}<a href="{{ url_for('.delete_item', order_id=order.id, item_id=item.id) }}"><span class="glyphicon glyphicon-remove"></span></a>{%- endif %}<br/>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
<h3>Debts</h3>
|
||||||
|
{% for key, value in total_payments.items() %}
|
||||||
|
{{ key.username }} - {{ value|euro }}<br/>
|
||||||
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-push-1 col-md-4">
|
<div class="col-md-push-1 col-md-4">
|
||||||
<h4>Order:</h4>
|
<h4>Order:</h4>
|
||||||
|
|
|
@ -41,7 +41,8 @@ def order(id):
|
||||||
form = OrderItemForm()
|
form = OrderItemForm()
|
||||||
form.populate(order.location)
|
form.populate(order.location)
|
||||||
total_price = sum([o.food.price for o in order.orders])
|
total_price = sum([o.food.price for o in order.orders])
|
||||||
return render_template('order.html', order=order, form=form, total_price=total_price)
|
total_payments = order.group_by_user_pay()
|
||||||
|
return render_template('order.html', order=order, form=form, total_price=total_price, total_payments=total_payments)
|
||||||
return abort(404)
|
return abort(404)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue