增加比赛题目SPJ的设置
This commit is contained in:
@@ -202,6 +202,9 @@ class ContestProblemAdminAPIView(APIView):
|
|||||||
samples=json.dumps(data["samples"]),
|
samples=json.dumps(data["samples"]),
|
||||||
time_limit=data["time_limit"],
|
time_limit=data["time_limit"],
|
||||||
memory_limit=data["memory_limit"],
|
memory_limit=data["memory_limit"],
|
||||||
|
spj=data["spj"],
|
||||||
|
spj_language=data["spj_language"],
|
||||||
|
spj_code=data["spj_code"],
|
||||||
created_by=request.user,
|
created_by=request.user,
|
||||||
hint=data["hint"],
|
hint=data["hint"],
|
||||||
contest=contest,
|
contest=contest,
|
||||||
@@ -235,6 +238,9 @@ class ContestProblemAdminAPIView(APIView):
|
|||||||
contest_problem.test_case_id = data["test_case_id"]
|
contest_problem.test_case_id = data["test_case_id"]
|
||||||
contest_problem.time_limit = data["time_limit"]
|
contest_problem.time_limit = data["time_limit"]
|
||||||
contest_problem.memory_limit = data["memory_limit"]
|
contest_problem.memory_limit = data["memory_limit"]
|
||||||
|
contest_problem.spj = data["spj"]
|
||||||
|
contest_problem.spj_language = data["spj_language"]
|
||||||
|
contest_problem.spj_code = data["spj_code"]
|
||||||
contest_problem.samples = json.dumps(data["samples"])
|
contest_problem.samples = json.dumps(data["samples"])
|
||||||
contest_problem.hint = data["hint"]
|
contest_problem.hint = data["hint"]
|
||||||
contest_problem.visible = data["visible"]
|
contest_problem.visible = data["visible"]
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
require(["jquery", "avalon", "editor", "uploader", "bsAlert",
|
require(["jquery", "avalon", "editor", "uploader", "bsAlert",
|
||||||
"csrfToken", "tagEditor", "validator", "editorComponent", "testCaseUploader"],
|
"csrfToken", "tagEditor", "validator", "editorComponent", "testCaseUploader", "spj"],
|
||||||
function ($, avalon, editor, uploader, bsAlert, csrfTokenHeader) {
|
function ($, avalon, editor, uploader, bsAlert, csrfTokenHeader) {
|
||||||
|
|
||||||
avalon.ready(function () {
|
avalon.ready(function () {
|
||||||
@@ -34,6 +34,11 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert",
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
var spjVM = avalon.vmodels.spjConfig;
|
||||||
|
if (spjVM.spj && !spjVM.spjCode){
|
||||||
|
bsAlert("请填写Special Judge的代码");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
var ajaxData = {
|
var ajaxData = {
|
||||||
title: vm.title,
|
title: vm.title,
|
||||||
description: avalon.vmodels.contestProblemDescriptionEditor.content,
|
description: avalon.vmodels.contestProblemDescriptionEditor.content,
|
||||||
@@ -46,8 +51,13 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert",
|
|||||||
contest_id: avalon.vmodels.admin.contestId,
|
contest_id: avalon.vmodels.admin.contestId,
|
||||||
input_description: vm.inputDescription,
|
input_description: vm.inputDescription,
|
||||||
output_description: vm.outputDescription,
|
output_description: vm.outputDescription,
|
||||||
sort_index: vm.sortIndex
|
sort_index: vm.sortIndex,
|
||||||
|
spj: spjVM.spj
|
||||||
};
|
};
|
||||||
|
if (spjVM.spj) {
|
||||||
|
ajaxData.spj_language = spjVM.spjLanguage;
|
||||||
|
ajaxData.spj_code = spjVM.spjCode;
|
||||||
|
}
|
||||||
|
|
||||||
if (avalon.vmodels.admin.contestProblemStatus == "edit") {
|
if (avalon.vmodels.admin.contestProblemStatus == "edit") {
|
||||||
var method = "put";
|
var method = "put";
|
||||||
@@ -185,6 +195,11 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert",
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
avalon.vmodels.contestProblemHintEditor.content = problem.hint;
|
avalon.vmodels.contestProblemHintEditor.content = problem.hint;
|
||||||
|
var spjVM = avalon.vmodels.spjConfig;
|
||||||
|
spjVM.spj = problem.spj;
|
||||||
|
// spjLanguage可能是null
|
||||||
|
spjVM.spjLanguage = problem.spj_language=="2"?"2":"1";
|
||||||
|
spjVM.spjCode = problem.spj_code;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ define("spj", ["avalon", "bsAlert"], function (avalon, bsAlert) {
|
|||||||
checkboxDisabled: false,
|
checkboxDisabled: false,
|
||||||
$init: function(vm, el) {
|
$init: function(vm, el) {
|
||||||
vm.$watch("testCaseUploadFinished", function (spj) {
|
vm.$watch("testCaseUploadFinished", function (spj) {
|
||||||
console.log("watch" + spj);
|
|
||||||
vm.spj = spj;
|
vm.spj = spj;
|
||||||
vm.checkboxDisabled = true;
|
vm.checkboxDisabled = true;
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -48,7 +48,6 @@ define("testCaseUploader", ["avalon", "uploader", "bsAlert", "jquery"], function
|
|||||||
}
|
}
|
||||||
vm.uploaded = true;
|
vm.uploaded = true;
|
||||||
vm.uploadProgress = 100;
|
vm.uploadProgress = 100;
|
||||||
console.log(data.data.spj);
|
|
||||||
vm.$fire("all!testCaseUploadFinished", data.data.spj);
|
vm.$fire("all!testCaseUploadFinished", data.data.spj);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -96,6 +96,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<ms:spj $id="spjConfig"></ms:spj>
|
||||||
<ms:testcaseuploader $id="testCaseUploader"></ms:testcaseuploader>
|
<ms:testcaseuploader $id="testCaseUploader"></ms:testcaseuploader>
|
||||||
<div class="form-group col-md-12">
|
<div class="form-group col-md-12">
|
||||||
<label>提示</label>
|
<label>提示</label>
|
||||||
|
|||||||
Reference in New Issue
Block a user