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
...@@ -159,12 +159,16 @@ def parse_gen_points( ...@@ -159,12 +159,16 @@ def parse_gen_points(
) -> Tuple[str, Optional[decimal.Decimal], Optional[str]]: ) -> Tuple[str, Optional[decimal.Decimal], Optional[str]]:
"""Zobecnění parse_points(). Naparsuje generalizované body používané při editaci. """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.""" 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': if gen_points is None or gen_points == 'X':
# Řešení nemá existovat # Řešení nemá existovat
return 'X', None, None return 'X', None, None
elif gen_points == "" or gen_points == '?': elif gen_points == "" or gen_points == '?':
# Řešení má existovat, ale nemá přidělené body # Řešení má existovat, ale nemá přidělené body
return 'N', None, None return 'N', None, None
elif gen_points == 'P':
# Prázdný protokol
return 'P', decimal.Decimal(0), None
else: else:
# Řešení je ohodnoceno # Řešení je ohodnoceno
try: try:
... ...
......
...@@ -141,6 +141,8 @@ def user_flags(u: db.User) -> Markup: ...@@ -141,6 +141,8 @@ def user_flags(u: db.User) -> Markup:
def sol_editable_points(s: Optional[db.Solution]) -> str: def sol_editable_points(s: Optional[db.Solution]) -> str:
if s is None: if s is None:
return 'X' return 'X'
elif s.is_empty:
return 'P'
elif s.points is None: elif s.points is None:
return "" return ""
else: else:
...@@ -148,10 +150,15 @@ def sol_editable_points(s: Optional[db.Solution]) -> str: ...@@ -148,10 +150,15 @@ def sol_editable_points(s: Optional[db.Solution]) -> str:
@app.template_filter() @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: if s is None:
return '' return ''
elif s.is_empty:
return Markup('<span title="Prázdný protokol">∅</span>')
elif s.points is None: elif s.points is None:
if user:
return ''
else:
return Markup('<span class="unknown">?</span>') return Markup('<span class="unknown">?</span>')
else: else:
return util_format.format_decimal(s.points) return util_format.format_decimal(s.points)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment