Implement competition start and end times

This commit is contained in:
James Wang 2016-04-19 11:00:43 -04:00
parent b428bef808
commit d5b8be16c0
No known key found for this signature in database
GPG key ID: 5B80C0B3F263CD5B
4 changed files with 21 additions and 5 deletions

View file

@ -132,7 +132,7 @@ def user_status():
"success": 1,
"logged_in": logged_in,
"admin": is_admin(),
"competition": is_admin(),
"competition": utils.is_ctf_time(),
"in_team": in_team(get_user().first()),
"username": session["username"] if logged_in else "",
}

View file

@ -100,3 +100,19 @@ def generate_identicon(email, filename):
image.save(open("pfp/%s.png" % filename, "w"), "PNG")
return
def is_ctf_time():
import settings
start = settings.get("ctf_begin")
end = settings.get("ctf_end")
start = [int(start), 0][start is None]
end = [int(end), 0][end is None]
time = get_time_since_epoch()
if start and end:
return start < time < end
if start < time and end == 0:
return True
return False

View file

@ -50,10 +50,10 @@
<li><a href="/login">Login</a></li>
</ul>
<ul class="nav navbar-nav navbar-right" ng-show="config.navbar['logged_in']==true">
<div ng-show="config.navbar['competition_started']==true">
<div ng-show="config.navbar['competition']==true">
</div>
<li><a href="/chat">Chat</a></li>
<li class="dropdown" ng-show="config.navbar['competition']==true">
<li class="dropdown" ng-show="config.navbar['competition']==true||config.navbar['admin']==true">
<a href="javascript:void(0);" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Competition <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="/problems">Problems</a></li>

View file

@ -3,9 +3,9 @@
<div ng-if="settings">
<div id="settings_msg"/>
<form class="form-horizontal" onsubmit="update_settings(); return false;" id="update_settings_form">
<input class="form-control" name="ctf_begin" value="{{ settings['ctf_begin'] }}"/>
<input class="form-control" name="ctf_begin" placeholder="CTF Start time (seconds)" value="{{ settings['ctf_begin'] }}" required/>
<br>
<input class="form-control" name="ctf_end" value="{{ settings['ctf_end'] }}"/>
<input class="form-control" name="ctf_end" placeholder="CTF End time (seconds)" value="{{ settings['ctf_end'] }}"required/>
<br>
<input type="submit" class="btn btn-success" value="Update"/>
</form>