X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=lib%2FGruntmaster%2FPage%2FSt.pm;h=b50490c00f3e31d6d22382c45b5003148373d6cc;hb=746789c0a194d8151e7e9dd830365e218206601f;hp=e5b418d26a7844767e06c053b8d5ac05175720dd;hpb=cd9af27e94244e6454c3db787a8ca6811f44fc16;p=plack-app-gruntmaster.git diff --git a/lib/Gruntmaster/Page/St.pm b/lib/Gruntmaster/Page/St.pm index e5b418d..b50490c 100644 --- a/lib/Gruntmaster/Page/St.pm +++ b/lib/Gruntmaster/Page/St.pm @@ -3,40 +3,35 @@ package Gruntmaster::Page::St; use 5.014000; use strict; use warnings; -use parent qw/Exporter/; -our @EXPORT_OK = qw/generate/; +use Gruntmaster::Page::Base st => 'Standings'; +our @ISA = qw/Gruntmaster::Page::Base/; our $VERSION = '0.001'; -use constant TITLE => 'Standings'; - -use HTML::Template::Compiled; -use List::Util qw/sum/; -use POSIX qw/strftime/; -use Gruntmaster::Page::Common qw/header footer/; -use Gruntmaster::Data qw/problems jobcard job_result_text job_result job_problem job_user/; - -my %templates = ( +use constant TEMPLATES => { en => <<'HTML', -
UsernameTotal +
UsernameTotal +
UsernameScore + +
- - + +
HTML -); +}; -$templates{$_} = header($_, TITLE) . $templates{$_} for keys %templates; -$templates{$_} .= footer $_ for keys %templates; +sub _generate{ + my ($self, $htc, $path, $lang) = @_; -sub generate{ - local $Gruntmaster::Data::contest = ($_[0] =~ m,^ct/([^/]+)/,)[0]; - my $htc = HTML::Template::Compiled->new(scalarref => \$templates{$_[1]}); + $path =~ m,^(?:ct/([^/]+)/)?,; + local $Gruntmaster::Data::contest = $1; - my @problems = sort problems; + my @problems = problems; + @problems = sort @problems; my %scores; for (1 .. jobcard) { if (job_result_text =~ m/^(\d+)/) { @@ -54,9 +49,8 @@ sub generate{ scores => [map { $scores{$user}{$_} // '-'} @problems], } } keys %scores; - $htc->param(problems => \@problems); + $htc->param(problems => [map { problem_name } @problems ]) if $Gruntmaster::Data::contest; $htc->param(st => \@st); - $htc->output } 1