Accept Merge Request #214 完成部分小任务,修复小 bug,增加功能 : (virusdefender-dev -> dev)

Merge Request: 完成部分小任务,修复小 bug,增加功能
Created By: @virusdefender
Accepted By: @virusdefender
URL: https://coding.net/u/virusdefender/p/qduoj/git/merge/214
This commit is contained in:
virusdefender
2015-09-08 17:53:39 +08:00
7 changed files with 53 additions and 18 deletions

View File

@@ -416,4 +416,5 @@ def contest_rank_page(request, contest_id):
return render(request, "oj/contest/contest_rank.html", return render(request, "oj/contest/contest_rank.html",
{"contest": contest, "contest_problems": contest_problems, {"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"})

View File

@@ -4,9 +4,9 @@ services:
- mysql - mysql
env: env:
- oj_env="daocloud" - oj_env="local"
script: script:
- pip install -r requirements.txt - pip install -r requirements.txt
- mkdir LOG - mkdir log
- python manage.py test - python manage.py test

View File

@@ -1,5 +1,10 @@
require(["jquery", "codeMirror", "csrfToken", "bsAlert"], function ($, codeMirror, csrfTokenHeader, bsAlert) { 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 language = $("input[name='language'][checked]").val();
var submissionId; 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 () { $("#submit-code-button").click(function () {
var code = codeEditor.getValue(); var code = codeEditor.getValue();
if (!code.trim()) {
bsAlert("请填写代码!");
hideLoading();
return false;
}
if(guessLanguage(code) != language){
if(!confirm("您选择的代码语言可能存在错误,是否继续提交?")){
return;
}
}
if (location.href.indexOf("contest") > -1) { if (location.href.indexOf("contest") > -1) {
var problemId = location.pathname.split("/")[4]; var problemId = location.pathname.split("/")[4];
var contestId = location.pathname.split("/")[2]; var contestId = location.pathname.split("/")[2];
@@ -113,15 +146,8 @@ require(["jquery", "codeMirror", "csrfToken", "bsAlert"], function ($, codeMirro
showLoading(); showLoading();
if (!code.trim()) {
bsAlert("请填写代码!");
hideLoading();
return false;
}
$("#result").html(""); $("#result").html("");
$.ajax({ $.ajax({
beforeSend: csrfTokenHeader, beforeSend: csrfTokenHeader,
url: url, url: url,

View File

@@ -72,13 +72,13 @@
<div> <div>
<label class="radio-inline"> <label class="radio-inline">
<input type="radio" name="language" value="1" checked> C (gcc 4.8) <input type="radio" name="language" value="1" checked> C (GCC 4.8)
</label> </label>
<label class="radio-inline"> <label class="radio-inline">
<input type="radio" name="language" value="2"> C++ (g++ 4.3) <input type="radio" name="language" value="2"> C++ (G++ 4.3)
</label> </label>
<label class="radio-inline"> <label class="radio-inline">
<input type="radio" name="language" value="3"> Java (jre 1.7) <input type="radio" name="language" value="3"> Java (Oracle JDK 1.7)
</label> </label>
</div> </div>
</div> </div>

View File

@@ -50,6 +50,7 @@
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
<input type="checkbox" id="auto-refresh" {% if auto_refresh %}checked{% endif %} onchange="if(this.checked){location.href='?auto_refresh=true'}else{location.href=location.href.split('?')[0]}"> 自动刷新
{% else %} {% else %}
<p>还没有结果</p> <p>还没有结果</p>
{% endif %} {% endif %}
@@ -60,4 +61,11 @@
{% block js_block %} {% block js_block %}
{% if auto_refresh %}
<script>
setTimeout(function(){
location.reload();
}, 5000);
</script>
{% endif %}
{% endblock %} {% endblock %}

View File

@@ -43,7 +43,7 @@
</p> </p>
{% endifequal %} {% endifequal %}
{% ifequal submission.result 4 %} {% ifequal submission.result 4 %}
<p>{{ submission.info }}</p> <pre>{{ submission.info }}</pre>
{% endifequal %} {% endifequal %}
<p>提交时间 : {{ submission.create_time }}</p> <p>提交时间 : {{ submission.create_time }}</p>
</div> </div>

View File

@@ -65,13 +65,13 @@
<label>选择语言</label> <label>选择语言</label>
<div> <div>
<label class="radio-inline"> <label class="radio-inline">
<input type="radio" name="language" value="1" checked> C (gcc 4.8) <input type="radio" name="language" value="1" checked> C (GCC 4.8)
</label> </label>
<label class="radio-inline"> <label class="radio-inline">
<input type="radio" name="language" value="2"> C++ (g++ 4.3) <input type="radio" name="language" value="2"> C++ (G++ 4.3)
</label> </label>
<label class="radio-inline"> <label class="radio-inline">
<input type="radio" name="language" value="3"> Java (jre 1.7) <input type="radio" name="language" value="3"> Java (Oracle JDK 1.7)
</label> </label>
</div> </div>
</div> </div>