Allow callers to create_host to specify an email address for the admin
[cocanwiki.git] / scripts / stats.ml
index e92d182..3d29afb 100644 (file)
@@ -1,7 +1,7 @@
 (* COCANWIKI - a wiki written in Objective CAML.
  * Written by Richard W.M. Jones <rich@merjis.com>.
  * Copyright (C) 2004 Merjis Ltd.
- * $Id: stats.ml,v 1.1 2004/09/23 15:16:21 rich Exp $
+ * $Id: stats.ml,v 1.2 2004/10/07 16:54:24 rich Exp $
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -24,6 +24,8 @@ open Registry
 open Cgi
 open Printf
 
+open GregorianDate
+
 open Cocanwiki
 open Cocanwiki_template
 open Cocanwiki_server_settings
@@ -41,20 +43,14 @@ let run r (q : cgi) (dbh : Dbi.connection) hostid { hostname = hostname } _ =
 
   template#set "stats_page" stats_page;
 
-  (* Get the current business week.  Tricky - because GregorianDate isn't
-   * around to help us, it's best to get the database to help us out.
-   *
-   * XXX This fails sometimes near New Year.  Better to get GD into extlib
-   * or this codebase.
-   *)
-  let sth =
-    dbh#prepare_cached "select extract (year from current_date) :: int,
-                               extract (week from current_date) :: int" in
-  sth#execute [];
+  (* Get the current business week. *)
   let year, week =
-    match sth#fetch1 () with
-       [ `Int year; `Int week ] -> year, week
-      | _ -> assert false in
+    let date =
+      let tm = Unix.gmtime (Unix.time ()) in
+      (tm.Unix.tm_year + 1900, tm.Unix.tm_mon + 1, tm.Unix.tm_mday)
+    in
+    fst (GregorianDate.business_of_standard date)
+  in
 
   template#set "year" (string_of_int year);
   template#set "week" (string_of_int week);