Don't crash when rendering None price
This commit is contained in:
parent
7b16a3b6c5
commit
b5202a9de6
3 changed files with 6 additions and 3 deletions
|
@ -19,7 +19,7 @@ from login import init_login
|
||||||
from markupsafe import Markup
|
from markupsafe import Markup
|
||||||
from models import db
|
from models import db
|
||||||
from models.anonymous_user import AnonymouseUser
|
from models.anonymous_user import AnonymouseUser
|
||||||
from utils import euro_string, price_range_string
|
from utils import euro_string, price_range_string, ignore_none
|
||||||
from zeus import init_oauth
|
from zeus import init_oauth
|
||||||
|
|
||||||
|
|
||||||
|
@ -151,6 +151,7 @@ def add_template_filters(app: Flask) -> None:
|
||||||
app.template_filter("price_range")(price_range_string)
|
app.template_filter("price_range")(price_range_string)
|
||||||
app.template_filter("any")(any)
|
app.template_filter("any")(any)
|
||||||
app.template_filter("all")(all)
|
app.template_filter("all")(all)
|
||||||
|
app.template_filter("ignore_none")(ignore_none)
|
||||||
|
|
||||||
|
|
||||||
def create_app():
|
def create_app():
|
||||||
|
|
|
@ -281,7 +281,7 @@
|
||||||
{{ "disabled" if not order.can_modify_payment(current_user.id) }}>
|
{{ "disabled" if not order.can_modify_payment(current_user.id) }}>
|
||||||
|
|
||||||
<span class="price" style="{{ 'opacity: 0.5' if paid }}">
|
<span class="price" style="{{ 'opacity: 0.5' if paid }}">
|
||||||
{{ order_items | map(attribute="price") | sum | euro }}
|
{{ order_items | map(attribute="price") | ignore_none | sum | euro }}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
{% if paid %}<span class="glyphicon glyphicon-ok" style="opacity: 0.5"></span>{% endif %}
|
{% if paid %}<span class="glyphicon glyphicon-ok" style="opacity: 0.5"></span>{% endif %}
|
||||||
|
|
|
@ -4,10 +4,12 @@ import re
|
||||||
from typing import Iterable, Optional
|
from typing import Iterable, Optional
|
||||||
|
|
||||||
|
|
||||||
def euro_string(value: int, unit="€ ") -> str:
|
def euro_string(value: Optional[int], unit="€ ") -> str:
|
||||||
"""
|
"""
|
||||||
Convert cents to string formatted euro
|
Convert cents to string formatted euro
|
||||||
"""
|
"""
|
||||||
|
if value is None:
|
||||||
|
return "✗"
|
||||||
euro, cents = divmod(value, 100)
|
euro, cents = divmod(value, 100)
|
||||||
if cents:
|
if cents:
|
||||||
return f"{unit}{euro}.{cents:02}"
|
return f"{unit}{euro}.{cents:02}"
|
||||||
|
|
Loading…
Reference in a new issue