Add a "private" argument to problem_ and job_list
authorMarius Gavrilescu <marius@ieval.ro>
Sun, 4 Jan 2015 15:26:01 +0000 (17:26 +0200)
committerMarius Gavrilescu <marius@ieval.ro>
Sun, 4 Jan 2015 15:26:01 +0000 (17:26 +0200)
lib/Gruntmaster/Data.pm

index 984035f3352209e3e4a93ba8504e953288b18c93..fabdbecb9d0b25262dd42542186c3adfb507bd90 100644 (file)
@@ -75,7 +75,7 @@ sub user_entry {
 sub problem_list {
        my ($self, %args) = @_;
        my $rs = $self->problems->search(undef, {order_by => 'me.name', columns => PROBLEM_PUBLIC_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};
+       $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({'contest_problems.contest' => $args{contest}}, {join => 'contest_problems'}) if $args{contest};
        $rs = $rs->search({'me.owner' => $args{owner}}) if $args{owner};
        my %params;
@@ -127,10 +127,11 @@ sub contest_entry {
 sub job_list {
        my ($self, %args) = @_;
        $args{page} //= 1;
-       my $rs = $self->jobs->search({'me.private' => 0}, {order_by => {-desc => 'me.id'}, prefetch => ['problem', 'owner'], rows => JOBS_PER_PAGE, page => $args{page}});
-       $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};
+       my $rs = $self->jobs->search(undef, {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 {
                        my %params = $_->get_columns;
This page took 0.012259 seconds and 4 git commands to generate.