From e6deec0834d6dd7f408ec1f654ed1b270c06f55a Mon Sep 17 00:00:00 2001 From: virusdefender Date: Wed, 25 Jan 2017 16:39:16 +0800 Subject: [PATCH] add upload ignored files hint --- problem/serializers.py | 2 +- problem/views/admin.py | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/problem/serializers.py b/problem/serializers.py index f35a7a03..68b209fe 100644 --- a/problem/serializers.py +++ b/problem/serializers.py @@ -2,5 +2,5 @@ from django import forms class TestCaseUploadForm(forms.Form): - spj = forms.BooleanField() + spj = forms.CharField(max_length=12) file = forms.FileField() diff --git a/problem/views/admin.py b/problem/views/admin.py index c5cd8efc..aea91dd2 100644 --- a/problem/views/admin.py +++ b/problem/views/admin.py @@ -41,7 +41,7 @@ class TestCaseUploadAPI(CSRFExemptAPIView): def post(self, request): form = TestCaseUploadForm(request.POST, request.FILES) if form.is_valid(): - spj = form.cleaned_data["spj"] + spj = form.cleaned_data["spj"] == "true" file = form.cleaned_data["file"] else: return self.error("Upload failed") @@ -65,4 +65,8 @@ class TestCaseUploadAPI(CSRFExemptAPIView): for item in test_case_list: with open(os.path.join(test_case_dir, item), "wb") as f: f.write(zip_file.read(item).replace(b"\r\n", b"\n")) - return self.success(test_case_list) + hint = None + diff = set(name_list).difference(set(test_case_list)) + if diff: + hint = ", ".join(diff) + " are ignored" + return self.success({"id": test_case_id, "file_list": test_case_list, "hint": hint, "spj": spj})