Merge pull request #121 from ZeusWPI/feature/order_items

add order items screen
This commit is contained in:
Maxime 2019-05-31 17:12:43 +00:00 committed by GitHub
commit 5020556dcb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 85 additions and 2 deletions

View file

@ -22,3 +22,34 @@ body {
.product .extras { .product .extras {
padding-left: 20px; padding-left: 20px;
} }
.showcase .product {
font-size: 16px;
}
/* Add clickable box */
div.box:hover {
cursor: hand;
cursor: pointer;
opacity: .9;
/*border-bottom: #f44346 1px solid !important;*/
box-shadow: 2px 4px 4px -1px #888888;
}
a.divLink {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
text-decoration: none;
/* Makes sure the link doesn't get underlined */
z-index: 10;
/* raises anchor tag above everything else in div */
background-color: white;
/*workaround to make clickable in IE */
opacity: 0;
/*workaround to make clickable in IE */
filter: alpha(opacity=0);
/*workaround to make clickable in IE */
}

View file

@ -83,8 +83,9 @@
</tbody> </tbody>
</table> </table>
</div> </div>
<div class="col-md-push-2 col-md-4 darker" id="items-ordered"> <div class="col-md-push-2 col-md-4 darker box" id="items-ordered">
<h3>Ordered products: {{ order.items.count() }}</h3> <h3>Ordered products: {{ order.items.count() }}</h3>
<a class="divLink" href="{{ url_for('.items_showcase', id=order.id) }}"></a>
{% for key, value in order.group_by_product().items() -%} {% for key, value in order.group_by_product().items() -%}
<div class="product"> <div class="product">
{{ key }}: {{ value["count"] }} {{ key }}: {{ value["count"] }}

View file

@ -0,0 +1,42 @@
{% extends "bootstrap/base.html" %}
{% import "bootstrap/utils.html" as utils %}
{% block title %}
Haldis - Order {{ order.id }}
{% endblock %}
{% block styles %}
{{ super() }}
<link rel="stylesheet" href="{{ url_for('static', filename='css/main.css') }}" media="screen">
<link rel="stylesheet" href="{{ url_for('static', filename='css/print.css') }}" media="print">
{% endblock %}
{% block scripts %}
{{ super() }}
<script async defer id="github-bjs" src="https://buttons.github.io/buttons.js"></script>
{% endblock %}
{% block content -%}
{{ utils.flashed_messages(container=True) }}
<div class="row">
<div class="col-sm-6 col-sm-offset-3 darker showcase" id="items-ordered">
<h3 class="text-center">Ordered products: {{ order.items.count() }}</h3>
{% for key, value in order.group_by_product().items() -%}
<div class="product text-center">
<p>
{{ key }}: {{ value["count"] }}
{% if value["extras"] -%}
<div class="extras">
{% for extra in value["extras"] -%}
<div>{{ extra }}</div>
{% endfor %}
</div>
{%- endif %}
</p>
</div>
{%- endfor %}
</div>
</div>
{%- endblock %}

View file

@ -56,6 +56,15 @@ def order(id, form=None):
debts = sum([o.product.price for o in order.items if not o.paid]) 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) return render_template('order.html', order=order, form=form, total_price=total_price, debts=debts)
@order_bp.route('/<id>/items')
def items_showcase(id, form=None):
order = Order.query.filter(Order.id == id).first()
if order is None:
abort(404)
if current_user.is_anonymous() and not order.public:
flash('Please login to see this order.', 'info')
abort(401)
return render_template('order_items.html', order=order)
@order_bp.route('/<id>/edit', methods=['GET', 'POST']) @order_bp.route('/<id>/edit', methods=['GET', 'POST'])
@login_required @login_required

View file

@ -10,7 +10,7 @@ E="${normal}"
if [ ! -d "venv" ]; then if [ ! -d "venv" ]; then
echo -e "${B} No venv found, creating a new one ${E}" echo -e "${B} No venv found, creating a new one ${E}"
python -m venv venv python3 -m venv venv
fi fi
source venv/bin/activate source venv/bin/activate