增加编辑题目spj相关的逻辑

This commit is contained in:
virusdefender
2016-04-04 17:06:42 +08:00
parent d7532ad446
commit f69023a0f3
4 changed files with 23 additions and 3 deletions

View File

@@ -128,6 +128,9 @@ class ProblemAdminAPIView(APIView):
problem.source = data["source"] problem.source = data["source"]
problem.time_limit = data["time_limit"] problem.time_limit = data["time_limit"]
problem.memory_limit = data["memory_limit"] problem.memory_limit = data["memory_limit"]
problem.spj = data["spj"]
problem.spj_language = data["spj_language"]
problem.spj_code = data["spj_code"]
problem.difficulty = data["difficulty"] problem.difficulty = data["difficulty"]
problem.samples = json.dumps(data["samples"]) problem.samples = json.dumps(data["samples"])
problem.hint = data["hint"] problem.hint = data["hint"]

View File

@@ -38,7 +38,7 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert",
return false; return false;
} }
var spjVM = avalon.vmodels.spjConfig; var spjVM = avalon.vmodels.spjConfig;
if (spjVM.spj && spjVM.spjCode == ""){ if (spjVM.spj && !spjVM.spjCode){
bsAlert("请填写Special Judge的代码"); bsAlert("请填写Special Judge的代码");
return false; return false;
} }

View File

@@ -1,5 +1,5 @@
require(["jquery", "avalon", "editor", "uploader", "bsAlert", require(["jquery", "avalon", "editor", "uploader", "bsAlert",
"csrfToken", "tagEditor", "validator", "jqueryUI", "editorComponent", "testCaseUploader"], "csrfToken", "tagEditor", "validator", "jqueryUI", "editorComponent", "testCaseUploader", "spj"],
function ($, avalon, editor, uploader, bsAlert, csrfTokenHeader) { function ($, avalon, editor, uploader, bsAlert, csrfTokenHeader) {
avalon.ready(function () { avalon.ready(function () {
@@ -38,6 +38,11 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert",
bsAlert("请至少添加一个标签,这将有利于用户发现你的题目!"); bsAlert("请至少添加一个标签,这将有利于用户发现你的题目!");
return false; return false;
} }
var spjVM = avalon.vmodels.spjConfig;
if (spjVM.spj && !spjVM.spjCode){
bsAlert("请填写Special Judge的代码");
return false;
}
var ajaxData = { var ajaxData = {
id: avalon.vmodels.admin.problemId, id: avalon.vmodels.admin.problemId,
title: vm.title, title: vm.title,
@@ -52,8 +57,13 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert",
tags: tags, tags: tags,
input_description: vm.inputDescription, input_description: vm.inputDescription,
output_description: vm.outputDescription, output_description: vm.outputDescription,
difficulty: vm.difficulty difficulty: vm.difficulty,
spj: spjVM.spj
}; };
if (spjVM.spj) {
ajaxData.spj_language = spjVM.spjLanguage;
ajaxData.spj_code = spjVM.spjCode;
}
for (var i = 0; i < vm.samples.$model.length; i++) { for (var i = 0; i < vm.samples.$model.length; i++) {
ajaxData.samples.push({ ajaxData.samples.push({
@@ -161,6 +171,12 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert",
vm.inputDescription = problem.input_description; vm.inputDescription = problem.input_description;
vm.outputDescription = problem.output_description; vm.outputDescription = problem.output_description;
avalon.vmodels.testCaseUploader.setTestCase(problem.test_case_id); avalon.vmodels.testCaseUploader.setTestCase(problem.test_case_id);
var spjVM = avalon.vmodels.spjConfig;
spjVM.spj = problem.spj;
// spjLanguage可能是null
spjVM.spjLanguage = problem.spj_language=="2"?"2":"1";
spjVM.spjCode = problem.spj_code;
vm.source = problem.source; vm.source = problem.source;
var problemTags = problem.tags; var problemTags = problem.tags;
$.ajax({ $.ajax({

View File

@@ -105,6 +105,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>