Index: openacs-4/packages/logger/www/lib/entries-table.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/lib/Attic/entries-table.tcl,v diff -u -r1.5 -r1.6 --- openacs-4/packages/logger/www/lib/entries-table.tcl 9 May 2003 11:05:02 -0000 1.5 +++ openacs-4/packages/logger/www/lib/entries-table.tcl 28 Aug 2003 09:45:31 -0000 1.6 @@ -8,8 +8,9 @@ # start_date_ansi # end_date_ansi # projection_value +# group_by:optional -set user_id [ad_conn user_id] +set current_user_id [ad_conn user_id] set package_id [ad_conn package_id] set where_clauses [list] @@ -48,15 +49,34 @@ set selected_entry_id {} } +set order_by "le.time_stamp desc, ao.creation_date desc" + +# If we're grouping by, we should sort by that column first +if { [exists_and_not_null group_by] } { + switch -exact $group_by { + user_id { + set order_by "user_name asc, $order_by" + } + project_name { + set order_by "project_name asc, $order_by" + } + } +} + set value_total 0 set value_count 0 -db_multirow -extend { edit_url delete_url delete_onclick user_chunk selected_p } entries select_entries {} { +set last_group_by_value {} +set value_subcount 0 +set value_subtotal 0 + +db_multirow -extend { subtotal subaverage view_url edit_url delete_url delete_onclick user_chunk selected_p } entries select_entries {} { set description [string_truncate -len 50 $description] set project_name [string_truncate -len 20 $project_name] set selected_p [string equal $id $selected_entry_id] set action_links_list [list] - set edit_url "log?[export_vars { { entry_id $id } }]" + set view_url "log?[export_vars { { entry_id $id } }]" + set edit_url "log?[export_vars { { entry_id $id } { edit "t" } }]" if { $delete_p } { set delete_onclick "return confirm('Are you sure you want to delete log entry with $value $variable(unit) $variable(name) on $time_stamp?');" set delete_url "log-delete?[export_vars { { entry_id $id } }]" @@ -66,6 +86,24 @@ set user_chunk [ad_present_user $user_id $user_name] + if { [exists_and_not_null group_by] } { + # Should we reset the subtotal? + if { ![string equal $last_group_by_value [set $group_by]] } { + set value_subtotal 0 + set value_subcount 0 + } + + # Calculate new subtotal/average + set value_subtotal [expr $value_subtotal + $value] + incr value_subcount + + # and store it in the column + set subtotal $value_subtotal + set subaverage [expr round(100.0 * $value_subtotal / $value_subcount) / 100.0] + + set last_group_by_value [set $group_by] + } + set value_total [expr $value_total + $value] incr value_count }