diff --git a/contest/tests.py b/contest/tests.py index 4c160049..a92e09ae 100644 --- a/contest/tests.py +++ b/contest/tests.py @@ -79,7 +79,7 @@ class ContestAPITest(APITestCase): self.create_user("test", "test123") url = self.reverse("contest_password_api") resp = self.client.post(url, {"contest_id": self.contest.id, "password": "error_password"}) - self.assertDictEqual(resp.data, {"error": "error", "data": "Wrong password"}) + self.assertDictEqual(resp.data, {"error": "error", "data": "Wrong password or password expired"}) resp = self.client.post(url, {"contest_id": self.contest.id, "password": DEFAULT_CONTEST_DATA["password"]}) self.assertSuccess(resp) diff --git a/problem/views/admin.py b/problem/views/admin.py index af66dc3d..280e4fa1 100644 --- a/problem/views/admin.py +++ b/problem/views/admin.py @@ -1,7 +1,7 @@ import hashlib import json import os -import shutil +# import shutil import tempfile import zipfile from wsgiref.util import FileWrapper @@ -676,10 +676,10 @@ class FPSProblemImport(CSRFExemptAPIView): with tempfile.NamedTemporaryFile("wb") as tf: for chunk in file.chunks(4096): tf.file.write(chunk) - + tf.file.flush() os.fsync(tf.file) - + problems = FPSParser(tf.name).parse() else: return self.error("Parse upload file error") diff --git a/problem/views/oj.py b/problem/views/oj.py index b091ff31..534fa605 100644 --- a/problem/views/oj.py +++ b/problem/views/oj.py @@ -9,7 +9,11 @@ from contest.models import ContestRuleType class ProblemTagAPI(APIView): def get(self, request): - tags = ProblemTag.objects.annotate(problem_count=Count("problem")).filter(problem_count__gt=0) + qs = ProblemTag.objects + keyword = request.GET.get("keyword") + if keyword: + qs = ProblemTag.objects.filter(name__icontains=keyword) + tags = qs.annotate(problem_count=Count("problem")).filter(problem_count__gt=0) return self.success(TagSerializer(tags, many=True).data) diff --git a/utils/constants.py b/utils/constants.py index ac0c97b6..749b20da 100644 --- a/utils/constants.py +++ b/utils/constants.py @@ -33,4 +33,4 @@ class Difficulty(Choices): HIGH = "High" -CONTEST_PASSWORD_SESSION_KEY = "contest_password" \ No newline at end of file +CONTEST_PASSWORD_SESSION_KEY = "contest_password"