Skip to content
Snippets Groups Projects
Commit 45014c19 authored by Jiří Setnička's avatar Jiří Setnička
Browse files

Zavedení globálního mo.now pro kešování času

Referenční čas nastavovaný v initu requestu (web) nebo při volání skriptu.
parent f750836a
No related branches found
No related tags found
2 merge requests!12Účastnická část webu podporuje všechny stavy kola,!9WIP: Zárodek uživatelské části webu a submitování
# Top-level module
import datetime
# Aktuální ročník
current_year = 70
# Referenční čas nastavovaný v initu requestu (web) nebo při volání skriptu
now: datetime.datetime
......@@ -9,6 +9,7 @@ import logging
import os
import werkzeug.exceptions
import mo
import mo.config as config
import mo.db as db
import mo.users
......@@ -75,6 +76,8 @@ def init_request():
else:
user = None
g.user = user
mo.now = datetime.datetime.now(tz=dateutil.tz.UTC)
g.now = mo.now # for templates
mo.util.current_log_user = user
# K některým podstromům je nutné mít speciální oprávnění
......@@ -93,14 +96,6 @@ def init_request():
app.before_request(init_request)
# Kešování aktuálního času
def get_request_time() -> datetime.datetime:
if not hasattr(g, 'now'):
g.now = datetime.datetime.now(tz=dateutil.tz.UTC)
return g.now
# Většina webu je v samostatných modulech
import mo.web.auth
import mo.web.menu
......
......@@ -9,7 +9,7 @@
<h3>Odevzdat řešení</h3>
{% if round.ct_submit_end != None and when > round.ct_submit_end %}
{% if round.ct_submit_end != None and g.now > round.ct_submit_end %}
<p class="alert alert-danger">Pozor, odevzdáváte po termínu. Vaše řešení nemusí být hodnoceno.
Doporučujeme využít políčko pro komentář a vysvětlit situaci.
{% endif %}
......
......@@ -10,12 +10,13 @@ import werkzeug.exceptions
import wtforms
import wtforms.validators as validators
import mo
import mo.config as config
import mo.db as db
import mo.submit
import mo.util
from mo.util import logger
from mo.web import app, get_request_time
from mo.web import app
import mo.web.util
......@@ -36,7 +37,6 @@ def user_index():
return render_template(
'user_index.html',
pions=pions,
when=get_request_time(),
db=db, # kvůli hodnotám enumů
)
......@@ -83,7 +83,7 @@ def task_statement_available(contest: db.Contest) -> bool:
return (round.state == db.RoundState.running
and round.tasks_file is not None
and round.ct_tasks_start is not None
and get_request_time() >= round.ct_tasks_start)
and mo.now >= round.ct_tasks_start)
@app.route('/user/contest/<int:id>/')
......@@ -181,7 +181,6 @@ def user_contest_task(contest_id: int, task_id: int):
contest=contest,
task=task,
papers=papers,
when=get_request_time(),
form=form,
)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment