增加比赛题目SPJ的设置

This commit is contained in:
virusdefender
2016-04-05 18:43:24 +08:00
parent 247d356f7f
commit 7fef9ba6cb
5 changed files with 24 additions and 4 deletions

View File

@@ -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"]

View File

@@ -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;
} }
} }
}); });

View File

@@ -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;
}); });

View File

@@ -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);
} }
} }

View File

@@ -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>