use PerlX::Maybe qw/maybe/;
use Sub::Name qw/subname/;
-use constant PROBLEM_PUBLIC_COLUMNS => [qw/id author writer level name owner private statement timeout olimit value/];
+use constant PROBLEM_PUBLIC_COLUMNS => [qw/id author writer level name owner private timeout olimit value/];
use constant USER_PUBLIC_COLUMNS => [qw/id admin name town university level/];
use constant JOBS_PER_PAGE => 10;
my ($self, $id, $contest, $user) = @_;
my $running = $contest && $self->contest($contest)->is_running;
my $columns = PROBLEM_PUBLIC_COLUMNS;
+ push @$columns, 'statement';
push @$columns, 'solution' unless $running;
my $pb = $self->problems->find($id, {columns => $columns, prefetch => 'owner'});
my $open;
+{
$pb->get_columns,
owner_name => $pb->owner->name,
- cansubmit => $running || !$contest,
+ cansubmit => !$contest || !$contest->is_finished,
$running ? (
contest_start => $contest->start,
contest_stop => $contest->stop,
sub job_list {
my ($self, %args) = @_;
$args{page} //= 1;
- my $rs = $self->jobs->search(undef, {order_by => {-desc => 'me.id'}, prefetch => ['problem', 'owner'], rows => JOBS_PER_PAGE, page => $args{page}});
+ my $rs = $self->jobs->search({contest => $args{contest}}, {order_by => {-desc => 'me.id'}, prefetch => ['problem', 'owner'], rows => JOBS_PER_PAGE, page => $args{page}});
$rs = $rs->search({'me.private'=> 0}) unless $args{private};
$rs = $rs->search({'me.owner' => $args{owner}}) if $args{owner};
- $rs = $rs->search({contest => $args{contest}}) if $args{contest};
$rs = $rs->search({problem => $args{problem}}) if $args{problem};
return {
log => [map {