]>
iEval git - gruntmaster-page.git/blob - lib/Gruntmaster/Page/St.pm
e3873ba51b418de037516ca24a52b7470f898757
1 package Gruntmaster
::Page
::St
;
6 use parent qw
/Exporter/;
7 our @EXPORT_OK = qw
/generate/;
8 our $VERSION = '0.001';
10 use HTML
::Template
::Compiled
;
11 use List
::Util qw
/sum/;
12 use POSIX qw
/strftime/;
13 use Gruntmaster
::Page
::Common qw
/cook_templates reload_templates/;
14 use Gruntmaster
::Data qw
/problems jobcard job_result_text job_result job_problem job_user/;
16 my %orig_templates = (
20 <tr><th>Username<tmpl_loop problems><th><tmpl_var _></tmpl_loop><th>Total
22 <tmpl_loop st><tr><td><tmpl_var user>
23 <tmpl_loop scores><td><tmpl_var _>
24 </tmpl_loop><td><tmpl_var score>
30 my %templates = cook_templates
%orig_templates, st
=> 'Standings';
33 %templates = cook_templates
%orig_templates, st
=> 'Standings' if reload_templates
;
34 local $Gruntmaster::Data
::contest
= ($_[0] =~ m
,^ct
/([^/]+)/,)[0];
35 my $htc = HTML
::Template
::Compiled
->new(scalarref
=> \
$templates{$_[1]});
37 my @problems = sort problems
;
40 if (job_result_text
=~ m/^(\d+)/) {
41 $scores{job_user
()}{job_problem
()} = $1;
43 $scores{job_user
()}{job_problem
()} = job_result
() ?
0 : 100;
47 my @st = sort { $b->{score
} <=> $a->{score
} } map {
51 score
=> sum
(values $scores{$user}),
52 scores
=> [map { $scores{$user}{$_} // '-'} @problems],
55 $htc->param(problems
=> \
@problems);
56 $htc->param(st
=> \
@st);
This page took 0.051877 seconds and 4 git commands to generate.