Index: openacs-4/packages/logger/logger.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/logger.info,v diff -u -r1.9.2.6 -r1.9.2.7 --- openacs-4/packages/logger/logger.info 14 May 2005 10:53:01 -0000 1.9.2.6 +++ openacs-4/packages/logger/logger.info 27 Jun 2005 20:38:10 -0000 1.9.2.7 @@ -7,18 +7,18 @@ f f - + Lars Pind Peter Marklund Jade Rubick Time and expenses reporting. - 2004-11-17 + 2004-6-24 Collaboraid Logger lets you keep track of measurements over time. The primary use case is time and expenses reporting, an area where we are being guided by the HR-XML Time Expense Reporting 2.0 standard. However, the intention is to allow for reporting of arbitrary types of numerical data such as financial results - account balance, revenue etc. You could even use this application to monitor your weight. The full specification is here: <a href="http://www.collaboraid.biz/developer/logger-spec">http://www.collaboraid.biz/developer/logger-spec<a> Logger can be optionally integrated with project-manager, for logging of time against projects and tasks. - + 1 Index: openacs-4/packages/logger/lib/entries.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/lib/entries.tcl,v diff -u -r1.10.2.5 -r1.10.2.6 --- openacs-4/packages/logger/lib/entries.tcl 9 May 2005 14:49:37 -0000 1.10.2.5 +++ openacs-4/packages/logger/lib/entries.tcl 27 Jun 2005 20:38:10 -0000 1.10.2.6 @@ -242,7 +242,7 @@ } user_id { label "[_ logger.Users]" - values {[db_list_of_lists select_users {}]} + values {[logger::package::select_users -package_id $package_id]} where_clause { submitter.person_id = :user_id } Index: openacs-4/packages/logger/lib/entries.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/lib/entries.xql,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/logger/lib/entries.xql 17 Sep 2004 23:53:21 -0000 1.4.2.2 +++ openacs-4/packages/logger/lib/entries.xql 27 Jun 2005 20:38:10 -0000 1.4.2.3 @@ -54,24 +54,6 @@ - - - select submitter.first_names || ' ' || submitter.last_name as label, - submitter.person_id as user_id - from persons submitter, - logger_entries le, - acs_objects ao - where ao.object_id = le.entry_id - and submitter.person_id = ao.creation_user - and exists (select 1 - from logger_project_pkg_map - where project_id = le.project_id - and package_id = :package_id) - group by submitter.person_id, submitter.first_names, submitter.last_name - order by submitter.first_names, submitter.last_name - - - select p.projection_id, 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 -r1.5 -r1.5.8.1 --- openacs-4/packages/logger/sql/postgresql/logger-tables-create.sql 9 May 2003 11:04:13 -0000 1.5 +++ openacs-4/packages/logger/sql/postgresql/logger-tables-create.sql 27 Jun 2005 20:38:10 -0000 1.5.8.1 @@ -250,3 +250,15 @@ end;' language 'plpgsql'; select inline_0 (); drop function inline_0 (); + +-- create indexes + +CREATE INDEX logger_variables_package_id_inx ON logger_variables(package_id); +CREATE INDEX logger_projects_inx ON logger_projects(project_lead); +CREATE INDEX logger_projections_variable_id_inx ON logger_projections(variable_id); +CREATE INDEX logger_projections_project_id_inx ON logger_projections(project_id); +CREATE INDEX logger_project_var_map_variable_id_inx ON logger_project_var_map(variable_id); +CREATE INDEX logger_project_pkg_map_package_id_inx ON logger_project_pkg_map(package_id); +CREATE INDEX logger_entries_variable_id_inx ON logger_entries(variable_id); +CREATE INDEX logger_entries_project_id_inx ON logger_entries(project_id); +CREATE INDEX logger_entries_time_stamp_inx ON logger_entries(time_stamp); Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/logger/sql/postgresql/upgrade/upgrade-1.2b1-1.2b2.sql'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/packages/logger/tcl/entry-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/tcl/entry-procs.tcl,v diff -u -r1.3.8.5 -r1.3.8.6 --- openacs-4/packages/logger/tcl/entry-procs.tcl 9 May 2005 14:49:37 -0000 1.3.8.5 +++ openacs-4/packages/logger/tcl/entry-procs.tcl 27 Jun 2005 20:38:10 -0000 1.3.8.6 @@ -107,8 +107,15 @@ pm::project::compute_status $project_item_id } } - - + + # Check cache, expire if it is a new user + if {![regexp [ad_conn user_id] [util_memoize [list logger::package::select_users_not_cached -package_id [ad_conn package_id]] 5600] match]} { + ns_log notice "Flushed Cache" + util_memoize_flush [list logger::package::select_users_not_cached -package_id [ad_conn package_id]] + } else { + ns_log notice "did not flush cache" + } + return $entry_id } Index: openacs-4/packages/logger/tcl/package-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/tcl/package-procs.tcl,v diff -u -r1.6.2.1 -r1.6.2.2 --- openacs-4/packages/logger/tcl/package-procs.tcl 17 Sep 2004 21:06:04 -0000 1.6.2.1 +++ openacs-4/packages/logger/tcl/package-procs.tcl 27 Jun 2005 20:38:11 -0000 1.6.2.2 @@ -137,3 +137,33 @@ return 1 } + +ad_proc -private logger::package::select_users_not_cached { + {-package_id:required} +} { + Return a list of users that have used the logger + + @param package_id The id of the package to return projects for + + @return A list of user_id:s. An empty list if there are no users. + + @author Alex Kroman +} { + return [db_list_of_lists select_users {}] +} + +ad_proc -public logger::package::select_users { + {-package_id:required} +} { + Return a list of users that have used the logger, use the cache + + @param package_id The id of the package to return projects for + + @return A list of user_id:s. An empty list if there are no users. + + @author Alex Kroman +} { + return [util_memoize [list logger::package::select_users_not_cached -package_id $package_id] 3600] +} + + Index: openacs-4/packages/logger/tcl/package-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/logger/tcl/package-procs.xql,v diff -u -r1.3 -r1.3.8.1 --- openacs-4/packages/logger/tcl/package-procs.xql 1 May 2003 14:14:33 -0000 1.3 +++ openacs-4/packages/logger/tcl/package-procs.xql 27 Jun 2005 20:38:11 -0000 1.3.8.1 @@ -25,4 +25,22 @@ + + + select submitter.first_names || ' ' || submitter.last_name as label, + submitter.person_id as user_id + from acs_objects ao, + logger_entries le, + persons submitter + where ao.object_id = le.entry_id + and submitter.person_id = ao.creation_user + and exists (select 1 + from logger_project_pkg_map + where project_id = le.project_id + and package_id = :package_id) + group by submitter.person_id, submitter.first_names, + submitter.last_name + order by submitter.first_names, submitter.last_name + +