|
| 1 | +import os |
| 2 | +import shutil |
1 | 3 | import json
|
2 | 4 | import zipfile
|
3 | 5 |
|
|
10 | 12 | from utils.api import APIView, validate_serializer
|
11 | 13 | from utils.shortcuts import rand_str
|
12 | 14 | from utils.tasks import delete_files
|
13 |
| -from judge.testing import ZipFileUploader, create_new_problem_from_template |
| 15 | +from judge.testing import ZipFileUploader, create_new_problem_from_template, PathManager |
14 | 16 |
|
15 | 17 | from ..models import Problem, ProblemTag
|
16 | 18 | from ..serializers import *
|
17 | 19 |
|
18 | 20 | class ProblemBase(APIView):
|
19 | 21 | def common_checks(self, request):
|
20 | 22 | data = request.data
|
21 |
| - |
22 |
| - |
23 |
| -class ProblemFormBase(APIView): |
24 |
| - # use View's dispatch function |
25 |
| - request_parsers = None |
26 | 23 |
|
27 |
| -class ProblemAPI(ProblemFormBase): |
| 24 | +class ProblemAPI(ProblemBase): |
28 | 25 | # @validate_serializer(CreateProblemSerializer)
|
29 | 26 | @problem_permission_required
|
30 | 27 | def post(self, request):
|
@@ -128,9 +125,10 @@ def delete(self, request):
|
128 | 125 | except Problem.DoesNotExist:
|
129 | 126 | return self.error("Problem does not exists")
|
130 | 127 | ensure_created_by(problem, request.user)
|
131 |
| - # d = os.path.join(settings.TEST_CASE_DIR, problem.test_case_id) |
132 |
| - # if os.path.isdir(d): |
133 |
| - # shutil.rmtree(d, ignore_errors=True) |
| 128 | + d = PathManager.problem_dir(problem._id) |
| 129 | + if os.path.isdir(d): |
| 130 | + print('remove dir', d) |
| 131 | + shutil.rmtree(d, ignore_errors=True) |
134 | 132 | problem.delete()
|
135 | 133 | return self.success()
|
136 | 134 |
|
|
0 commit comments