{% extends base.html %} {% block js %} function contest_response(response, error) { if( error == null && response != null && !isNaN(response)) window.location = "/contest/" + response; else { utils.display_notification("error", new Date().getTime() / 1000, error, response); } } function validate_contest() { var name = document.add_contest.name.value; var description = document.add_contest.description.value; var token_initial = document.add_contest.token_initial.value; var token_max = document.add_contest.token_max.value; var token_total = document.add_contest.token_total.value; var token_min_interval = document.add_contest.token_min_interval.value; var token_gen_time = document.add_contest.token_gen_time.value; var token_gen_number = document.add_contest.token_gen_number.value; var start = document.add_contest.start.value; var end = document.add_contest.end.value; if( name === undefined || name == '') { alert('No contest name specified'); document.add_contest.name.focus(); return false; } par = ""; par += "&name="+encodeURIComponent(name); par += "&description="+encodeURIComponent(description); par += "&token_initial="+encodeURIComponent(token_initial); par += "&token_max="+encodeURIComponent(token_max); par += "&token_total="+encodeURIComponent(token_total); par += "&token_min_interval="+encodeURIComponent(token_min_interval); par += "&token_gen_time="+encodeURIComponent(token_gen_time); par += "&token_gen_number="+encodeURIComponent(token_gen_number); par += "&start="+encodeURIComponent(start); par += "&end="+encodeURIComponent(end); cmsutils.ajax_request('/contest/add', par, contest_response, "POST"); return false; } {% end %} {% block core %}

New contest

Name
Description
Initial number of tokens
Maximum accumulated tokens
Total number of tokens
Minimum interval between tokens
Token generation period
Token generation number
Start
End
{% end %}