X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=lib%2FGruntmaster%2FData.pm;h=e3b56f43adf892284f04c0f7842384907f06ac2e;hb=987ee14e19e0fac15b4518c0f0df8aeb3ed2498e;hp=b4a124ce3c4f7e5b168e4d09136d6cd8b3bb4c5c;hpb=dbbf61be7f5f974e238348751a93146d7524bac9;p=gruntmaster-data.git diff --git a/lib/Gruntmaster/Data.pm b/lib/Gruntmaster/Data.pm index b4a124c..e3b56f4 100644 --- a/lib/Gruntmaster/Data.pm +++ b/lib/Gruntmaster/Data.pm @@ -79,11 +79,11 @@ sub problem_list { my @columns = @{PROBLEM_PUBLIC_COLUMNS()}; push @columns, 'solution' if $args{solution} && $args{contest} && !$self->contest($args{contest})->is_running; my $rs = $self->problems->search(undef, {order_by => 'me.name', columns => \@columns, prefetch => 'owner'}); - $rs = $rs->search({-or => ['contest_problems.contest' => undef, 'contest.stop' => {'<=', time}], 'me.private' => 0}, {join => {'contest_problems' => 'contest'}, distinct => 1}) unless $args{contest} || $args{private}; + $rs = $rs->search({'private' => 0}) unless $args{contest} || $args{private}; $rs = $rs->search({'contest_problems.contest' => $args{contest}}, {join => 'contest_problems'}) if $args{contest}; $rs = $rs->search({'me.owner' => $args{owner}}) if $args{owner}; my %params; - $params{contest} = $args{contest} if $args{contest}; + $params{contest} = $args{contest} if $args{contest} && $self->contest($args{contest})->is_running; for ($rs->all) { $params{$_->level} //= []; push @{$params{$_->level}}, {$_->get_columns, owner_name => $_->owner->name} ; @@ -145,6 +145,7 @@ sub job_list { $rs = $rs->search({'me.private'=> 0}) unless $args{private}; $rs = $rs->search({'me.owner' => $args{owner}}) if $args{owner}; $rs = $rs->search({problem => $args{problem}}) if $args{problem}; + $rs = $rs->search({result => $args{result}}) if defined $args{result}; return { log => [map { my %params = $_->get_columns; @@ -184,7 +185,7 @@ sub update_status { my %hash; for (@jobs) { my $pb = $_->get_column('problem'); - $private{$pb} //= $_->problem->is_private; + $private{$pb} //= $_->problem->private; next if $private{$pb}; $hash{$pb, $_->get_column('owner')} = [$_->id, $_->result ? 0 : 1]; }