Skip to content
Snippets Groups Projects
Commit 8087c347 authored by Martin Mareš's avatar Martin Mareš
Browse files

Formátování a parsování bodů zohledňuje is_empty

Filtr sol_display_points také umí režim pro účastnické rozhraní.
parent e62a8e24
No related branches found
No related tags found
1 merge request!134Prázdné protokoly
This commit is part of merge request !134. Comments created here will be created in the context of that merge request.
......@@ -159,12 +159,16 @@ def parse_gen_points(
) -> Tuple[str, Optional[decimal.Decimal], Optional[str]]:
"""Zobecnění parse_points(). Naparsuje generalizované body používané při editaci.
Vrátí typ hodnocení, body (decimal.Decimal nebo None) a případný error."""
gen_points = gen_points.upper()
if gen_points is None or gen_points == 'X':
# Řešení nemá existovat
return 'X', None, None
elif gen_points == "" or gen_points == '?':
# Řešení má existovat, ale nemá přidělené body
return 'N', None, None
elif gen_points == 'P':
# Prázdný protokol
return 'P', decimal.Decimal(0), None
else:
# Řešení je ohodnoceno
try:
......
......@@ -141,6 +141,8 @@ def user_flags(u: db.User) -> Markup:
def sol_editable_points(s: Optional[db.Solution]) -> str:
if s is None:
return 'X'
elif s.is_empty:
return 'P'
elif s.points is None:
return ""
else:
......@@ -148,10 +150,15 @@ def sol_editable_points(s: Optional[db.Solution]) -> str:
@app.template_filter()
def sol_display_points(s: Optional[db.Solution]) -> Union[str, Markup]:
def sol_display_points(s: Optional[db.Solution], user: bool = False) -> Union[str, Markup]:
if s is None:
return ''
elif s.is_empty:
return Markup('<span title="Prázdný protokol">∅</span>')
elif s.points is None:
if user:
return ''
else:
return Markup('<span class="unknown">?</span>')
else:
return util_format.format_decimal(s.points)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment