]> iEval git - gruntmaster-data.git/blobdiff - lib/Gruntmaster/Data/Result/Contest.pm
Sort on problem.value not problem.level in contest standings
[gruntmaster-data.git] / lib / Gruntmaster / Data / Result / Contest.pm
index 4ea2f1ae988f189b76d074073c06105b9940ba47..2a57c95f4a4247d5e145db5e7f135e693a60ab26 100644 (file)
@@ -210,10 +210,10 @@ sub standings {
        my ($self) = @_;
        my $ct = $self->id;
 
-       my @problems = map { $_->rawproblem } $self->contest_problems->search({contest => $ct}, {qw/join problem order_by problem.level/});
+       my @problems = map { $_->rawproblem } $self->contest_problems->search({contest => $ct}, {qw/join problem order_by problem.value/});
        my (%scores, %tries, %opens);
        $opens{$_->rawproblem, $_->rawowner} = $_ for $self->opens->search({contest => $ct});
-       for my $job ($self->jobs->search({contest => $ct}, {qw/order_by me.id prefetch/ => [qw/problem/]})) {
+       for my $job ($self->jobs->search({contest => $ct, result => {'!=', undef}}, {qw/order_by me.id prefetch/ => [qw/problem/]})) {
                my $open = $opens{$job->rawproblem, $job->rawowner};
                my $time = $job->date - ($open ? $open->time : $self->start);
                next if $time < 0;
@@ -225,6 +225,7 @@ sub standings {
 
        my %user_to_name = map { $_->id => $_->name } $self->result_source->schema->users->all;
 
+       say STDERR join "\n\n", @problems;
        my @st = sort { $b->{score} <=> $a->{score} or $a->{user} cmp $b->{user} } map { ## no critic (ProhibitReverseSortBlock)
                my $user = $_;
                +{
This page took 0.020686 seconds and 4 git commands to generate.