feat(problem): disable custom_test for remote problem

This commit is contained in:
Baoshuo Ren 2023-01-19 15:40:46 +08:00
parent 8cfa371af5
commit 4d54fdf705
Signed by: baoshuo
GPG Key ID: 00CB9680AB29F51A

View File

@ -464,28 +464,33 @@ class UOJProblem {
return $key === null ? $extra_config : $extra_config[$key]; return $key === null ? $extra_config : $extra_config[$key];
} }
public function getCustomTestRequirement() { public function getCustomTestRequirement() {
if ($this->type() == 'remote') {
return [];
}
$extra_config = json_decode($this->info['extra_config'], true); $extra_config = json_decode($this->info['extra_config'], true);
if (isset($extra_config['custom_test_requirement'])) { if (isset($extra_config['custom_test_requirement'])) {
return $extra_config['custom_test_requirement']; return $extra_config['custom_test_requirement'];
} else {
$answer = [
'name' => 'answer',
'type' => 'source code',
'file_name' => 'answer.code'
];
foreach ($this->getSubmissionRequirement() as $req) {
if ($req['name'] == 'answer' && $req['type'] == 'source code' && isset($req['languages'])) {
$answer['languages'] = $req['languages'];
}
}
return [
$answer, [
'name' => 'input',
'type' => 'text',
'file_name' => 'input.txt'
]
];
} }
$answer = [
'name' => 'answer',
'type' => 'source code',
'file_name' => 'answer.code'
];
foreach ($this->getSubmissionRequirement() as $req) {
if ($req['name'] == 'answer' && $req['type'] == 'source code' && isset($req['languages'])) {
$answer['languages'] = $req['languages'];
}
}
return [
$answer, [
'name' => 'input',
'type' => 'text',
'file_name' => 'input.txt'
]
];
} }
public function userCanView(array $user = null, array $cfg = []) { public function userCanView(array $user = null, array $cfg = []) {