]> ruin.nu Git - ndwebbie.git/commitdiff
Show birthdays in menu
authorMichael Andreen <harv@ruin.nu>
Mon, 29 Sep 2008 07:17:19 +0000 (09:17 +0200)
committerMichael Andreen <harv@ruin.nu>
Mon, 29 Sep 2008 07:17:19 +0000 (09:17 +0200)
database/birthday.sql
lib/NDWeb/Controller/Root.pm
root/lib/site/leftbar.tt2

index 65c5a861a22179c0f0bca5ea40f2ed50ba401c51..33b2b1e9fb46eb111db4a91f0ff8cddbf6d45ac0 100644 (file)
@@ -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;
index 682448cee4365eb59f578c067dc7bfe665f81afd..a1eac62c9f76b8cf7bd932a97dd14a4ba56d4c83 100644 (file)
@@ -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
index 940921c0894efce91a6554fa99e8c4092370791d..8a2eee9eb6a588df3ea1da749dae1259c7996302 100644 (file)
        </form>
        </li>
 [% END %]
-</ul>  <p>Tick: [% game.tick %]</p>
+</ul>
+[% IF birthdays.size > 0 %]
+<table>
+<tr><th colspan="2">Birthdays today</th></tr>
+[% FOR b IN birthdays %]
+       <tr><td>[% b.username %]</td><td>[% b.age %]</td></tr>
+[% END %]
+</table>
+[% END %]
+<p>Tick: [% game.tick %]</p>
 <ul class="linkbar">
        <li><a href="/rankings/planets">Planet Rankings</a></li>
        <li><a href="/rankings/alliances">Alliance Rankings</a></li>