X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;ds=sidebyside;f=lib%2FGruntmaster%2FPage%2FCt.pm;h=a21bf77809d352a78ef06c358833c3467945cda9;hb=6cfb28a02398f3759d43998206ab86bc6adfb1f6;hp=5a04b3adc20cbe33a4b8c307b80ad8e4df28ec91;hpb=832cb45e325364ca1de645a2256efa69284fcf06;p=plack-app-gruntmaster.git
diff --git a/lib/Gruntmaster/Page/Ct.pm b/lib/Gruntmaster/Page/Ct.pm
index 5a04b3a..a21bf77 100644
--- a/lib/Gruntmaster/Page/Ct.pm
+++ b/lib/Gruntmaster/Page/Ct.pm
@@ -3,97 +3,31 @@ package Gruntmaster::Page::Ct;
use 5.014000;
use strict;
use warnings;
-use parent qw/Exporter/;
-our @EXPORT_OK = qw/generate/;
+use Gruntmaster::Page::Base ct => 'Contests';
+our @ISA = qw/Gruntmaster::Page::Base/;
our $VERSION = '0.001';
-use constant TITLE => 'Contests';
-
-use Fcntl qw/:flock/;
-use HTML::Template::Compiled;
-use IO::File;
-use POSIX qw/strftime/;
-use YAML::Any qw/LoadFile/;
-use Gruntmaster::Page::Common qw/header footer/;
-
-my %templates = (
- en => <<'HTML',
-
-Running contests
-
-
-Name | Start date | End date | Owner
- |
-
- |
-
-
-
- | | |
-
-
-
-Pending contests
-
-
-Name | Start date | End date | Owner
- |
-
- |
-
-
-
- | | |
-
-
-
-Finished contests
-
-
-Name | Start date | End date | Owner
- |
-
- |
-
-
-
- | | |
-
-HTML
-);
-
-$templates{$_} = header($_, TITLE) . $templates{$_} for keys %templates;
-$templates{$_} .= footer $_ for keys %templates;
-
-sub generate{
- my $template = $templates{$_[1]};
- my $htc = HTML::Template::Compiled->new(scalarref => \$template);
- IO::File->new('>ct/meta.yml')->close unless -f 'ct/meta.yml';
- flock my $metafh = IO::File->new(') {
- my $meta = LoadFile $_;
- my $id = (m,^ct/(.*)/meta.yml$,)[0];
- my $ct = { id => $id,
- name => $meta->{name},
- start => strftime ('%c', localtime $meta->{start}),
- end => strftime ('%c', localtime $meta->{end}),
- owner => $meta->{owner}};
-
- my $time = time;
- push @pending, $ct if time < $meta->{start};
- push @running, $ct if time >= $meta->{start} && time < $meta->{end};
- push @finished, $ct if time > $meta->{end};
- }
-
- $htc->param(runningn => scalar @running);
- $htc->param(pendingn => scalar @pending);
- $htc->param(finishedn => scalar @finished);
- $htc->param(running => \@running);
- $htc->param(pending => \@pending);
- $htc->param(finished => \@finished);
- $htc->output
+sub _generate{
+ my ($self, $htc, $lang, $env) = @_;
+ debug $env => "language is '$lang'";
+
+ my (@running, @pending, @finished);
+ for (sort {contest_start $a <=> contest_start $b}contests) {
+ my $ct = { id => $_,
+ name => contest_name,
+ start => strftime ('%c', localtime contest_start),
+ end => strftime ('%c', localtime contest_end),
+ owner => contest_owner };
+
+ my $time = time;
+ push @pending, $ct if time < contest_start;
+ push @running, $ct if time >= contest_start && time < contest_end;
+ push @finished, $ct if time > contest_end;
+ }
+
+ $htc->param(running => \@running) if @running;
+ $htc->param(pending => \@pending) if @pending;
+ $htc->param(finished => \@finished) if @finished;
}
1