From 7fef9ba6cbd8ab3c3c706810204f56a8cdd2a316 Mon Sep 17 00:00:00 2001 From: virusdefender <1670873886@qq.com> Date: Tue, 5 Apr 2016 18:43:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=AF=94=E8=B5=9B=E9=A2=98?= =?UTF-8?q?=E7=9B=AESPJ=E7=9A=84=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contest/views.py | 6 ++++++ .../src/js/app/admin/contest/editProblem.js | 19 +++++++++++++++++-- static/src/js/components/spj.js | 1 - static/src/js/components/testCaseUploader.js | 1 - template/src/admin/contest/edit_problem.html | 1 + 5 files changed, 24 insertions(+), 4 deletions(-) diff --git a/contest/views.py b/contest/views.py index 53075b0..82fc692 100644 --- a/contest/views.py +++ b/contest/views.py @@ -202,6 +202,9 @@ class ContestProblemAdminAPIView(APIView): samples=json.dumps(data["samples"]), time_limit=data["time_limit"], memory_limit=data["memory_limit"], + spj=data["spj"], + spj_language=data["spj_language"], + spj_code=data["spj_code"], created_by=request.user, hint=data["hint"], contest=contest, @@ -235,6 +238,9 @@ class ContestProblemAdminAPIView(APIView): contest_problem.test_case_id = data["test_case_id"] contest_problem.time_limit = data["time_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.hint = data["hint"] contest_problem.visible = data["visible"] diff --git a/static/src/js/app/admin/contest/editProblem.js b/static/src/js/app/admin/contest/editProblem.js index d2d2bbe..38626bf 100644 --- a/static/src/js/app/admin/contest/editProblem.js +++ b/static/src/js/app/admin/contest/editProblem.js @@ -1,5 +1,5 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert", - "csrfToken", "tagEditor", "validator", "editorComponent", "testCaseUploader"], + "csrfToken", "tagEditor", "validator", "editorComponent", "testCaseUploader", "spj"], function ($, avalon, editor, uploader, bsAlert, csrfTokenHeader) { avalon.ready(function () { @@ -34,6 +34,11 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert", return false; } } + var spjVM = avalon.vmodels.spjConfig; + if (spjVM.spj && !spjVM.spjCode){ + bsAlert("请填写Special Judge的代码"); + return false; + } var ajaxData = { title: vm.title, description: avalon.vmodels.contestProblemDescriptionEditor.content, @@ -46,8 +51,13 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert", contest_id: avalon.vmodels.admin.contestId, input_description: vm.inputDescription, 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") { var method = "put"; @@ -185,6 +195,11 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert", }) } 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; } } }); diff --git a/static/src/js/components/spj.js b/static/src/js/components/spj.js index 1969877..33b90a0 100644 --- a/static/src/js/components/spj.js +++ b/static/src/js/components/spj.js @@ -26,7 +26,6 @@ define("spj", ["avalon", "bsAlert"], function (avalon, bsAlert) { checkboxDisabled: false, $init: function(vm, el) { vm.$watch("testCaseUploadFinished", function (spj) { - console.log("watch" + spj); vm.spj = spj; vm.checkboxDisabled = true; }); diff --git a/static/src/js/components/testCaseUploader.js b/static/src/js/components/testCaseUploader.js index 49d312e..40e82e5 100644 --- a/static/src/js/components/testCaseUploader.js +++ b/static/src/js/components/testCaseUploader.js @@ -48,7 +48,6 @@ define("testCaseUploader", ["avalon", "uploader", "bsAlert", "jquery"], function } vm.uploaded = true; vm.uploadProgress = 100; - console.log(data.data.spj); vm.$fire("all!testCaseUploadFinished", data.data.spj); } } diff --git a/template/src/admin/contest/edit_problem.html b/template/src/admin/contest/edit_problem.html index a928949..313d60f 100644 --- a/template/src/admin/contest/edit_problem.html +++ b/template/src/admin/contest/edit_problem.html @@ -96,6 +96,7 @@ +