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