sub process_ct_entry {
my ($tree, %args) = @_;
$_->edit_href (sub {s/contest_id/$args{id}/}) for $tree->find('a');
+ $tree->fid('editorial')->detach unless $args{finished};
$tree->fid('links')->detach unless $args{started};
my $status = ($args{time} < $args{start} ? 'starts' : 'ends');
$tree->fclass('timer')->attr('data-stop', $status eq 'ends' ? $args{stop} : $args{start});
level => ucfirst $args{level},
author => $args{author},
owner => $args{owner_name} || $args{owner});
+ if ($args{limits}) {
+ my @limits = (@{$args{limits}}, {format => 'Other', timeout => $args{timeout} });
+ @limits = map { sprintf '%s (%s)', @{$_}{qw/timeout format/} } @limits;
+ $tree->look_down(smap => 'timeout')->replace_content(join ', ', @limits);
+ }
if ($args{contest_stop}) {
$tree->fid('solution')->detach;
$tree->fid('solution_modal')->detach;
$tree->fid('nosubmit')->detach;
$tree->look_down(name => 'problem')->attr(value => $args{id});
my $contest = $tree->look_down(name => 'contest');
- $contest->attr(value => $args{contest}) if $args{contest};
- $contest->detach unless $args{contest}
+ $contest->attr(value => $args{args}{contest}) if $args{args}{contest};
+ $contest->detach unless $args{args}{contest}
} else {
$tree->fid('nosubmit')->find('a')->edit_href(sub{s/id/$args{id}/});
$tree->fid('submit')->detach
my ($data, $tr) = @_;
$tr->fclass('id')->namedlink($data->{id});
$tr->fclass('problem')->namedlink($data->{problem}, $data->{problem_name});
- $tr->fclass('problem')->find('a')->edit_href(sub{$_ .= "?contest=$args{contest}"}) if $args{contest};
+ $tr->fclass('problem')->find('a')->edit_href(sub{$_ .= "?contest=$args{args}{contest}"}) if $args{args}{contest};
$tr->fclass('contest')->namedlink($data->{contest}, $data->{contest_name}) if $data->{contest};
$tr->fclass('contest')->replace_content('None') unless $data->{contest};
$tr->fclass('date')->replace_content(ftime $data->{date});