Index: openacs-4/packages/logger/logger.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/logger.info,v diff -u -N -r1.4 -r1.5 --- openacs-4/packages/logger/logger.info 30 Apr 2003 12:20:33 -0000 1.4 +++ openacs-4/packages/logger/logger.info 8 May 2003 13:54:04 -0000 1.5 @@ -7,20 +7,18 @@ f f - - Peter Marklund + Lars Pind + Peter Marklund Supports time and expenses reporting. Full specification is here: http://www.collaboraid.biz/developer/logger-spec - 2003-04-16 + 2003-05-08 Collaboraid - + - - - + Index: openacs-4/packages/logger/sql/postgresql/logger-packages-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/sql/postgresql/logger-packages-create.sql,v diff -u -N -r1.3 -r1.4 --- openacs-4/packages/logger/sql/postgresql/logger-packages-create.sql 7 May 2003 16:43:32 -0000 1.3 +++ openacs-4/packages/logger/sql/postgresql/logger-packages-create.sql 8 May 2003 13:54:26 -0000 1.4 @@ -31,13 +31,15 @@ v_project_id integer; begin - v_project_id := acs_object__new( - p_project_id, - ''logger_project'', - p_package_id, - p_creation_ip, - p_creation_user - ); + v_project_id := acs_object__new( + p_project_id, -- object_id + ''logger_project'', -- object_type + current_timestamp, -- creation_date + p_creation_user, -- creation_user + p_creation_ip, -- creation_ip + p_package_id, -- context_id + ''t'' -- security_inherit_p + ); insert into logger_projects (project_id, name, description, project_lead) values (v_project_id, p_name, p_description, p_project_lead); @@ -85,6 +87,8 @@ -- acs_object__delete should delete permissions for us but this change is not on cvs head yet delete from acs_permissions where object_id = p_project_id; perform acs_object__delete(p_project_id); + + return 0; end; ' language 'plpgsql'; create or replace function logger_project__name (integer) @@ -113,27 +117,29 @@ varchar, varchar, integer, - integer, + varchar, integer) returns integer as ' declare - p_variable_id integer alias for $1; - p_name varchar alias for $2; - p_unit varchar alias for $3; - p_type varchar alias for $4; - p_creation_user integer alias for $5; - p_creation_ip integer alias for $6; - p_package_id integer alias for $7; + p_variable_id alias for $1; + p_name alias for $2; + p_unit alias for $3; + p_type alias for $4; + p_creation_user alias for $5; + p_creation_ip alias for $6; + p_package_id alias for $7; v_variable_id integer; begin - v_variable_id := acs_object__new( - p_variable_id, - ''logger_variable'', - p_package_id, - p_creation_ip, - p_creation_user - ); + v_variable_id := acs_object__new( + p_variable_id, -- object_id + ''logger_variable'', -- object_type + current_timestamp, -- creation_date + p_creation_user, -- creation_user + p_creation_ip, -- creation_ip + p_package_id, -- context_id + ''t'' -- security_inherit_p + ); insert into logger_variables (variable_id, name, unit, type, package_id) values (v_variable_id, p_name, p_unit, p_type, p_package_id); @@ -150,6 +156,8 @@ -- acs_object__delete should delete permissions for us but this change is not on cvs head yet delete from acs_permissions where object_id = p_variable_id; perform acs_object__delete(p_variable_id); + + return 0; end; ' language 'plpgsql'; create or replace function logger_variable__name (integer) @@ -159,7 +167,7 @@ v_name varchar; begin - selec name into v_name + select description into v_name from logger_entries where variable_id = p_variable_id; @@ -193,13 +201,16 @@ v_entry_id integer; begin + v_entry_id := acs_object__new( - p_entry_id, - ''logger_entry'', - p_project_id, - p_creation_ip, - p_creation_user - ); + p_entry_id, -- object_id + ''logger_entry'', -- object_type + current_timestamp, -- creation_date + p_creation_user, -- creation_user + p_creation_ip, -- creation_ip + p_project_id, -- context_id + ''t'' -- security_inherit_p + ); insert into logger_entries (entry_id, project_id, @@ -226,6 +237,8 @@ -- acs_object__delete should delete permissions for us but this change is not on cvs head yet delete from acs_permissions where object_id = p_entry_id; perform acs_object__delete(p_entry_id); + + return 0; end; ' language 'plpgsql'; create or replace function logger_entry__name (integer) Index: openacs-4/packages/logger/sql/postgresql/logger-packages-drop.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/sql/postgresql/logger-packages-drop.sql,v diff -u -N -r1.3 -r1.4 --- openacs-4/packages/logger/sql/postgresql/logger-packages-drop.sql 7 May 2003 16:43:32 -0000 1.3 +++ openacs-4/packages/logger/sql/postgresql/logger-packages-drop.sql 8 May 2003 13:54:26 -0000 1.4 @@ -24,7 +24,7 @@ varchar, varchar, integer, - integer, + varchar, integer); drop function logger_variable__del (integer); drop function logger_variable__name (integer); Index: openacs-4/packages/logger/sql/postgresql/logger-tables-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/sql/postgresql/logger-tables-create.sql,v diff -u -N -r1.3 -r1.4 --- openacs-4/packages/logger/sql/postgresql/logger-tables-create.sql 7 May 2003 16:43:32 -0000 1.3 +++ openacs-4/packages/logger/sql/postgresql/logger-tables-create.sql 8 May 2003 13:54:26 -0000 1.4 @@ -14,6 +14,7 @@ name varchar(1000), description varchar(4000), active_p boolean + default true constraint logger_projects_ap_nn not null, project_lead integer Index: openacs-4/packages/logger/tcl/apm-callback-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/tcl/apm-callback-procs.tcl,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/logger/tcl/apm-callback-procs.tcl 25 Apr 2003 09:47:11 -0000 1.2 +++ openacs-4/packages/logger/tcl/apm-callback-procs.tcl 8 May 2003 13:54:59 -0000 1.3 @@ -19,6 +19,21 @@ logger::variable::new -name "Expense" -unit "Euro" -pre_installed_p 1 } +ad_proc -public logger::apm::before_uninstall {} { + This proc needs to tear down whatever the logger::apm::after_install proc + sets up. + + @author Peter Marklund +} { + # Let's delete all variables as this is guaranteed to cover the pre-installed ones + db_foreach all_variables { + select variable_id + from logger_variables + } { + logger::variable::delete -variable_id $variable_id + } +} + ad_proc -public logger::apm::before_uninstantiate { {-package_id:required} } { Index: openacs-4/packages/logger/tcl/entry-procs-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/tcl/entry-procs-postgresql.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/logger/tcl/entry-procs-postgresql.xql 8 May 2003 13:54:59 -0000 1.1 @@ -0,0 +1,27 @@ + + + + postgresql7.2 + + + + select logger_entry__new ( + :entry_id, + :project_id, + :variable_id, + :value, + :time_stamp, + :description, + :creation_user, + :creation_ip + ); + + + + + + select logger_entry__del(:entry_id); + + + + Index: openacs-4/packages/logger/tcl/package-procs-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/tcl/package-procs-postgresql.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/logger/tcl/package-procs-postgresql.xql 8 May 2003 13:54:59 -0000 1.1 @@ -0,0 +1,27 @@ + + + + postgresql7.2 + + + + select lv.variable_id, + lv.name, + lv.unit, + lv.type + from logger_variables lv + where (exists (select 1 + from logger_project_var_map lpvm, + logger_project_pkg_map lppm + where lv.variable_id = lpvm.variable_id + and lpvm.project_id = lppm.project_id + and lppm.package_id = :package_id + ) + or lv.package_id = :package_id + or lv.package_id is null) + and acs_permission__permission_p(lv.variable_id, :user_id, 'read') = 't' + $extra_where_clause + + + + Index: openacs-4/packages/logger/tcl/project-procs-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/tcl/project-procs-postgresql.xql,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/logger/tcl/project-procs-postgresql.xql 7 May 2003 16:43:36 -0000 1.2 +++ openacs-4/packages/logger/tcl/project-procs-postgresql.xql 8 May 2003 13:54:59 -0000 1.3 @@ -1,11 +1,10 @@ - postgresql7.1 + postgresql7.2 - + - begin select logger_project__new ( :project_id, :name, @@ -15,15 +14,12 @@ :creation_ip, :package_id ); - end; - begin select logger_project__del(:project_id); - end; Index: openacs-4/packages/logger/tcl/ui-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/tcl/ui-procs.tcl,v diff -u -N -r1.5 -r1.6 --- openacs-4/packages/logger/tcl/ui-procs.tcl 6 May 2003 17:36:31 -0000 1.5 +++ openacs-4/packages/logger/tcl/ui-procs.tcl 8 May 2003 13:54:59 -0000 1.6 @@ -89,14 +89,6 @@ set variable_options [list] db_foreach variable_options { - select lv.variable_id, - lv.name - from logger_variables lv - where exists (select 1 - from logger_project_var_map lpvm - where lpvm.project_id = :project_id - and lpvm.variable_id = lv.variable_id - ) } { lappend variable_options [list $name $variable_id] } Index: openacs-4/packages/logger/tcl/ui-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/tcl/ui-procs.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/logger/tcl/ui-procs.xql 8 May 2003 13:54:59 -0000 1.1 @@ -0,0 +1,19 @@ + + + + + + + select lv.variable_id, + lv.name + from logger_variables lv + where exists (select 1 + from logger_project_var_map lpvm + where lpvm.project_id = :project_id + and lpvm.variable_id = lv.variable_id + ) + + + + + Index: openacs-4/packages/logger/tcl/variable-procs-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/tcl/variable-procs-postgresql.xql,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/logger/tcl/variable-procs-postgresql.xql 7 May 2003 16:43:36 -0000 1.1 +++ openacs-4/packages/logger/tcl/variable-procs-postgresql.xql 8 May 2003 13:54:59 -0000 1.2 @@ -5,7 +5,6 @@ - begin select logger_variable__new ( :variable_id, :name, @@ -15,15 +14,12 @@ :creation_ip, :package_id ); - end; - begin select logger_variable__del(:variable_id); - end; Index: openacs-4/packages/logger/tcl/variable-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/tcl/variable-procs.xql,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/logger/tcl/variable-procs.xql 22 Apr 2003 09:25:40 -0000 1.2 +++ openacs-4/packages/logger/tcl/variable-procs.xql 8 May 2003 13:54:59 -0000 1.3 @@ -2,13 +2,6 @@ - - - insert into logger_variables (variable_id, name, unit, type, package_id) - values (:variable_id, :name, :unit, :type, :package_id) - - - update logger_variables @@ -19,13 +12,6 @@ - - - delete from logger_variables - where variable_id = :variable_id - - - select variable_id, Index: openacs-4/packages/logger/www/index.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/index.tcl,v diff -u -N -r1.8 -r1.9 --- openacs-4/packages/logger/www/index.tcl 7 May 2003 16:43:38 -0000 1.8 +++ openacs-4/packages/logger/www/index.tcl 8 May 2003 13:55:50 -0000 1.9 @@ -55,19 +55,7 @@ } else { set project_clause "" } - set selected_variable_id [db_string last_logged_variable_id " - select variable_id - from logger_entries le, - acs_objects ao - where ao.creation_date = (select max(ao.creation_date) - from logger_entries le, - acs_objects ao - where ao.object_id = le.entry_id - [ad_decode $project_clause "" "" "and $project_clause"] - ) - and ao.object_id = le.entry_id - [ad_decode $project_clause "" "" "and $project_clause"] - " -default ""] + set selected_variable_id [db_string last_logged_variable_id {} -default ""] if { [empty_string_p $selected_variable_id] } { # The user has not logger hours yet @@ -112,7 +100,7 @@ ########### # -# Date Filter +# Custom date filter form # ########### @@ -167,39 +155,37 @@ set all_projects_url {} } -set no_project_p 1 +set projects_count 0 +set single_project_id 0 -db_multirow -extend { filter_name url entry_add_url selected_p clear_url } filters select_projects { - select lp.project_id as unique_id, - lp.name - from logger_projects lp, - logger_project_pkg_map lppm - where lp.project_id = lppm.project_id - and lppm.package_id = :package_id - order by lp.name -} { +db_multirow -extend { filter_name url entry_add_url selected_p clear_url start_date end_date } filters select_projects {} { set filter_name "Projects" set url ".?[export_vars -override { { selected_project_id $unique_id } } $filter_var_list]" set entry_add_url "log?[export_vars { { project_id $unique_id } {variable_id $selected_variable_id}}]" set selected_p [string equal $selected_project_id $unique_id] - - set project_name_max_length 30 - if { [string length $name] > $project_name_max_length } { - set name "[string range $name 0 [expr $project_name_max_length - 4]]..." - } - + set name [string_truncate -len 25 $name] set clear_url $all_projects_url - - set no_project_p 0 + incr projects_count + set single_project_id $unique_id } -if { $no_project_p } { +if { $projects_count == 0 } { ad_return_template "no-projects" return } +# Only one project: Make it selected by default +if { $projects_count == 1 } { + set selected_project_id $single_project_id + + # The multirow has only one row, we want to set it to selected, not clearable + multirow foreach filters { + set selected_p 1 + set clear_url {} + } +} ########### # @@ -219,17 +205,7 @@ )" } -db_multirow -append -extend { filter_name url entry_add_url selected_p clear_url } filters select_variables " - select lv.variable_id as unique_id, - lv.name || ' (' || lv.unit || ')' as name - from logger_variables lv, - logger_projects lp, - logger_project_var_map lpvm - where lp.project_id = lpvm.project_id - and lv.variable_id = lpvm.variable_id - [ad_decode $where_clauses "" "" "and [join $where_clauses "\n and "]"] - group by lv.variable_id, lv.name, lv.unit -" { +db_multirow -append -extend { filter_name url entry_add_url selected_p clear_url start_date end_date } filters select_variables {} { set filter_name "Variables" set url ".?[export_vars -override { {selected_variable_id $unique_id} } $filter_var_list]" if { ![empty_string_p $selected_project_id] } { @@ -270,19 +246,7 @@ )" } -db_multirow -append -extend { filter_name url entry_add_url selected_p clear_url } filters select_users " - select submitter.user_id as unique_id, - submitter.first_names || ' ' || submitter.last_name as name - from cc_users submitter, - logger_entries le, - acs_objects ao - where ao.object_id = le.entry_id - and submitter.user_id = ao.creation_user - and ([ad_decode $where_clauses "" "" "[join $where_clauses "\n and "]"] - or submitter.user_id = :current_user_id - ) - group by submitter.user_id, submitter.first_names, submitter.last_name -" { +db_multirow -append -extend { filter_name url entry_add_url selected_p clear_url start_date end_date } filters select_users {} { set filter_name "Users" set url ".?[export_vars -override { {selected_user_id $unique_id} } $filter_var_list]" set entry_add_url {} @@ -292,21 +256,28 @@ ########### # -# Select projections +# Projections filter # ########### # Only makes sense to show projections for a selected project and variable if { ![empty_string_p $selected_project_id] && ![empty_string_p $selected_variable_id] } { - db_multirow -extend { url } projections select_projections { - select lpe.projection_id, - lpe.name - from logger_projections lpe - where lpe.project_id = :selected_project_id - and lpe.variable_id = :selected_variable_id - } { - set url ".?[export_vars {{selected_projection_id $projection_id} {selected_user_id $selected_user_id} {selected_project_id $selected_project_id} {selected_variable_id $selected_variable_id}}]" + + if { [exists_and_not_null selected_projection_id] } { + set clear_projections_url ".?[export_vars -exclude { selected_projection_id } $filter_var_list]" + } else { + set clear_projections_url {} } + + db_multirow -append -extend { filter_name url entry_add_url selected_p clear_url } filters select_projections {} { + set filter_name "Projections" + set name [string_truncate -len 25 $name] + set url ".?[export_vars -override { {selected_projection_id $unique_id} { selected_start_date $start_date } { selected_end_date $end_date } } $filter_var_list]" + set entry_add_url {} + set selected_p [string equal $selected_projection_id $unique_id] + set clear_url $clear_projections_url + } + } ##### @@ -325,17 +296,20 @@ set filter_name "Date" +set weekdayno [clock format [clock seconds] -format %w] +set monthdayno [string trimleft [clock format [clock seconds] -format %d] 0] + foreach type { this_week last_week past_7 this_month last_month past_30 } { switch $type { this_week { set name "This week" - set new_start_date [clock format [clock scan "-[clock format [clock seconds] -format %w] days"] -format "%Y-%m-%d"] - set new_end_date [clock format [clock scan "[expr 6-[clock format [clock seconds] -format %w]] days"] -format "%Y-%m-%d"] + set new_start_date [clock format [clock scan "-$weekdayno days"] -format "%Y-%m-%d"] + set new_end_date [clock format [clock scan "[expr 6-$weekdayno] days"] -format "%Y-%m-%d"] } last_week { set name "Last week" - set new_start_date [clock format [clock scan "[expr -7-[clock format [clock seconds] -format %w]] days"] -format "%Y-%m-%d"] - set new_end_date [clock format [clock scan "[expr -1-[clock format [clock seconds] -format %w]] days"] -format "%Y-%m-%d"] + set new_start_date [clock format [clock scan "[expr -7-$weekdayno] days"] -format "%Y-%m-%d"] + set new_end_date [clock format [clock scan "[expr -1-$weekdayno] days"] -format "%Y-%m-%d"] } past_7 { set name "Past 7 days" @@ -344,12 +318,12 @@ } this_month { set name "This month" - set new_start_date [clock format [clock scan "[expr 1-[clock format [clock seconds] -format %d]] days"] -format "%Y-%m-%d"] + set new_start_date [clock format [clock scan "[expr 1-$monthdayno] days"] -format "%Y-%m-%d"] set new_end_date [clock format [clock scan "1 month -1 day" -base [clock scan $new_start_date]] -format "%Y-%m-%d"] } last_month { set name "Last month" - set new_start_date [clock format [clock scan "-1 month [expr 1-[clock format [clock seconds] -format %d]] days"] -format "%Y-%m-%d"] + set new_start_date [clock format [clock scan "-1 month [expr 1-$monthdayno] days"] -format "%Y-%m-%d"] set new_end_date [clock format [clock scan "1 month -1 day" -base [clock scan $new_start_date]] -format "%Y-%m-%d"] } past_30 { @@ -367,12 +341,12 @@ set custom_p [expr $custom_p && !$selected_p] # unique_id name filter_name url entry_add_url selected_p clear_url - multirow append filters "" $name $filter_name $url "" $selected_p $date_clear_url + multirow append filters "" $name $filter_name $url "" $selected_p $date_clear_url {} {} } # Custom if { $custom_p } { - multirow append filters "" "Custom range" $filter_name "" "" $custom_p $date_clear_url + multirow append filters "" "Custom range" $filter_name "" "" $custom_p $date_clear_url {} {} } Index: openacs-4/packages/logger/www/index.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/Attic/index.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/logger/www/index.xql 8 May 2003 13:55:50 -0000 1.1 @@ -0,0 +1,75 @@ + + + + + + + select variable_id + from logger_entries le, + acs_objects ao + where ao.creation_date = (select max(ao.creation_date) + from logger_entries le, + acs_objects ao + where ao.object_id = le.entry_id + [ad_decode $project_clause "" "" "and $project_clause"] + ) + and ao.object_id = le.entry_id + [ad_decode $project_clause "" "" "and $project_clause"] + + + + + + select lp.project_id as unique_id, + lp.name + from logger_projects lp, + logger_project_pkg_map lppm + where lp.project_id = lppm.project_id + and lppm.package_id = :package_id + order by lp.name + + + + + + select lv.variable_id as unique_id, + lv.name || ' (' || lv.unit || ')' as name + from logger_variables lv, + logger_projects lp, + logger_project_var_map lpvm + where lp.project_id = lpvm.project_id + and lv.variable_id = lpvm.variable_id + [ad_decode $where_clauses "" "" "and [join $where_clauses "\n and "]"] + group by lv.variable_id, lv.name, lv.unit + + + + + + select submitter.user_id as unique_id, + submitter.first_names || ' ' || submitter.last_name as name + from cc_users submitter, + logger_entries le, + acs_objects ao + where ao.object_id = le.entry_id + and submitter.user_id = ao.creation_user + and ([ad_decode $where_clauses "" "" "[join $where_clauses "\n and "]"] + or submitter.user_id = :current_user_id + ) + group by submitter.user_id, submitter.first_names, submitter.last_name + + + + + + select lpe.projection_id as unique_id, + lpe.name, + to_char(lpe.start_time, 'YYYY-MM-DD') as start_date, + to_char(lpe.end_time, 'YYYY-MM-DD') as end_date + from logger_projections lpe + where lpe.project_id = :selected_project_id + and lpe.variable_id = :selected_variable_id + + + + Index: openacs-4/packages/logger/www/log.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/log.adp,v diff -u -N -r1.5 -r1.6 --- openacs-4/packages/logger/www/log.adp 7 May 2003 16:43:38 -0000 1.5 +++ openacs-4/packages/logger/www/log.adp 8 May 2003 13:55:50 -0000 1.6 @@ -3,28 +3,43 @@ @context@ log_entry_form.value -
- - - - - - - - - - - - + + + + + + + + + + +
- Add Entry -
- » - @variables.name@ + + + +
+ + + - - -
+ Add Entry
-
+
+ » + @variables.name@ +
+
+
Index: openacs-4/packages/logger/www/log.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/log.tcl,v diff -u -N -r1.6 -r1.7 --- openacs-4/packages/logger/www/log.tcl 7 May 2003 16:43:38 -0000 1.6 +++ openacs-4/packages/logger/www/log.tcl 8 May 2003 13:55:50 -0000 1.7 @@ -22,11 +22,7 @@ set current_user_id [ad_conn user_id] if { [exists_and_not_null entry_id] } { - set entry_exists_p [db_string entry_exists_p { - select count(*) - from logger_entries - where entry_id = :entry_id - }] + set entry_exists_p [db_string entry_exists_p {}] } else { set entry_exists_p 0 } @@ -86,7 +82,7 @@ } # Get project_id if it's not provided -if { ![exists_and_not_null project_id] } { +if { [exists_and_not_null entry_id] && ![exists_and_not_null project_id] } { logger::entry::get -entry_id $entry_id -array entry set project_id $entry(project_id) } @@ -149,15 +145,7 @@ # ########### -ad_form -extend -name log_entry_form -select_query { - select project_id, - variable_id, - value, - to_char(time_stamp, 'YYYY MM DD') as time_stamp, - description - from logger_entries - where entry_id = :entry_id -} -validate { +ad_form -extend -name log_entry_form -select_query_name select_logger_entries -validate { {value { [regexp {^([^.]+|[^.]*\.[0-9]{0,2})$} $value] } {The value may not contain more than two decimals} @@ -182,8 +170,8 @@ -time_stamp $time_stamp_ansi \ -description $description } -after_submit { - - ad_returnredirect "[ad_conn url]?entry_id=$entry_id" + + ad_returnredirect "[ad_conn url]?[export_vars { project_id variable_id }]" ad_script_abort } @@ -225,17 +213,7 @@ # ##### -db_multirow -extend { url selected_p } variables select_variables { - select lv.variable_id as unique_id, - lv.name || ' (' || lv.unit || ')' as name - from logger_variables lv, - logger_projects lp, - logger_project_var_map lpvm - where lp.project_id = lpvm.project_id - and lv.variable_id = lpvm.variable_id - and lp.project_id = :project_id - group by lv.variable_id, lv.name, lv.unit -} { +db_multirow -extend { url selected_p } variables select_variables {} { set url "log?[export_vars -override { {variable_id $unique_id} } { project_id }]" set selected_p [string equal $variable_id $unique_id] } Index: openacs-4/packages/logger/www/log.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/log.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/logger/www/log.xql 8 May 2003 13:55:50 -0000 1.1 @@ -0,0 +1,39 @@ + + + + + + + select count(*) + from logger_entries + where entry_id = :entry_id + + + + + + select project_id, + variable_id, + value, + to_char(time_stamp, 'YYYY MM DD') as time_stamp, + description + from logger_entries + where entry_id = :entry_id + + + + + + select lv.variable_id as unique_id, + lv.name || ' (' || lv.unit || ')' as name + from logger_variables lv, + logger_projects lp, + logger_project_var_map lpvm + where lp.project_id = lpvm.project_id + and lv.variable_id = lpvm.variable_id + and lp.project_id = :project_id + group by lv.variable_id, lv.name, lv.unit + + + + Index: openacs-4/packages/logger/www/no-projects.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/no-projects.adp,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/logger/www/no-projects.adp 7 May 2003 16:43:38 -0000 1.1 +++ openacs-4/packages/logger/www/no-projects.adp 8 May 2003 13:55:50 -0000 1.2 @@ -1,3 +1,5 @@ + +Logger Application

Before anyone can start working with the Logger application an administrator needs to setup a project.

Index: openacs-4/packages/logger/www/admin/entries-table-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/admin/entries-table-oracle.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/logger/www/admin/entries-table-oracle.xql 8 May 2003 13:56:04 -0000 1.1 @@ -0,0 +1,30 @@ + + + + + + + select le.entry_id as id, + acs_permission.permission_p(le.entry_id, :user_id, 'delete') as delete_p, + le.time_stamp, + lv.name as variable_name, + le.value, + lv.unit, + le.description, + lp.name as project_name, + submitter.first_names || ' ' || submitter.last_name as user_name + from logger_entries le, + logger_variables lv, + logger_projects lp, + acs_objects ao, + cc_users submitter + where le.variable_id = lv.variable_id + and le.project_id = lp.project_id + and ao.object_id = le.entry_id + and ao.creation_user = submitter.user_id + [ad_decode $where_clauses "" "" "and [join $where_clauses "\n and "]"] + order by le.time_stamp desc, ao.creation_date desc + + + + Index: openacs-4/packages/logger/www/admin/entries-table-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/admin/entries-table-postgresql.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/logger/www/admin/entries-table-postgresql.xql 8 May 2003 13:56:04 -0000 1.1 @@ -0,0 +1,31 @@ + + + + postgresql7.2 + + + + select le.entry_id as id, + acs_permission__permission_p(le.entry_id, :user_id, 'delete') as delete_p, + le.time_stamp, + lv.name as variable_name, + le.value, + lv.unit, + le.description, + lp.name as project_name, + submitter.first_names || ' ' || submitter.last_name as user_name + from logger_entries le, + logger_variables lv, + logger_projects lp, + acs_objects ao, + cc_users submitter + where le.variable_id = lv.variable_id + and le.project_id = lp.project_id + and ao.object_id = le.entry_id + and ao.creation_user = submitter.user_id + [ad_decode $where_clauses "" "" "and [join $where_clauses "\n and "]"] + order by le.time_stamp desc, ao.creation_date desc + + + + Index: openacs-4/packages/logger/www/admin/entries-table.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/admin/entries-table.tcl,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/logger/www/admin/entries-table.tcl 6 May 2003 17:37:09 -0000 1.1 +++ openacs-4/packages/logger/www/admin/entries-table.tcl 8 May 2003 13:56:04 -0000 1.2 @@ -37,28 +37,7 @@ set value_total "0" -db_multirow -extend action_links entries select_entries " - select le.entry_id as id, - acs_permission.permission_p(le.entry_id, :user_id, 'delete') as delete_p, - le.time_stamp, - lv.name as variable_name, - le.value, - lv.unit, - le.description, - lp.name as project_name, - submitter.first_names || ' ' || submitter.last_name as user_name - from logger_entries le, - logger_variables lv, - logger_projects lp, - acs_objects ao, - cc_users submitter - where le.variable_id = lv.variable_id - and le.project_id = lp.project_id - and ao.object_id = le.entry_id - and ao.creation_user = submitter.user_id - [ad_decode $where_clauses "" "" "and [join $where_clauses "\n and "]"] - order by le.time_stamp desc, ao.creation_date desc -" { +db_multirow -extend action_links entries select_entries {} { set description_max_length 50 if { [string length $description] > $description_max_length } { set description "[string range $description 0 [expr $description_max_length - 4]]..." Index: openacs-4/packages/logger/www/admin/index-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/admin/index-oracle.xql,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/logger/www/admin/index-oracle.xql 22 Apr 2003 09:27:03 -0000 1.1 +++ openacs-4/packages/logger/www/admin/index-oracle.xql 8 May 2003 13:56:04 -0000 1.2 @@ -22,4 +22,37 @@ + + + select lv.variable_id, + lv.name, + lv.unit, + lv.type, + acs_permission.permission_p(lv.variable_id, :user_id, 'admin') as admin_p + from logger_variables lv + where (exists (select 1 + from logger_project_var_map lpvm, + logger_project_pkg_map lppm + where lv.variable_id = lpvm.variable_id + and lpvm.project_id = lppm.project_id + and lppm.package_id = :package_id + ) + or lv.package_id = :package_id + or lv.package_id is null) + + + + + + select p.project_id, + p.name + from logger_projects p + where not exists (select 1 + from logger_project_pkg_map ppm + where ppm.project_id = p.project_id + and ppm.package_id = :package_id) + and acs_permission.permission_p(p.project_id, :user_id, 'read') = 't' + + + Index: openacs-4/packages/logger/www/admin/index-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/admin/index-postgresql.xql,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/logger/www/admin/index-postgresql.xql 7 May 2003 16:43:41 -0000 1.1 +++ openacs-4/packages/logger/www/admin/index-postgresql.xql 8 May 2003 13:56:04 -0000 1.2 @@ -22,4 +22,37 @@ + + + select lv.variable_id, + lv.name, + lv.unit, + lv.type, + acs_permission__permission_p(lv.variable_id, :user_id, 'admin') as admin_p + from logger_variables lv + where (exists (select 1 + from logger_project_var_map lpvm, + logger_project_pkg_map lppm + where lv.variable_id = lpvm.variable_id + and lpvm.project_id = lppm.project_id + and lppm.package_id = :package_id + ) + or lv.package_id = :package_id + or lv.package_id is null) + + + + + + select p.project_id, + p.name + from logger_projects p + where not exists (select 1 + from logger_project_pkg_map ppm + where ppm.project_id = p.project_id + and ppm.package_id = :package_id) + and acs_permission__permission_p(p.project_id, :user_id, 'read') = 't' + + + Index: openacs-4/packages/logger/www/admin/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/admin/index.adp,v diff -u -N -r1.7 -r1.8 --- openacs-4/packages/logger/www/admin/index.adp 7 May 2003 16:43:41 -0000 1.7 +++ openacs-4/packages/logger/www/admin/index.adp 8 May 2003 13:56:04 -0000 1.8 @@ -2,116 +2,231 @@ @page_title@
-

Projects

- - <% # Project table header %> +

Projects

- - - - - - - - - + + <% # Project table header %> - <% # Project table rows %> - - - - - - - - - - - -
 Project NameActiveProject LeadPermissions 
- Edit - - @projects.name@ - YesNo @projects.project_lead_name@ - - Set + + + + + + + + + + + + <% # Project table rows %> + + + + + + + + + + + + + + + + + + <% # Close project table %> +
 Project NameActiveProject LeadPermissionsUnlink 
+ Edit + + @projects.name@ + YesNo @projects.project_lead_chunk@ + + Set + + + Unlink + + + Delete + +
+
+ + + There are no projects + + +

+ » Create new project +

+ + +

+ Projects not in this logger application instance which can be linked in: +

+ + + + + + + + + - - - - + + + + + + + +
NameLink to instance
- - Delete - -
+ @mappable_projects.name@ + + Link +
- <% # Close project table %> -
-
- - - There are no projects - + -

- » Add project -

+

Variables

-

Variables

+ + + + + + + + + + - -
 NameUnitAdditivePermissions 
- - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - +
 NameUnitAdditivePermissions 
+ Edit + @variables.name@@variables.unit@YesNo + + Set + + + + Delete + +
- Edit - @variables.name@@variables.unit@YesNo - - Set - - - - Delete - -
+
+ + + There are no variables + - - - - - There are no variables - +

+ » Add variable +

-

- » Add variable -

+

Logger Application Instance

-

Package

-

- » Set permissions for this package -

+

+ » Set permissions for this logger application instance +

+ +

Help

+ +

+ The logger can track a number of variables in different projects. +

+ +

+ A variable is something you wish to track, for example: +

+ +
    +
  • + Time spent (hours) +
  • +
  • + Expenses (currency, USD, EUR, whatever) +
  • +
  • + Weight of goods shipped (lbs, kgs) +
  • +
  • + Your personal weight (lbs, kgs). Non-additive. +
  • +
+ +

+ Variables are shared between all projects, so that you can + summarize the variable across projects. However, if you have many + diverse projects going on, only certain variables will make sense + for any given project, hence we let you map variables to + projects. +

+ +

+ Some variables will be additive, meaning that it makes + sense to add them together and look at the total. An example of an + additive variable is time spent. Others are non-additive, + which means the opposite. Instead, you would typically average + over them. An example is measuring your personal weight, or the + account balance of your bank account. It doesn't make sense to add + those numbers together, they're snapshots at a given point in + time, and just because you check your account balance 10 times a + day doesn't (necessarily) mean you're getting richer and richer. +

+ +

+ +

+ +

+ +

+ +

+ +

+ + +

+ You can mount multiple instances of the logger + application. The projects you define are shared between all + logger application instances, subject to the permissions you grant + on them. Each instance of logger will be setup to display a + certain subset of the projects available, as defined by the + administrator of that instance. +

+ +

+ An example of why this is useful is if you work for a company, + which works on many different projects for different clients. In + that scenario, you would mount a logger instance in your intranet, + where people log the hours they spend on projects. Then if you + want to give your clients access to your logs, you can mount an + instance per client in the client's extranet area. These client + loggers would only have access to the projects that pertain to the + given client. +

+
+ Index: openacs-4/packages/logger/www/admin/index.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/admin/index.tcl,v diff -u -N -r1.5 -r1.6 --- openacs-4/packages/logger/www/admin/index.tcl 1 May 2003 21:50:38 -0000 1.5 +++ openacs-4/packages/logger/www/admin/index.tcl 8 May 2003 13:56:04 -0000 1.6 @@ -21,34 +21,41 @@ # ########### -db_multirow -extend { permissions_url } projects select_projects {} { +db_multirow -extend { edit_url display_url permissions_url delete_url unmap_url project_lead_chunk } projects select_projects {} { set description [string_truncate -len 50 $description] + + set edit_url "project?[export_vars { project_id {formbutton\:formbuilder\:\:edit Edit} {form\:id project_form} {form\:mode display}}]" + set display_url "project?[export_vars { project_id }]" + set unmap_url "project-instance-map?[export_vars { project_id {unmap "t"} }]" set permissions_url "${permissions_uri}?[export_vars {{object_id $project_id} application_url}]" + set delete_url "project-delete?[export_vars { project_id }]" + set project_lead_chunk [ad_present_user $project_lead_id $project_lead_name] } +##### +# +# Mappable projects +# +##### + +if { $user_id != 0 } { + db_multirow -extend { map_url } mappable_projects select_mappable_projects {} { + set map_url "project-instance-map?[export_vars { project_id }]" + } +} else { + # Create empty multirow + multirow create mappable_projects project_id name +} + ########### # # Variables # ########### -db_multirow -extend { permissions_url } variables select_variables { - select lv.variable_id, - lv.name, - lv.unit, - lv.type, - acs_permission.permission_p(lv.variable_id, :user_id, 'admin') as admin_p - from logger_variables lv - where (exists (select 1 - from logger_project_var_map lpvm, - logger_project_pkg_map lppm - where lv.variable_id = lpvm.variable_id - and lpvm.project_id = lppm.project_id - and lppm.package_id = :package_id - ) - or lv.package_id = :package_id - or lv.package_id is null) -} { +db_multirow -extend { edit_url delete_url permissions_url } variables select_variables {} { + set edit_url "variable?[export_vars { variable_id {formbutton\:formbuilder\:\:edit Edit} {form\:id variable_form} {form\:mode display}}]" + set delete_url "variable-delete?[export_vars { variable_id }]" set permissions_url "${permissions_uri}?[export_vars {{object_id $variable_id} application_url}]" } Index: openacs-4/packages/logger/www/admin/project-instance-map.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/admin/project-instance-map.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/logger/www/admin/project-instance-map.tcl 8 May 2003 13:56:04 -0000 1.1 @@ -0,0 +1,26 @@ +ad_page_contract { + Map a project to a logger instance +} { + project_id:integer + {unmap "f"} +} + +set package_id [ad_conn package_id] + +if { [string equal $unmap "f"] } { + + permission::require_permission -object_id $project_id -privilege "read" + + db_dml map_project { + insert into logger_project_pkg_map (project_id, package_id) values (:project_id, :package_id) + } +} else { + db_dml map_project { + delete + from logger_project_pkg_map + where project_id = :project_id + and package_id = :package_id + } +} + +ad_returnredirect . Index: openacs-4/packages/logger/www/admin/project-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/admin/project-oracle.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/logger/www/admin/project-oracle.xql 8 May 2003 13:56:04 -0000 1.1 @@ -0,0 +1,48 @@ + + + + oracle8.1.6 + + + + select count(*) + from logger_variables lv + where (exists (select 1 + from logger_project_var_map lpvm, + logger_project_pkg_map lppm + where lv.variable_id = lpvm.variable_id + and lpvm.project_id = lppm.project_id + and lppm.package_id = :package_id + ) + or lv.package_id = :package_id + or lv.package_id is null) + and not exists (select 1 + from logger_project_var_map lpvm + where lpvm.project_id = :project_id + and lpvm.variable_id = lv.variable_id + ) + and acs_permission.permission_p(lv.variable_id, :user_id, 'read') = 't' + + + + + + select lpe.projection_id, + lpe.name, + lpe.description, + lpe.value, + lpo.name as project_name, + lv.name as variable_name, + to_char(lpe.start_time, 'YYYY-MM-DD') as start_day, + to_char(lpe.end_time, 'YYYY-MM-DD') as end_day, + acs_permission.permission_p(lpo.project_id, :user_id, 'admin') as admin_p + from logger_projections lpe, + logger_projects lpo, + logger_variables lv + where lpe.project_id = :project_id + and lpe.project_id = lpo.project_id + and lpe.variable_id = lv.variable_id + + + + Index: openacs-4/packages/logger/www/admin/project-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/admin/project-postgresql.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/logger/www/admin/project-postgresql.xql 8 May 2003 13:56:04 -0000 1.1 @@ -0,0 +1,48 @@ + + + + postgresql7.1 + + + + select count(*) + from logger_variables lv + where (exists (select 1 + from logger_project_var_map lpvm, + logger_project_pkg_map lppm + where lv.variable_id = lpvm.variable_id + and lpvm.project_id = lppm.project_id + and lppm.package_id = :package_id + ) + or lv.package_id = :package_id + or lv.package_id is null) + and not exists (select 1 + from logger_project_var_map lpvm + where lpvm.project_id = :project_id + and lpvm.variable_id = lv.variable_id + ) + and acs_permission__permission_p(lv.variable_id, :user_id, 'read') = 't' + + + + + + select lpe.projection_id, + lpe.name, + lpe.description, + lpe.value, + lpo.name as project_name, + lv.name as variable_name, + to_char(lpe.start_time, 'YYYY-MM-DD') as start_day, + to_char(lpe.end_time, 'YYYY-MM-DD') as end_day, + acs_permission__permission_p(lpo.project_id, :user_id, 'admin') as admin_p + from logger_projections lpe, + logger_projects lpo, + logger_variables lv + where lpe.project_id = :project_id + and lpe.project_id = lpo.project_id + and lpe.variable_id = lv.variable_id + + + + Index: openacs-4/packages/logger/www/admin/project.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/admin/project.adp,v diff -u -N -r1.4 -r1.5 --- openacs-4/packages/logger/www/admin/project.adp 2 May 2003 08:35:23 -0000 1.4 +++ openacs-4/packages/logger/www/admin/project.adp 8 May 2003 13:56:04 -0000 1.5 @@ -1,6 +1,7 @@ @page_title@ @context@ +project_form.name
@@ -10,63 +11,81 @@

Variables

- + + + + + + + + + + + + + + + + + + +
NamePrimaryUnmap
+ @variables.name@ + + * + set + + + Unmap + +

- no variables + No variables selected

- [ add variable ] + » Add variable

Projections

- - - - - - - - - +
 NameStart dayEnd dayVariableValueDescription
+ + + + + + + + - - + + + + + + + + + + + - - - - - - @@ -78,7 +97,7 @@

- [ add projection ] + » Add projection

Index: openacs-4/packages/logger/www/admin/project.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/admin/project.tcl,v diff -u -N -r1.8 -r1.9 --- openacs-4/packages/logger/www/admin/project.tcl 7 May 2003 16:43:41 -0000 1.8 +++ openacs-4/packages/logger/www/admin/project.tcl 8 May 2003 13:56:04 -0000 1.9 @@ -29,11 +29,7 @@ # Initial request in display or edit mode or a submit of the form set page_title "One Project" set ad_form_mode display - set project_exists_p [db_string project_exists_p { - select count(*) - from logger_projects - where project_id = :project_id - }] + set project_exists_p [db_string project_exists_p {}] } else { # Initial request in add mode set page_title "Add a Project" @@ -91,7 +87,6 @@ } -after_submit { ad_returnredirect "[ad_conn url]?project_id=$project_id" - ad_script_abort } @@ -104,58 +99,15 @@ # ########### - db_multirow variables variables_in_project { - select lv.variable_id, - lv.name, - lpvm.primary_p - from logger_project_var_map lpvm, - logger_variables lv - where lpvm.variable_id = lv.variable_id - and lpvm.project_id = :project_id - } + db_multirow variables variables_in_project {} - set n_can_be_mapped [db_string n_can_be_mapped { - select count(*) - from logger_variables lv - where (exists (select 1 - from logger_project_var_map lpvm, - logger_project_pkg_map lppm - where lv.variable_id = lpvm.variable_id - and lpvm.project_id = lppm.project_id - and lppm.package_id = :package_id - ) - or lv.package_id = :package_id - or lv.package_id is null) - and not exists (select 1 - from logger_project_var_map lpvm - where lpvm.project_id = :project_id - and lpvm.variable_id = lv.variable_id - ) - and acs_permission.permission_p(lv.variable_id, :user_id, 'read') = 't' - }] + set n_can_be_mapped [db_string n_can_be_mapped {}] ########### # # Projections # ########### - db_multirow projections select_projections { - select lpe.projection_id, - lpe.name, - lpe.description, - lpe.value, - lpo.name as project_name, - lv.name as variable_name, - to_char(lpe.start_time, 'YYYY-MM-DD') start_day, - to_char(lpe.end_time, 'YYYY-MM-DD') end_day, - acs_permission.permission_p(lpo.project_id, :user_id, 'admin') as admin_p - from logger_projections lpe, - logger_projects lpo, - logger_variables lv - where lpe.project_id = :project_id - and lpe.project_id = lpo.project_id - and lpe.variable_id = lv.variable_id - } - + db_multirow projections select_projections {} } Index: openacs-4/packages/logger/www/admin/project.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/admin/project.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/logger/www/admin/project.xql 8 May 2003 13:56:04 -0000 1.1 @@ -0,0 +1,25 @@ + + + + + + + select count(*) + from logger_projects + where project_id = :project_id + + + + + + select lv.variable_id, + lv.name, + lpvm.primary_p + from logger_project_var_map lpvm, + logger_variables lv + where lpvm.variable_id = lv.variable_id + and lpvm.project_id = :project_id + + + + Index: openacs-4/packages/logger/www/admin/projection.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/admin/projection.adp,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/logger/www/admin/projection.adp 6 May 2003 17:37:10 -0000 1.2 +++ openacs-4/packages/logger/www/admin/projection.adp 8 May 2003 13:56:04 -0000 1.3 @@ -1,6 +1,7 @@ @page_title@ @context@ +projection_form.variable_id
Index: openacs-4/packages/logger/www/admin/projection.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/admin/projection.tcl,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/logger/www/admin/projection.tcl 6 May 2003 17:37:10 -0000 1.2 +++ openacs-4/packages/logger/www/admin/projection.tcl 8 May 2003 13:56:04 -0000 1.3 @@ -87,21 +87,7 @@ {project_id:integer(hidden) {value $project_id} } -} -select_query { - select lpe.name, - lpe.description, - lpe.project_id, - lpe.variable_id, - lpe.value, - to_char(lpe.start_time, 'YYYY MM DD') as start_day, - to_char(lpe.end_time, 'YYYY MM DD') as end_day, - lpo.name as project - from logger_projections lpe, - logger_projects lpo - where lpe.projection_id = :projection_id - and lpe.project_id = lpo.project_id - -} -validate { +} -select_query_name select_projections -validate { { name { ![empty_string_p [string trim $name]] } Index: openacs-4/packages/logger/www/admin/projection.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/admin/projection.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/logger/www/admin/projection.xql 8 May 2003 13:56:04 -0000 1.1 @@ -0,0 +1,22 @@ + + + + + + + select lpe.name, + lpe.description, + lpe.project_id, + lpe.variable_id, + lpe.value, + to_char(lpe.start_time, 'YYYY MM DD') as start_day, + to_char(lpe.end_time, 'YYYY MM DD') as end_day, + lpo.name as project + from logger_projections lpe, + logger_projects lpo + where lpe.projection_id = :projection_id + and lpe.project_id = lpo.project_id + + + + Index: openacs-4/packages/logger/www/admin/variable-delete.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/admin/variable-delete.tcl,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/logger/www/admin/variable-delete.tcl 6 May 2003 17:37:10 -0000 1.2 +++ openacs-4/packages/logger/www/admin/variable-delete.tcl 8 May 2003 13:56:04 -0000 1.3 @@ -14,11 +14,7 @@ permission::require_permission -object_id $variable_id -party_id $user_id -privilege admin # Check that there are no log entries for this variable -set n_log_entries [db_string n_log_entries { - select count(*) - from logger_entries - where variable_id = :variable_id -}] +set n_log_entries [db_string n_log_entries {}] if { $n_log_entries > 0 } { ad_return_complaint "Variable is in use" "You cannot delete this variable as it is being used by log entries" Index: openacs-4/packages/logger/www/admin/variable-delete.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/admin/variable-delete.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/logger/www/admin/variable-delete.xql 8 May 2003 13:56:04 -0000 1.1 @@ -0,0 +1,13 @@ + + + + + + + select count(*) + from logger_entries + where variable_id = :variable_id + + + + Index: openacs-4/packages/logger/www/admin/variable.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/admin/variable.adp,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/logger/www/admin/variable.adp 30 Apr 2003 12:21:16 -0000 1.2 +++ openacs-4/packages/logger/www/admin/variable.adp 8 May 2003 13:56:04 -0000 1.3 @@ -1,6 +1,7 @@ @page_title@ @context@ +variable_form.name
Index: openacs-4/packages/logger/www/admin/variable.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/admin/variable.tcl,v diff -u -N -r1.4 -r1.5 --- openacs-4/packages/logger/www/admin/variable.tcl 1 May 2003 21:18:08 -0000 1.4 +++ openacs-4/packages/logger/www/admin/variable.tcl 8 May 2003 13:56:04 -0000 1.5 @@ -33,25 +33,21 @@ variable_id:key(acs_object_id_seq) {name:text - {html {size 50}} + {html {size 50}} + {label "Name"} } {unit:text - {html {size 50}} + {html {size 50}} + {label "Unit"} } {type:text(radio) {options {{Additive additive} {Non-Additive non-additive}}} + {label "Type"} } -} -select_query { - select name, - unit, - type - from logger_variables - where variable_id = :variable_id - -} -validate { +} -select_query_name select_variable -validate { { name { ![empty_string_p [string trim $name]] } Index: openacs-4/packages/logger/www/admin/variable.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/admin/variable.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/logger/www/admin/variable.xql 8 May 2003 13:56:04 -0000 1.1 @@ -0,0 +1,15 @@ + + + + + + + select name, + unit, + type + from logger_variables + where variable_id = :variable_id + + + + Index: openacs-4/packages/logger/www/lib/entries-table-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/lib/Attic/entries-table-oracle.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/logger/www/lib/entries-table-oracle.xql 8 May 2003 13:56:20 -0000 1.1 @@ -0,0 +1,29 @@ + + + + oracle8.1.6 + + + + select le.entry_id as id, + acs_permission.permission_p(le.entry_id, :user_id, 'delete') as delete_p, + le.time_stamp, + to_char(le.time_stamp, 'fmMMfm-fmDDfm-YYYY') as time_stamp_pretty, + le.value, + le.description, + lp.name as project_name, + submitter.user_id, + submitter.first_names || ' ' || submitter.last_name as user_name + from logger_entries le, + logger_projects lp, + acs_objects ao, + cc_users submitter + where le.project_id = lp.project_id + and ao.object_id = le.entry_id + and ao.creation_user = submitter.user_id + [ad_decode $where_clauses "" "" "and [join $where_clauses "\n and "]"] + order by le.time_stamp desc, ao.creation_date desc + + + + Index: openacs-4/packages/logger/www/lib/entries-table-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/lib/Attic/entries-table-postgresql.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/logger/www/lib/entries-table-postgresql.xql 8 May 2003 13:56:20 -0000 1.1 @@ -0,0 +1,29 @@ + + + + postgresql7.2 + + + + select le.entry_id as id, + acs_permission__permission_p(le.entry_id, :user_id, 'delete') as delete_p, + le.time_stamp, + to_char(le.time_stamp, 'fmMMfm-fmDDfm-YYYY') as time_stamp_pretty, + le.value, + le.description, + lp.name as project_name, + submitter.user_id, + submitter.first_names || ' ' || submitter.last_name as user_name + from logger_entries le, + logger_projects lp, + acs_objects ao, + cc_users submitter + where le.project_id = lp.project_id + and ao.object_id = le.entry_id + and ao.creation_user = submitter.user_id + [ad_decode $where_clauses "" "" "and [join $where_clauses "\n and "]"] + order by le.time_stamp desc, ao.creation_date desc + + + + Index: openacs-4/packages/logger/www/lib/entries-table.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/lib/Attic/entries-table.adp,v diff -u -N -r1.3 -r1.4 --- openacs-4/packages/logger/www/lib/entries-table.adp 7 May 2003 16:43:44 -0000 1.3 +++ openacs-4/packages/logger/www/lib/entries-table.adp 8 May 2003 13:56:20 -0000 1.4 @@ -47,8 +47,32 @@
- - + + @@ -58,7 +82,7 @@ - + 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 -N -r1.3 -r1.4 --- openacs-4/packages/logger/www/lib/entries-table.tcl 7 May 2003 16:43:44 -0000 1.3 +++ openacs-4/packages/logger/www/lib/entries-table.tcl 8 May 2003 13:56:20 -0000 1.4 @@ -26,14 +26,9 @@ )" } -db_1row select_variable_info { - select name, - unit - from logger_variables - where variable_id = :selected_variable_id -} -column_array variable - if { [exists_and_not_null selected_variable_id] } { + db_1row select_variable_info {} -column_array variable + lappend where_clauses "le.variable_id = :selected_variable_id" } @@ -53,40 +48,13 @@ set selected_entry_id {} } -set value_total "0" +set value_total 0 +set value_count 0 -db_multirow -extend { edit_url delete_url delete_onclick user_chunk selected_p } entries select_entries " - select le.entry_id as id, - acs_permission.permission_p(le.entry_id, :user_id, 'delete') as delete_p, - le.time_stamp, - to_char(le.time_stamp, 'fmMMfm-fmDDfm-YYYY') as time_stamp_pretty, - le.value, - le.description, - lp.name as project_name, - submitter.user_id, - submitter.first_names || ' ' || submitter.last_name as user_name - from logger_entries le, - logger_projects lp, - acs_objects ao, - cc_users submitter - where le.project_id = lp.project_id - and ao.object_id = le.entry_id - and ao.creation_user = submitter.user_id - [ad_decode $where_clauses "" "" "and [join $where_clauses "\n and "]"] - order by le.time_stamp desc, ao.creation_date desc -" { - set description_max_length 50 - if { [string length $description] > $description_max_length } { - set description "[string range $description 0 [expr $description_max_length - 4]]..." - } - - set project_name_max_length 20 - if { [string length $project_name] > $project_name_max_length } { - set project_name "[string range $project_name 0 [expr $project_name_max_length - 4]]..." - } - +db_multirow -extend { 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 } }]" if { $delete_p } { @@ -99,4 +67,11 @@ set user_chunk [ad_present_user $user_id $user_name] set value_total [expr $value_total + $value] + incr value_count } + +if { $value_count > 0 } { + set value_average [expr round(100 * $value_total / $value_count) / 100.0] } { + set value_average "n/a" +} + Index: openacs-4/packages/logger/www/lib/entries-table.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/lib/Attic/entries-table.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/logger/www/lib/entries-table.xql 8 May 2003 13:56:20 -0000 1.1 @@ -0,0 +1,15 @@ + + + + + + + select name, + unit, + type + from logger_variables + where variable_id = :selected_variable_id + + + + Index: openacs-4/packages/logger/www/lib/nav-bar.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/www/lib/Attic/nav-bar.tcl,v diff -u -N -r1.5 -r1.6 --- openacs-4/packages/logger/www/lib/nav-bar.tcl 7 May 2003 16:43:44 -0000 1.5 +++ openacs-4/packages/logger/www/lib/nav-bar.tcl 8 May 2003 13:56:20 -0000 1.6 @@ -11,7 +11,7 @@ set link_list {} # Log entries page -set index_urls [list "${package_url}" "${package_url}index"] +set index_urls [list "${package_url}" "${package_url}."] lappend link_list $index_urls lappend link_list {} lappend link_list "List" @@ -45,7 +45,11 @@ } } - multirow append links $label "$url?[export_vars $param_list]" $selected_p + if { ![empty_string_p $param_list] } { + append url "?[export_vars $param_list]" + } + + multirow append links $label $url $selected_p } ad_return_template
NameStart dayEnd dayVariableValueDescription 
- [ delete ] + +
@projections.name@@projections.start_day@@projections.end_day@@projections.variable_name@@projections.value@@projections.description@ + + Delete @projections.name@@projections.start_day@@projections.end_day@@projections.variable_name@@projections.value@@projections.description@
 Total@value_total@ + + Total + + + Average + + + + + @value_total@ + + + @value_total@ + + + + + @value_average@ + + + @value_average@ + + +    
  Projection@projection_value@@projection_value@