Index: openacs-4/contrib/packages/project-manager/www/admin/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/admin/Attic/index.adp,v diff -u -r1.4 -r1.5 --- openacs-4/contrib/packages/project-manager/www/admin/index.adp 3 Jun 2004 21:32:15 -0000 1.4 +++ openacs-4/contrib/packages/project-manager/www/admin/index.adp 4 Jun 2004 18:38:23 -0000 1.5 @@ -68,7 +68,7 @@ - Logger integration + Logger integration Set up Logger is a package that lets you log time, expenses, and other variables. Project manager requires you to @@ -84,7 +84,7 @@ Set up - You must choose on logger instance to be the primary + You must choose a logger instance to be the primary logger linked in with project-manager. This is closely linked in with project-manager, so you can view reports of a project, etc.

@@ -93,6 +93,18 @@ + Sync + Once you have chosen logger instances to be integrated + with project-manager, you may have a lot of older + project-manager projects that are not synchronized with + logger. This page lets you synchronize older project-manager + projects with logger, so that they are all linked in correctly + with that instance. This does not add in logger projects to + project-manager (although someone can certainly add that + functionality if they wish). + + + Parameters Edit The parameters allow you to do things such as set up daily Index: openacs-4/contrib/packages/project-manager/www/admin/index.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/admin/Attic/index.tcl,v diff -u -r1.4 -r1.5 --- openacs-4/contrib/packages/project-manager/www/admin/index.tcl 3 Jun 2004 21:32:16 -0000 1.4 +++ openacs-4/contrib/packages/project-manager/www/admin/index.tcl 4 Jun 2004 18:38:23 -0000 1.5 @@ -28,6 +28,7 @@ project_term_lower:onevalue logger_link:onevalue logger_primary_link:onevalue + logger_sync_link:onevalue } # --------------------------------------------------------------- # @@ -48,6 +49,7 @@ set parameters_link "/shared/parameters?package_id=$package_id&return_url=[site_node::get_package_url -package_key project-manager]admin/" set logger_link "logger" set logger_primary_link "logger-primary" +set logger_sync_link "logger-sync" if {[empty_string_p $logger_URLs]} { set logger_warning "not set up" Index: openacs-4/contrib/packages/project-manager/www/admin/logger-primary.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/admin/Attic/logger-primary.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/project-manager/www/admin/logger-primary.adp 4 Jun 2004 18:38:23 -0000 1.1 @@ -0,0 +1,22 @@ + + @title@ + @context@ + + Logger is a package that lets you log time, expenses, and + other variables. Project manager requires you to + install and mount at least one instance of logger, because it + uses logger to log time and other variables against projects + and tasks. However, you can have varying levels of integration + with logger. This section sets up which logger instances you + want to be fully integrated with project-manager, so that new + project-manager projects appear in the logger instance. + +

+ + There is currently a bug in this page where it will not allow you to + remove values. You will have to do that through the parameters section. + +

+ + + Index: openacs-4/contrib/packages/project-manager/www/admin/logger-primary.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/admin/Attic/logger-primary.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/project-manager/www/admin/logger-primary.tcl 4 Jun 2004 18:38:23 -0000 1.1 @@ -0,0 +1,67 @@ +# /project-manager/www/admin/logger-primary.tcl + +ad_page_contract { + + Sets up which instances of logger to integrate with project-manager + + @author Jade Rubick (jader@bread.com) + @creation-date 2004-05-21 + @arch-tag: bac17115-5b9e-4b63-adac-8deb6fef3015 + @cvs-id $Id: logger-primary.tcl,v 1.1 2004/06/04 18:38:23 jader Exp $ +} { + +} -properties { +} -validate { +} -errors { +} + +# set up context bar and title +set context [list "Logger integration"] +set title "Administration: setting up primary logger instance" + +set package_id [ad_conn package_id] + +set possible_URLs [parameter::get -parameter "LoggerURLsToKeepUpToDate" -default ""] + +set logger_primary [parameter::get -parameter "LoggerPrimaryURL" -default ""] + +ad_form -name logger \ + -form { + acs_object_id_seq:key + } + +set logger_options [list] + +foreach url $possible_URLs { + + lappend logger_options [list $url $url] +} + +set logger_definition " + {package_url:text(select) + {label \"Primary logger instance\"} + {options {$logger_options}} + {value $logger_primary} + } +" + + +ad_form -extend -name logger \ + -form $logger_definition + + +ad_form -extend -name logger \ + -on_submit { + + parameter::set_value \ + -package_id $package_id \ + -parameter LoggerPrimaryURL \ + -value "$package_url" + + ad_returnredirect -message "Primary logger instance saved" . + + } \ + -new_data { + } \ + -edit_data { + } \ Index: openacs-4/contrib/packages/project-manager/www/admin/logger-sync.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/admin/Attic/logger-sync.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/project-manager/www/admin/logger-sync.adp 4 Jun 2004 18:38:23 -0000 1.1 @@ -0,0 +1,24 @@ + + @title@ + @context@ + + + + Done. + + + + + Are you ready to sync with these URLs? +

+ +

+ Begin synchronization (be patient, + this takes a long time, you can read the log files to see what's + happening if you like.) + + Index: openacs-4/contrib/packages/project-manager/www/admin/logger-sync.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/admin/Attic/logger-sync.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/project-manager/www/admin/logger-sync.tcl 4 Jun 2004 18:38:23 -0000 1.1 @@ -0,0 +1,93 @@ +# + +ad_page_contract { + + Synchronizes the projects in logger and project-manager + + @author Jade Rubick (jader@bread.com) + @creation-date 2004-06-04 + @arch-tag: fc794335-9bb0-4447-92cf-b3c1c69124bd + @cvs-id $Id: logger-sync.tcl,v 1.1 2004/06/04 18:38:23 jader Exp $ +} { + {confirmed_p "n"} +} -properties { +} -validate { +} -errors { +} + +set title "Synchronize logger projects" +set context [list $title] + +set logger_URLs [parameter::get -parameter "LoggerURLsToKeepUpToDate" -default ""] + +if {[string equal $confirmed_p n]} { + set confirm_link [export_vars -base logger-sync {{confirmed_p y}}] +} else { + + # projects + set projects_list [db_list_of_lists get_projects_not_already_linked { + SELECT + p.title as project_name, + p.description, + p.creation_user, + p.item_id as project_item_id, + p.status_id, + p.customer_id as organization_id, + p.logger_project + FROM + pm_projectsx p, + cr_items i + WHERE + i.item_id = p.item_id and + i.live_revision = p.revision_id + }] + + foreach project $projects_list { + set project_name [lindex $project 0] + set description [lindex $project 1] + set creation_user [lindex $project 2] + set project_item_id [lindex $project 3] + set status_id [lindex $project 4] + set organization_id [lindex $project 5] + set logger_project [lindex $project 6] + + set active_p [pm::status::open_p -task_status_id $status_id] + set customer_name [organizations::name -organization_id "$organization_id"] + if {![empty_string_p $customer_name]} { + append customer_name " - " + } + + logger::project::edit \ + -project_id $logger_project \ + -name "$customer_name$project_name" \ + -description "$description" \ + -project_lead $creation_user \ + -active_p $active_p + + + foreach url $logger_URLs { + # get the package_id + set node_id [site_node::get_node_id -url $url] + array set node [site_node::get -node_id $node_id] + set this_package_id $node(package_id) + + # make sure the project_id is not already mapped + + set num_exists [db_string already_exists_p "select count(*) from logger_project_pkg_map where project_id = :logger_project and package_id = :this_package_id" -default "0"] + + ns_log Notice "Logger sync: (num_exists: $num_exists) (project: $logger_project package_id: $this_package_id)" + + if {$num_exists < 1} { + ns_log Notice "Logger sync: Mapping: (project: $logger_project package_id: $this_package_id)" + logger::package::map_project \ + -project_id $logger_project \ + -package_id $this_package_id + } + } + + } + + ad_returnredirect -message "Logger projects synchronized" index +} + + Index: openacs-4/contrib/packages/project-manager/www/admin/logger.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/admin/Attic/logger.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/project-manager/www/admin/logger.adp 4 Jun 2004 18:38:23 -0000 1.1 @@ -0,0 +1,22 @@ + + @title@ + @context@ + + Logger is a package that lets you log time, expenses, and + other variables. Project manager requires you to + install and mount at least one instance of logger, because it + uses logger to log time and other variables against projects + and tasks. However, you can have varying levels of integration + with logger. This section sets up which logger instances you + want to be fully integrated with project-manager, so that new + project-manager projects appear in the logger instance. + +

+ + There is currently a bug in this page where it will not allow you to + remove values. You will have to do that through the parameters section. + +

+ + + Index: openacs-4/contrib/packages/project-manager/www/admin/logger.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/admin/Attic/logger.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/contrib/packages/project-manager/www/admin/logger.tcl 4 Jun 2004 18:38:23 -0000 1.1 @@ -0,0 +1,84 @@ +# /project-manager/www/admin/logger.tcl + +ad_page_contract { + + Sets up which instances of logger to integrate with project-manager + + @author Jade Rubick (jader@bread.com) + @creation-date 2004-05-21 + @arch-tag: bac17115-5b9e-4b63-adac-8deb6fef3015 + @cvs-id $Id: logger.tcl,v 1.1 2004/06/04 18:38:23 jader Exp $ +} { + +} -properties { +} -validate { +} -errors { +} + +# set up context bar and title +set context [list "Logger integration"] +set title "Administration: setting up logger integration" + +set package_id [ad_conn package_id] + +set logger_URLs [parameter::get -parameter "LoggerURLsToKeepUpToDate" -default ""] + +set possible_URLs [site_node::get_children -all -package_key logger -node_id [site_node::get_node_id -url "/"]] + +ad_form -name logger \ + -form { + acs_object_id_seq:key + } + +set logger_definition "" +set index 0 +foreach url $possible_URLs { + + if {[lsearch $logger_URLs $url] >= 0} { + set value t + } else { + set value "" + } + + append logger_definition " + + {package_url_$url:text(checkbox),optional + {label \"$url\"} + {options {{\"\" \"t\"}}} + {value $value} + } + " + + incr index +} + + ad_form -extend -name logger \ + -form $logger_definition + + +ad_form -extend -name logger \ + -on_submit { + + # go through each URL, find out if it has been checked, and + # save it if so. + + set urls_list [list] + foreach url $possible_URLs { + + set this_value "[set package_url_[set url]]" + if {[string equal t $this_value]} { + lappend urls_list $url + } + } + parameter::set_value \ + -package_id $package_id \ + -parameter LoggerURLsToKeepUpToDate \ + -value "$urls_list" + + ad_returnredirect -message "List of integrated logger instances saved" . + + } \ + -new_data { + } \ + -edit_data { + } \