def get(self, request, problem_code, revision_slug, testcase_id): testcase = get_git_object_or_404( TestCase, **{ "problem": self.revision, "pk": testcase_id }) if not testcase.output_file_generated(): raise Http404() file_ = testcase.output_file.file file_.open() return FileResponse(file_, content_type="txt")
def post(self, request, problem_code, revision_slug, **kwargs): instance_pk = kwargs.get(self.instance_slug) instance = get_git_object_or_404(self.model, pk=instance_pk, problem=self.revision) code_file = getattr(instance, self.code_field_name) if "source_code" in request.POST: new_file = FileModel() new_file.file.save(code_file.name, ContentFile(request.POST["source_code"])) setattr(instance, self.code_field_name, new_file) instance.save() if isinstance(self, SourceFile): self.invalidate_compilation() messages.success(request, _("Saved successfully")) return HttpResponseRedirect(request.get_full_path())
def get(self, request, problem_code, revision_slug, subtask_id): subtask = get_git_object_or_404( Subtask, **{ "problem": self.revision, "pk": subtask_id, }) testcases = subtask.testcases.all() return render(request, "problems/subtask_details.html", context={ "subtask": subtask, "testcases": testcases })
def get(self, request, problem_code, revision_slug, **kwargs): instance_pk = kwargs.get(self.instance_slug) instance = get_git_object_or_404(self.model, pk=instance_pk, problem=self.revision) code_file = getattr(instance, self.code_field_name) file_ = code_file.file file_.open() code = file_.read() lang = getattr(instance, self.language_field_name) or detect_language(instance_pk) title = str(instance) return render(request, self.template_name, context={ "code": code, "lang": lang, "title": title, "next_url": self.get_next_url(request, problem_code, revision_slug, instance) })
def get(self, request, problem_code, revision_slug, testcase_id): testcase = get_git_object_or_404( TestCase, **{ "problem": self.revision, "pk": testcase_id, }) validation_results = [] for validator in testcase.validators: validation_results.append( validator.get_or_create_testcase_result(testcase)) return render(request, "problems/testcase_details.html", context={ "testcase": testcase, "validation_results": validation_results })
def get_name(self, request, *args, **kwargs): return get_git_object_or_404(Validator, pk=kwargs.get('validator_id'), problem=self.revision).name
def get_name(self, request, *args, **kwargs): return get_git_object_or_404(Solution, pk=kwargs.get('solution_id'), problem=self.revision).name
def get_name(self, request, *args, **kwargs): return get_git_object_or_404(self.revision.checker_set, pk=kwargs.get('checker_id')).name
def get_name(self, request, *args, **kwargs): attachment_id = kwargs.get('attachment_id') return get_git_object_or_404(StatementAttachment, pk=attachment_id, problem=self.revision).name
def get_file(self, request, *args, **kwargs): return get_git_object_or_404(Grader, pk=kwargs.get('grader_id'), problem=self.revision).code.file