添加问题可见/不可见的API
This commit is contained in:
@@ -2,12 +2,13 @@ from django.urls import path
|
|||||||
|
|
||||||
from ..views.admin import (ContestProblemAPI, ProblemAPI, TestCaseAPI, MakeContestProblemPublicAPIView,
|
from ..views.admin import (ContestProblemAPI, ProblemAPI, TestCaseAPI, MakeContestProblemPublicAPIView,
|
||||||
CompileSPJAPI, AddContestProblemAPI, ExportProblemAPI, ImportProblemAPI,
|
CompileSPJAPI, AddContestProblemAPI, ExportProblemAPI, ImportProblemAPI,
|
||||||
FPSProblemImport)
|
FPSProblemImport, ProblemVisibleAPI)
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path("test_case", TestCaseAPI.as_view()),
|
path("test_case", TestCaseAPI.as_view()),
|
||||||
path("compile_spj", CompileSPJAPI.as_view()),
|
path("compile_spj", CompileSPJAPI.as_view()),
|
||||||
path("problem", ProblemAPI.as_view()),
|
path("problem", ProblemAPI.as_view()),
|
||||||
|
path("problem/visible", ProblemVisibleAPI.as_view()),
|
||||||
path("contest/problem", ContestProblemAPI.as_view()),
|
path("contest/problem", ContestProblemAPI.as_view()),
|
||||||
path("contest_problem/make_public", MakeContestProblemPublicAPIView.as_view()),
|
path("contest_problem/make_public", MakeContestProblemPublicAPIView.as_view()),
|
||||||
path("contest/add_problem_from_public", AddContestProblemAPI.as_view()),
|
path("contest/add_problem_from_public", AddContestProblemAPI.as_view()),
|
||||||
|
|||||||
@@ -703,3 +703,17 @@ class FPSProblemImport(CSRFExemptAPIView):
|
|||||||
problem_data["test_case_score"] = score
|
problem_data["test_case_score"] = score
|
||||||
self._create_problem(problem_data, request.user)
|
self._create_problem(problem_data, request.user)
|
||||||
return self.success({"import_count": len(problems)})
|
return self.success({"import_count": len(problems)})
|
||||||
|
|
||||||
|
|
||||||
|
class ProblemVisibleAPI(APIView):
|
||||||
|
@problem_permission_required
|
||||||
|
def put(self, request):
|
||||||
|
id = request.GET.get("problem_id")
|
||||||
|
try:
|
||||||
|
problem = Problem.objects.get(id=id)
|
||||||
|
ensure_created_by(problem, request.user)
|
||||||
|
except Problem.DoesNotExist:
|
||||||
|
self.error("problem does not exists")
|
||||||
|
problem.visible = not problem.visible
|
||||||
|
problem.save()
|
||||||
|
self.success()
|
||||||
Reference in New Issue
Block a user