mirror of
https://github.com/renbaoshuo/S2OJ.git
synced 2024-11-08 12:58:42 +00:00
fix(support IOI competition system):#6 (#33)
This commit is contained in:
parent
ec54596ab4
commit
94fbfea97f
@ -507,8 +507,13 @@ EOD;
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-sm-3">
|
<div class="col-sm-3">
|
||||||
<?php endif ?>
|
<?php endif ?>
|
||||||
<p>此次比赛为OI赛制。</p>
|
<?php if (!isset($contest['extra_config']['contest_type']) || $contest['extra_config']['contest_type']=='OI'):?>
|
||||||
<p><strong>注意:比赛时只显示测样例的结果。</strong></p>
|
<p>此次比赛为OI赛制。</p>
|
||||||
|
<p><strong>注意:比赛时只显示测样例的结果。</strong></p>
|
||||||
|
<?php elseif ($contest['extra_config']['contest_type']=='IOI'):?>
|
||||||
|
<p>此次比赛为IOI赛制。</p>
|
||||||
|
<p><strong>注意:比赛时显示测试所有数据的结果,但无法看到详细信息。</strong></p>
|
||||||
|
<?php endif?>
|
||||||
|
|
||||||
<a href="/contest/<?=$contest['id']?>/registrants" class="btn btn-info btn-block"><?= UOJLocale::get('contests::contest registrants') ?></a>
|
<a href="/contest/<?=$contest['id']?>/registrants" class="btn btn-info btn-block"><?= UOJLocale::get('contests::contest registrants') ?></a>
|
||||||
<?php if (isSuperUser($myUser)): ?>
|
<?php if (isSuperUser($myUser)): ?>
|
||||||
|
@ -171,6 +171,25 @@
|
|||||||
DB::update("update contests set extra_config = '$esc_extra_config' where id = {$contest['id']}");
|
DB::update("update contests set extra_config = '$esc_extra_config' where id = {$contest['id']}");
|
||||||
};
|
};
|
||||||
$version_form->runAtServer();
|
$version_form->runAtServer();
|
||||||
|
|
||||||
|
$contest_type_form = new UOJForm('contest_type');
|
||||||
|
$contest_type_form->addInput('contest_type', 'text', '赛制', $contest['extra_config']['contest_type'],
|
||||||
|
function ($x) {
|
||||||
|
if ($x != 'OI' && $x != 'ACM' && $x != 'IOI') {
|
||||||
|
return '不是合法的赛制名';
|
||||||
|
}
|
||||||
|
return '';
|
||||||
|
},
|
||||||
|
null
|
||||||
|
);
|
||||||
|
$contest_type_form->handle = function() {
|
||||||
|
global $contest;
|
||||||
|
$contest['extra_config']['contest_type'] = $_POST['contest_type'];
|
||||||
|
$esc_extra_config = json_encode($contest['extra_config']);
|
||||||
|
$esc_extra_config = DB::escape($esc_extra_config);
|
||||||
|
DB::update("update contests set extra_config = '$esc_extra_config' where id = {$contest['id']}");
|
||||||
|
};
|
||||||
|
$contest_type_form->runAtServer();
|
||||||
}
|
}
|
||||||
|
|
||||||
$time_form->runAtServer();
|
$time_form->runAtServer();
|
||||||
@ -255,6 +274,10 @@
|
|||||||
<h3>版本控制</h3>
|
<h3>版本控制</h3>
|
||||||
<?php $version_form->printHTML(); ?>
|
<?php $version_form->printHTML(); ?>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-sm-12 top-buffer-sm">
|
||||||
|
<h3>赛制</h3>
|
||||||
|
<?php $contest_type_form->printHTML(); ?>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<?php endif ?>
|
<?php endif ?>
|
||||||
|
@ -87,7 +87,7 @@
|
|||||||
global $problem, $contest, $myUser, $is_in_contest;
|
global $problem, $contest, $myUser, $is_in_contest;
|
||||||
|
|
||||||
$content['config'][] = array('problem_id', $problem['id']);
|
$content['config'][] = array('problem_id', $problem['id']);
|
||||||
if ($is_in_contest && !isset($contest['extra_config']["problem_{$problem['id']}"])) {
|
if ($is_in_contest && $contest['extra_config']["contest_type"]!='IOI' && !isset($contest['extra_config']["problem_{$problem['id']}"])) {
|
||||||
$content['final_test_config'] = $content['config'];
|
$content['final_test_config'] = $content['config'];
|
||||||
$content['config'][] = array('test_sample_only', 'on');
|
$content['config'][] = array('test_sample_only', 'on');
|
||||||
}
|
}
|
||||||
|
@ -116,9 +116,12 @@
|
|||||||
|
|
||||||
if ($should_show_all_details) {
|
if ($should_show_all_details) {
|
||||||
$styler = new SubmissionDetailsStyler();
|
$styler = new SubmissionDetailsStyler();
|
||||||
if (!$should_show_details) {
|
if ((!$should_show_details || ($contest['extra_config']['contest_type']=='IOI' && $contest['cur_progress'] == CONTEST_IN_PROGRESS)) && !hasContestPermission($myUser, $contest)) {
|
||||||
$styler->fade_all_details = true;
|
$styler->fade_all_details = true;
|
||||||
$styler->show_small_tip = false;
|
$styler->show_small_tip = false;
|
||||||
|
if ($contest['extra_config']['contest_type']=='IOI' && $contest['cur_progress'] == CONTEST_IN_PROGRESS) {
|
||||||
|
$styler->ioi_contest_is_running = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
@ -477,6 +477,9 @@ class JudgementDetailsPrinter {
|
|||||||
if ($this->styler->show_small_tip) {
|
if ($this->styler->show_small_tip) {
|
||||||
echo '<div class="text-right text-muted">', '小提示:点击横条可展开更详细的信息', '</div>';
|
echo '<div class="text-right text-muted">', '小提示:点击横条可展开更详细的信息', '</div>';
|
||||||
}
|
}
|
||||||
|
elseif ($this->styler->ioi_contest_is_running) {
|
||||||
|
echo '<div class="text-right text-muted">', 'IOI赛制比赛中不支持显示详细信息', '</div>';
|
||||||
|
}
|
||||||
$this->_print_c($node);
|
$this->_print_c($node);
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
} elseif ($node->nodeName == 'subtask') {
|
} elseif ($node->nodeName == 'subtask') {
|
||||||
@ -721,6 +724,7 @@ class CustomTestSubmissionDetailsStyler {
|
|||||||
public $show_small_tip = false;
|
public $show_small_tip = false;
|
||||||
public $collapse_in = true;
|
public $collapse_in = true;
|
||||||
public $fade_all_details = false;
|
public $fade_all_details = false;
|
||||||
|
public $ioi_contest_is_running = false;
|
||||||
public function getTestInfoClass($info) {
|
public function getTestInfoClass($info) {
|
||||||
if ($info == 'Success') {
|
if ($info == 'Success') {
|
||||||
return 'panel-uoj-accepted';
|
return 'panel-uoj-accepted';
|
||||||
|
Loading…
Reference in New Issue
Block a user