Index: openacs-4/packages/calendar/www/view-week-display.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/calendar/www/view-week-display.tcl,v diff -u -r1.3 -r1.4 --- openacs-4/packages/calendar/www/view-week-display.tcl 26 Jul 2003 21:22:49 -0000 1.3 +++ openacs-4/packages/calendar/www/view-week-display.tcl 14 Aug 2003 15:44:08 -0000 1.4 @@ -1,19 +1,33 @@ # Show calendar items per one week. +# +# Parameters: +# +# date (YYYY-MM-DD) - optional if {[empty_string_p $date]} { - set date [dt_sysdate] + # Default to todays date in the users (the connection) timezone + set server_now_time [dt_systime] + set user_now_time [lc_time_system_to_conn $server_now_time] + set date [lc_time_fmt $user_now_time "%x"] } +set package_id [ad_conn package_id] +set user_id [ad_conn user_id] + +set ansi_date_format "YYYY-MM-DD HH24:MI:SS" + set start_date $date + # If we were given no calendars, we assume we display the # private calendar. It makes no sense for this to be called with # no data whatsoever. if {[empty_string_p $calendar_id_list]} { set calendar_id_list [list [calendar_have_private_p -return_id 1 [ad_get_user_id]]] } -set package_id [ad_conn package_id] -set user_id [ad_conn user_id] +# Convert date from user timezone to system timezone +#set system_start_date [lc_time_conn_to_system "$date 00:00:00"] + db_1row select_weekday_info {} db_1row select_week_info {} @@ -25,7 +39,24 @@ # Loop through the calendars multirow create week_items name item_id start_date calendar_name status_summary day_of_week start_date_weekday start_time end_time no_time_p +# Convert date from user timezone to system timezone +set sunday_of_the_week_system [lc_time_conn_to_system "$sunday_of_the_week 00:00:00"] +set saturday_of_the_week_system [lc_time_conn_to_system "$saturday_of_the_week 00:00:00"] + db_foreach select_week_items {} { + # Convert from system timezone to user timezone + set ansi_start_date [lc_time_system_to_conn $ansi_start_date] + set ansi_end_date [lc_time_system_to_conn $ansi_end_date] + + set day_of_week [lc_time_fmt $ansi_start_date "%f"] + set start_date_weekday [lc_time_fmt $ansi_start_date "%A"] + + set start_date [lc_time_fmt $ansi_start_date "%x"] + set end_date [lc_time_fmt $ansi_end_date "%x"] + + set start_time [lc_time_fmt $ansi_start_date "%X"] + set end_time [lc_time_fmt $ansi_end_date "%X"] + if {$day_of_week > $current_weekday} { # need to add dummy entries to show all days for { } { $current_weekday < $day_of_week } { incr current_weekday } {