From 48c13dfb589d4f8f83d8fdc2df772c32d4145659 Mon Sep 17 00:00:00 2001 From: Michael Andreen Date: Mon, 29 Sep 2008 09:17:19 +0200 Subject: [PATCH] Show birthdays in menu --- database/birthday.sql | 4 ++++ lib/NDWeb/Controller/Root.pm | 9 +++++++++ root/lib/site/leftbar.tt2 | 11 ++++++++++- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/database/birthday.sql b/database/birthday.sql index 65c5a86..33b2b1e 100644 --- a/database/birthday.sql +++ b/database/birthday.sql @@ -1 +1,5 @@ ALTER TABLE users ADD birthday DATE; + +CREATE FUNCTION mmdd(d date) RETURNS text AS $SQL$ SELECT to_char($1,'MM-DD') $SQL$ LANGUAGE SQL IMMUTABLE; + +CREATE INDEX users_birthday_index ON users (mmdd(birthday)) WHERE birthday IS NOT NULL; diff --git a/lib/NDWeb/Controller/Root.pm b/lib/NDWeb/Controller/Root.pm index 682448c..a1eac62 100644 --- a/lib/NDWeb/Controller/Root.pm +++ b/lib/NDWeb/Controller/Root.pm @@ -198,6 +198,15 @@ sub end : ActionClass('RenderView') { || $c->check_user_roles(qw/no_fleet_update/)))), $c->forward('listTargets'); } + if ($c->res->status == 200){ + my $birthdays = $dbh->prepare(q{SELECT username + ,date_part('year',age(birthday)) AS age + FROM users WHERE birthday IS NOT NULL + AND mmdd(birthday) = mmdd(CURRENT_DATE) + }); + $birthdays->execute; + $c->stash(birthdays => $birthdays->fetchall_arrayref({})); + } } =head1 AUTHOR diff --git a/root/lib/site/leftbar.tt2 b/root/lib/site/leftbar.tt2 index 940921c..8a2eee9 100644 --- a/root/lib/site/leftbar.tt2 +++ b/root/lib/site/leftbar.tt2 @@ -29,7 +29,16 @@ [% END %] -

Tick: [% game.tick %]

+ +[% IF birthdays.size > 0 %] + + +[% FOR b IN birthdays %] + +[% END %] +
Birthdays today
[% b.username %][% b.age %]
+[% END %] +

Tick: [% game.tick %]