diff --git a/contest/views.py b/contest/views.py index 39d0f0f..6b46c5d 100644 --- a/contest/views.py +++ b/contest/views.py @@ -416,4 +416,5 @@ def contest_rank_page(request, contest_id): return render(request, "oj/contest/contest_rank.html", {"contest": contest, "contest_problems": contest_problems, - "result": sorted(result, cmp=_cmp, reverse=True)}) + "result": sorted(result, cmp=_cmp, reverse=True), + "auto_refresh": request.GET.get("auto_refresh", None) == "true"}) diff --git a/contest_submission/views.py b/contest_submission/views.py index 538d03b..765d116 100644 --- a/contest_submission/views.py +++ b/contest_submission/views.py @@ -126,6 +126,7 @@ def contest_problem_submissions_list_page(request, contest_id, page=1): {"submissions": current_page, "page": int(page), "previous_page": previous_page, "next_page": next_page, "start_id": int(page) * 20 - 20, "contest": contest}) + return render(request, "oj/contest/submissions_list.html", {"submissions": current_page, "page": int(page), "previous_page": previous_page, "next_page": next_page, "start_id": int(page) * 20 - 20, diff --git a/daocloud.yml b/daocloud.yml index e5c5724..5e9f6ff 100644 --- a/daocloud.yml +++ b/daocloud.yml @@ -4,9 +4,9 @@ services: - mysql env: - - oj_env="daocloud" + - oj_env="local" script: - pip install -r requirements.txt - - mkdir LOG + - mkdir log - python manage.py test \ No newline at end of file diff --git a/static/src/js/app/oj/problem/problem.js b/static/src/js/app/oj/problem/problem.js index 1faeb6d..823afc8 100644 --- a/static/src/js/app/oj/problem/problem.js +++ b/static/src/js/app/oj/problem/problem.js @@ -1,5 +1,10 @@ require(["jquery", "codeMirror", "csrfToken", "bsAlert"], function ($, codeMirror, csrfTokenHeader, bsAlert) { - var codeEditor = codeMirror($("#code-editor")[0], "text/x-csrc"); + var codeEditorSelector = $("#code-editor")[0]; + // 部分界面逻辑会隐藏代码输入框,先判断有没有。 + if (codeEditorSelector == undefined) { + return; + } + var codeEditor = codeMirror(codeEditorSelector, "text/x-csrc"); var language = $("input[name='language'][checked]").val(); var submissionId; @@ -87,9 +92,37 @@ require(["jquery", "codeMirror", "csrfToken", "bsAlert"], function ($, codeMirro }) } + function guessLanguage(code) { + //cpp + if (code.indexOf("using namespace std") > -1) { + return "2"; + } + //c + if (code.indexOf("printf") > -1) { + return "1"; + } + //java + if (code.indexOf("public class Main")) { + return "3"; + } + } + $("#submit-code-button").click(function () { var code = codeEditor.getValue(); + + if (!code.trim()) { + bsAlert("请填写代码!"); + hideLoading(); + return false; + } + + if(guessLanguage(code) != language){ + if(!confirm("您选择的代码语言可能存在错误,是否继续提交?")){ + return; + } + } + if (location.href.indexOf("contest") > -1) { var problemId = location.pathname.split("/")[4]; var contestId = location.pathname.split("/")[2]; @@ -113,15 +146,8 @@ require(["jquery", "codeMirror", "csrfToken", "bsAlert"], function ($, codeMirro showLoading(); - if (!code.trim()) { - bsAlert("请填写代码!"); - hideLoading(); - return false; - } - $("#result").html(""); - $.ajax({ beforeSend: csrfTokenHeader, url: url, diff --git a/template/src/oj/contest/contest_problem.html b/template/src/oj/contest/contest_problem.html index a42b8ad..eb2d237 100644 --- a/template/src/oj/contest/contest_problem.html +++ b/template/src/oj/contest/contest_problem.html @@ -72,13 +72,13 @@
diff --git a/template/src/oj/contest/contest_rank.html b/template/src/oj/contest/contest_rank.html index 7d17134..ac2bb15 100644 --- a/template/src/oj/contest/contest_rank.html +++ b/template/src/oj/contest/contest_rank.html @@ -50,6 +50,7 @@ {% endfor %} + 自动刷新 {% else %}

还没有结果

{% endif %} @@ -60,4 +61,11 @@ {% block js_block %} +{% if auto_refresh %} + + {% endif %} {% endblock %} \ No newline at end of file diff --git a/template/src/oj/contest/submissions_list.html b/template/src/oj/contest/submissions_list.html index 7141585..0ae3031 100644 --- a/template/src/oj/contest/submissions_list.html +++ b/template/src/oj/contest/submissions_list.html @@ -65,7 +65,10 @@ {% if submissions %} +<<<<<<< HEAD +======= +>>>>>>> dev {% for item in submissions %} {% ifequal item.user_id request.user.id %} diff --git a/template/src/oj/problem/my_submission.html b/template/src/oj/problem/my_submission.html index fdfcec2..c60c146 100644 --- a/template/src/oj/problem/my_submission.html +++ b/template/src/oj/problem/my_submission.html @@ -43,7 +43,7 @@

{% endifequal %} {% ifequal submission.result 4 %} -

{{ submission.info }}

+
{{ submission.info }}
{% endifequal %}

提交时间 : {{ submission.create_time }}

diff --git a/template/src/oj/problem/problem.html b/template/src/oj/problem/problem.html index 515c6a2..06e5079 100644 --- a/template/src/oj/problem/problem.html +++ b/template/src/oj/problem/problem.html @@ -65,13 +65,13 @@