Index: openacs-4/packages/project-manager-portlet/project-manager-portlet.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager-portlet/project-manager-portlet.info,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/project-manager-portlet/project-manager-portlet.info 10 Jun 2005 18:27:34 -0000 1.1
@@ -0,0 +1,28 @@
+
+
+
+
+ Project Manager Portlet
+ Project Manager Portlets
+ f
+ f
+
+
+ Bjoern Kiesbye
+ Malte Sussdorff
+ Portlet for the Project Manager.
+ Cognovis
+ Portlet for the Project Manager.
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
Index: openacs-4/packages/project-manager-portlet/sql/postgresql/project-manager-portlet-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager-portlet/sql/postgresql/project-manager-portlet-create.sql,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/project-manager-portlet/sql/postgresql/project-manager-portlet-create.sql 10 Jun 2005 18:27:34 -0000 1.1
@@ -0,0 +1,274 @@
+--
+-- Copyright (C) 2001, 2002 MIT
+--
+-- This file is part of dotLRN.
+--
+-- dotLRN is free software; you can redistribute it and/or modify it under the
+-- terms of the GNU General Public License as published by the Free Software
+-- Foundation; either version 2 of the License, or (at your option) any later
+-- version.
+--
+-- dotLRN is distributed in the hope that it will be useful, but WITHOUT ANY
+-- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+-- FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+-- details.
+--
+
+--
+-- /project-manager-portlet/sql/oracle/project-manager-portlet-create.sql
+--
+
+-- Creates Project Manager portlet
+
+-- Copyright (C) 2005 Cognovis
+-- @author Bjoern Kiesbye (kiesbye@theservice.de)
+-- @creation-date 2005-08-06
+
+
+-- This is free software distributed under the terms of the GNU Public
+-- License version 2 or higher. Full text of the license is available
+-- from the GNU Project: http://www.fsf.org/copyleft/gpl.html
+
+create function inline_0()
+returns integer as '
+declare
+ ds_id portal_datasources.datasource_id%TYPE;
+begin
+ ds_id := portal_datasource__new(
+ ''project_manager_portlet'',
+ ''Displays the Project Manager''
+ );
+
+
+ -- the standard 4 params
+
+ -- shadeable_p
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''t'',
+ ''shadeable_p'',
+ ''t''
+);
+
+
+ -- hideable_p
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''t'',
+ ''hideable_p'',
+ ''t''
+);
+
+ -- user_editable_p
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''t'',
+ ''user_editable_p'',
+ ''t''
+);
+
+ -- shaded_p
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''t'',
+ ''shaded_p'',
+ ''f''
+);
+
+ -- link_hideable_p
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''t'',
+ ''link_hideable_p'',
+ ''t''
+);
+
+
+ perform portal_datasource__set_def_param(
+ ds_id,
+ ''t'',
+ ''f'',
+ ''scoped_p'',
+ ''t''
+ );
+
+
+ -- Project-Manager-specific params
+
+ -- Project_manager_id must be configured
+
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''f'',
+ ''project_manager_id'',
+ ''''
+ );
+
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''f'',
+ ''project_manager_orderby'',
+ ''''
+ );
+
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''f'',
+ ''project_manager_status_id'',
+ ''''
+ );
+
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''f'',
+ ''project_manager_searchterm'',
+ ''''
+ );
+
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''f'',
+ ''project_manager_bulk_p'',
+ ''''
+ );
+
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''f'',
+ ''project_manager_action_p'',
+ ''''
+ );
+
+
+
+
+ return 0;
+
+end;' language 'plpgsql';
+select inline_0();
+drop function inline_0();
+
+
+create function inline_0()
+returns integer as '
+declare
+ foo integer;
+begin
+ -- create the implementation
+ foo := acs_sc_impl__new (
+ ''portal_datasource'',
+ ''project_manager_portlet'',
+ ''project_manager_portlet''
+ );
+
+ return 0;
+
+end;' language 'plpgsql';
+select inline_0();
+drop function inline_0();
+
+
+
+create function inline_0()
+returns integer as '
+declare
+ foo integer;
+begin
+
+ -- add all the hooks
+ foo := acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''project_manager_portlet'',
+ ''GetMyName'',
+ ''project_manager_portlet::get_my_name'',
+ ''TCL''
+ );
+
+ foo := acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''project_manager_portlet'',
+ ''GetPrettyName'',
+ ''project_manager_portlet::get_pretty_name'',
+ ''TCL''
+ );
+
+ foo := acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''project_manager_portlet'',
+ ''Link'',
+ ''project_manager_portlet::link'',
+ ''TCL''
+ );
+
+ foo := acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''project_manager_portlet'',
+ ''AddSelfToPage'',
+ ''project_manager_portlet::add_self_to_page'',
+ ''TCL''
+ );
+
+ foo := acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''project_manager_portlet'',
+ ''Show'',
+ ''project_manager_portlet::show'',
+ ''TCL''
+ );
+
+ foo := acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''project_manager_portlet'',
+ ''Edit'',
+ ''project_manager_portlet::edit'',
+ ''TCL''
+ );
+
+ foo := acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''project_manager_portlet'',
+ ''RemoveSelfFromPage'',
+ ''project_manager_portlet::remove_self_from_page'',
+ ''TCL''
+ );
+
+ return 0;
+
+end;' language 'plpgsql';
+select inline_0();
+drop function inline_0();
+
+
+
+create function inline_0()
+returns integer as '
+declare
+ foo integer;
+begin
+
+ -- Add the binding
+ perform acs_sc_binding__new (
+ ''portal_datasource'',
+ ''project_manager_portlet''
+ );
+
+ return 0;
+
+end;' language 'plpgsql';
+select inline_0();
+drop function inline_0();
+
+
+\i project-manager-task-portlet-create.sql
+
Index: openacs-4/packages/project-manager-portlet/sql/postgresql/project-manager-task-portlet-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager-portlet/sql/postgresql/project-manager-task-portlet-create.sql,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/project-manager-portlet/sql/postgresql/project-manager-task-portlet-create.sql 10 Jun 2005 18:27:34 -0000 1.1
@@ -0,0 +1,232 @@
+--
+-- Copyright (C) 2001, 2002 MIT
+--
+-- This file is part of dotLRN.
+--
+-- dotLRN is free software; you can redistribute it and/or modify it under the
+-- terms of the GNU General Public License as published by the Free Software
+-- Foundation; either version 2 of the License, or (at your option) any later
+-- version.
+--
+-- dotLRN is distributed in the hope that it will be useful, but WITHOUT ANY
+-- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+-- FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+-- details.
+--
+
+--
+-- /project-manager-portlet/sql/oracle/project-manager-portlet-create.sql
+--
+
+-- Creates Project Manager portlet
+
+-- Copyright (C) 2005 Cognovis
+-- @author Bjoern Kiesbye (kiesbye@theservice.de)
+-- @creation-date 2005-08-06
+
+
+-- This is free software distributed under the terms of the GNU Public
+-- License version 2 or higher. Full text of the license is available
+-- from the GNU Project: http://www.fsf.org/copyleft/gpl.html
+
+create function inline_0()
+returns integer as '
+declare
+ ds_id portal_datasources.datasource_id%TYPE;
+begin
+ ds_id := portal_datasource__new(
+ ''project_manager_task_portlet'',
+ ''Displays the Project Manager''
+ );
+
+
+ -- the standard 4 params
+
+ -- shadeable_p
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''t'',
+ ''shadeable_p'',
+ ''t''
+);
+
+
+ -- hideable_p
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''t'',
+ ''hideable_p'',
+ ''t''
+);
+
+ -- user_editable_p
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''t'',
+ ''user_editable_p'',
+ ''t''
+);
+
+ -- shaded_p
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''t'',
+ ''shaded_p'',
+ ''f''
+);
+
+ -- link_hideable_p
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''t'',
+ ''link_hideable_p'',
+ ''t''
+);
+
+
+ perform portal_datasource__set_def_param(
+ ds_id,
+ ''t'',
+ ''f'',
+ ''scoped_p'',
+ ''t''
+ );
+
+
+ -- Project-Manager-Task-specific params
+
+ -- Project_manager_id must be configured
+
+ perform portal_datasource__set_def_param (
+ ds_id,
+ ''t'',
+ ''f'',
+ ''project_manager_id'',
+ ''''
+ );
+
+
+
+
+ return 0;
+
+end;' language 'plpgsql';
+select inline_0();
+drop function inline_0();
+
+
+create function inline_0()
+returns integer as '
+declare
+ foo integer;
+begin
+ -- create the implementation
+ foo := acs_sc_impl__new (
+ ''portal_datasource'',
+ ''project_manager_task_portlet'',
+ ''project_manager_task_portlet''
+ );
+
+ return 0;
+
+end;' language 'plpgsql';
+select inline_0();
+drop function inline_0();
+
+
+
+create function inline_0()
+returns integer as '
+declare
+ foo integer;
+begin
+
+ -- add all the hooks
+ foo := acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''project_manager_task_portlet'',
+ ''GetMyName'',
+ ''project_manager_task_portlet::get_my_name'',
+ ''TCL''
+ );
+
+ foo := acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''project_manager_task_portlet'',
+ ''GetPrettyName'',
+ ''project_manager_task_portlet::get_pretty_name'',
+ ''TCL''
+ );
+
+ foo := acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''project_manager_task_portlet'',
+ ''Link'',
+ ''project_manager_task_portlet::link'',
+ ''TCL''
+ );
+
+ foo := acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''project_manager_task_portlet'',
+ ''AddSelfToPage'',
+ ''project_manager_task_portlet::add_self_to_page'',
+ ''TCL''
+ );
+
+ foo := acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''project_manager_task_portlet'',
+ ''Show'',
+ ''project_manager_task_portlet::show'',
+ ''TCL''
+ );
+
+ foo := acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''project_manager_task_portlet'',
+ ''Edit'',
+ ''project_manager_task_portlet::edit'',
+ ''TCL''
+ );
+
+ foo := acs_sc_impl_alias__new (
+ ''portal_datasource'',
+ ''project_manager_task_portlet'',
+ ''RemoveSelfFromPage'',
+ ''project_manager_task_portlet::remove_self_from_page'',
+ ''TCL''
+ );
+
+ return 0;
+
+end;' language 'plpgsql';
+select inline_0();
+drop function inline_0();
+
+
+
+create function inline_0()
+returns integer as '
+declare
+ foo integer;
+begin
+
+ -- Add the binding
+ perform acs_sc_binding__new (
+ ''portal_datasource'',
+ ''project_manager_task_portlet''
+ );
+
+ return 0;
+
+end;' language 'plpgsql';
+select inline_0();
+drop function inline_0();
+
+
Index: openacs-4/packages/project-manager-portlet/tcl/project-manager-portlet-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager-portlet/tcl/project-manager-portlet-procs.tcl,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/project-manager-portlet/tcl/project-manager-portlet-procs.tcl 10 Jun 2005 18:27:34 -0000 1.1
@@ -0,0 +1,128 @@
+#
+# Copyright (C) 2005 Cognovis
+# Author: Bjoern Kiesbye (kiesbye@theservice.de)
+
+# This file is part of dotLRN.
+#
+# dotLRN is free software; you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2 of the License, or (at your option) any later
+# version.
+#
+# dotLRN is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+# details.
+#
+
+ad_library {
+
+ Procedures to support the Project Manager
+
+
+ @author kiesbye@theservice.de
+ @cvs-id $Id: project-manager-portlet-procs.tcl
+
+}
+
+namespace eval project_manager_portlet {
+
+ ad_proc -private my_package_key {
+ } {
+ return "project-manager-portlet"
+ }
+
+ ad_proc -private get_my_name {
+ } {
+ return "project_manager_portlet"
+ }
+
+ ad_proc -public get_pretty_name {
+ } {
+ return "Project Manager Portlet"
+ }
+
+ ad_proc -public link {
+ } {
+ return ""
+ }
+
+ ad_proc -public add_self_to_page {
+ {-portal_id:required}
+ {-project_manager_id:required}
+ {-page_name ""}
+ {-pretty_name ""}
+ {-force_region ""}
+ {-scoped_p ""}
+ {-param_action "overwrite"}
+ {project_manager_bulk_p "1"}
+ {project_manager_action_p "1"}
+ {project_manager_status_id "0"}
+ {project_manager_orderby "default"}
+ } {
+ Adds a Project Manager Portlet to the given page.
+
+ @param portal_id The page to add self to
+ @param project_manager_id The Project Manager instance to add
+
+ @return element_id The new element's id
+ } {
+
+ # allow overrides of pretty_name and force_region
+ if {[empty_string_p $pretty_name]} {
+ set pretty_name [get_pretty_name]
+ }
+
+ if {[empty_string_p $force_region]} {
+ set force_region [parameter::get_from_package_key \
+ -package_key [my_package_key] \
+ -parameter "force_region"
+ ]
+ }
+
+ set extra_params ""
+
+ if {![empty_string_p $scoped_p]} {
+ set extra_params [list scoped_p $scoped_p project_manager_id $project_manager_id project_manager_bulk_p $project_manager_bulk_p project_manager_action_p $project_manager_action_p project_manager_status_id $project_manager_status_id project_manager_orderby $project_manager_orderby]
+ }
+
+ return [portal::add_element_parameters \
+ -portal_id $portal_id \
+ -page_name $page_name \
+ -portlet_name [get_my_name] \
+ -pretty_name $pretty_name \
+ -force_region $force_region \
+ -key project_manager_id \
+ -value $project_manager_id \
+ -param_action $param_action \
+ -extra_params $extra_params
+ ]
+ }
+
+ ad_proc -public remove_self_from_page {
+ {-portal_id:required}
+ {-project_manager_id:required}
+ } {
+ Removes a Project Manager from the given page.
+
+ @param portal_id The page to remove self from
+ @param project_manager_id
+ } {
+ portal::remove_element_parameters \
+ -portal_id $portal_id \
+ -portlet_name [get_my_name] \
+ -key project_manager_id \
+ -value $project_manager_id
+ }
+
+ ad_proc -public show {
+ cf
+ } {
+ } {
+ portal::show_proc_helper \
+ -package_key [my_package_key] \
+ -config_list $cf
+
+ }
+
+}
Index: openacs-4/packages/project-manager-portlet/tcl/project-manager-task-portlet-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager-portlet/tcl/project-manager-task-portlet-procs.tcl,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/project-manager-portlet/tcl/project-manager-task-portlet-procs.tcl 10 Jun 2005 18:27:34 -0000 1.1
@@ -0,0 +1,125 @@
+#
+# Copyright (C) 2005 Cognovis
+# Author: Bjoern Kiesbye (kiesbye@theservice.de)
+
+# This file is part of dotLRN.
+#
+# dotLRN is free software; you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2 of the License, or (at your option) any later
+# version.
+#
+# dotLRN is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+# details.
+#
+
+ad_library {
+
+ Procedures to support the Project Manager
+
+
+ @author kiesbye@theservice.de
+ @cvs-id $Id: project-manager-portlet-procs.tcl
+
+}
+
+namespace eval project_manager_task_portlet {
+
+ ad_proc -private my_package_key {
+ } {
+ return "project-manager-portlet"
+ }
+
+ ad_proc -private get_my_name {
+ } {
+ return "project_manager_task_portlet"
+ }
+
+ ad_proc -public get_pretty_name {
+ } {
+ return "Project Manager Task Portlet"
+ }
+
+ ad_proc -public link {
+ } {
+ return "project-manager"
+ }
+
+ ad_proc -public add_self_to_page {
+ {-portal_id:required}
+ {-project_manager_id:required}
+ {-page_name ""}
+ {-pretty_name ""}
+ {-force_region ""}
+ {-scoped_p ""}
+ {-param_action "overwrite"}
+
+ } {
+ Adds a Project Manager Task Portlet to the given page.
+
+ @param portal_id The page to add self to
+ @param project_manager_id The Project Manager instance to add
+
+ @return element_id The new element's id
+ } {
+
+ # allow overrides of pretty_name and force_region
+ if {[empty_string_p $pretty_name]} {
+ set pretty_name [get_pretty_name]
+ }
+
+ if {[empty_string_p $force_region]} {
+ set force_region [parameter::get_from_package_key \
+ -package_key [my_package_key] \
+ -parameter "force_region"
+ ]
+ }
+
+ set extra_params ""
+
+ if {![empty_string_p $scoped_p]} {
+ set extra_params [list scoped_p $scoped_p project_manager_id $project_manager_id]
+ }
+
+ return [portal::add_element_parameters \
+ -portal_id $portal_id \
+ -page_name $page_name \
+ -portlet_name [get_my_name] \
+ -pretty_name $pretty_name \
+ -force_region $force_region \
+ -key project_manager_id \
+ -value $project_manager_id \
+ -param_action $param_action \
+ -extra_params $extra_params
+ ]
+ }
+
+ ad_proc -public remove_self_from_page {
+ {-portal_id:required}
+ {-project_manager_id:required}
+ } {
+ Removes a Project Manager from the given page.
+
+ @param portal_id The page to remove self from
+ @param project_manager_id
+ } {
+ portal::remove_element_parameters \
+ -portal_id $portal_id \
+ -portlet_name [get_my_name] \
+ -key project_manager_id \
+ -value $project_manager_id
+ }
+
+ ad_proc -public show {
+ cf
+ } {
+ } {
+ portal::show_proc_helper \
+ -package_key [my_package_key] \
+ -config_list $cf \
+ -template_src "project-manager-task-portlet"
+ }
+
+}
Index: openacs-4/packages/project-manager-portlet/www/index-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager-portlet/www/index-postgresql.xql,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/project-manager-portlet/www/index-postgresql.xql 10 Jun 2005 18:27:35 -0000 1.1
@@ -0,0 +1,65 @@
+
+
+ postgresql7.3
+
+
+
+ SELECT
+ p.item_id as project_item_id,
+ p.project_id,
+ p.parent_id as folder_id,
+ p.object_type as content_type,
+ p.title as project_name,
+ p.project_code,
+ to_char(p.planned_start_date, 'MM/DD/YY') as planned_start_date,
+ to_char(p.planned_end_date, 'MM/DD/YY') as planned_end_date,
+ p.ongoing_p,
+ c.category_id,
+ c.category_name,
+ p.earliest_finish_date - current_date as days_to_earliest_finish,
+ p.latest_finish_date - current_date as days_to_latest_finish,
+ p.actual_hours_completed,
+ p.estimated_hours_total,
+ to_char(p.estimated_finish_date, 'MM/DD/YY') as estimated_finish_date,
+ to_char(p.earliest_finish_date, 'MM/DD/YY') as earliest_finish_date,
+ to_char(p.latest_finish_date, 'MM/DD/YY') as latest_finish_date,
+ case when o.name is null then '--no customer--' else o.name
+ end as customer_name,
+ o.organization_id as customer_id
+ FROM pm_projectsx p
+ LEFT JOIN pm_project_assignment pa
+ ON p.item_id = pa.project_id
+ LEFT JOIN organizations o ON p.customer_id =
+ o.organization_id
+ LEFT JOIN (
+ select
+ om.category_id,
+ om.object_id,
+ t.name as category_name
+ from
+ category_object_map om,
+ category_translations t,
+ categories ctg
+ where
+ om.category_id = t.category_id and
+ ctg.category_id = t.category_id and
+ ctg.deprecated_p = 'f')
+ c ON p.item_id = c.object_id,
+ cr_items i,
+ cr_folders f,
+ pm_project_status s
+ WHERE
+ p.project_id = i.live_revision and
+ s.status_id = p.status_id
+ and i.parent_id = f.folder_id
+ and f.package_id = :package_id
+ and exists (select 1 from acs_object_party_privilege_map ppm
+ where ppm.object_id = p.project_id
+ and ppm.privilege = 'read'
+ and ppm.party_id = :user_id)
+ [template::list::filter_where_clauses -and -name projects]
+ [template::list::orderby_clause -orderby -name projects]
+
+
+
+
Index: openacs-4/packages/project-manager-portlet/www/index.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager-portlet/www/index.tcl,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/project-manager-portlet/www/index.tcl 10 Jun 2005 18:27:35 -0000 1.1
@@ -0,0 +1,264 @@
+ad_page_contract {
+
+ Main view page for projects.
+
+ @author jader@bread.com
+ @author ncarroll@ee.usyd.edu.au (on first version that used CR)
+ @creation-date 2003-05-15
+ @cvs-id $Id: index.tcl,v 1.1 2005/06/10 18:27:35 maltes Exp $
+
+ @return title Page title.
+ @return context Context bar.
+ @return projects Multirow data set of projects.
+ @return task_term Terminology for tasks
+ @return task_term_lower Terminology for tasks (lower case)
+ @return project_term Terminology for projects
+ @return project_term_lower Terminology for projects (lower case)
+
+} {
+ orderby:optional
+ package_id:optional
+ {status_id:integer,optional}
+ {searchterm ""}
+ category_id:multiple,optional
+ {format "normal"}
+ {assignee_id ""}
+
+} -properties {
+
+ context:onevalue
+ projects:multirow
+ write_p:onevalue
+ create_p:onevalue
+ admin_p:onevalue
+ task_term:onevalue
+ task_term_lower:onevalue
+ project_term:onevalue
+ project_term_lower:onevalue
+}
+
+# --------------------------------------------------------------- #
+
+set exporting_vars { status_id category_id assignee_id orderby format }
+set hidden_vars [export_vars -form $exporting_vars]
+
+# set up context bar
+set context [list]
+
+# the unique identifier for this package
+#set package_id [ad_conn package_id]
+set user_id [ad_maybe_redirect_for_registration]
+
+# permissions
+permission::require_permission -party_id $user_id -object_id $package_id -privilege read
+
+set write_p [permission::permission_p -object_id $package_id -privilege write]
+set create_p [permission::permission_p -object_id $package_id -privilege create]
+set admin_p [permission::permission_p -object_id $package_id -privilege admin]
+
+# root CR folder
+set root_folder [pm::util::get_root_folder -package_id $package_id]
+
+# Projects, using list-builder ---------------------------------
+
+# Set status
+if {![exists_and_not_null status_id]} {
+ set status_where_clause ""
+ set status_id ""
+} else {
+ set status_where_clause {p.status_id = :status_id}
+}
+
+# We want to set up a filter for each category tree.
+
+set export_vars [export_vars -form {status_id orderby}]
+
+if {[exists_and_not_null category_id]} {
+ set temp_category_id $category_id
+ set pass_cat $category_id
+} else {
+ set temp_category_id ""
+ set pass_cat ""
+}
+
+set category_select [pm::util::category_selects \
+ -export_vars $export_vars \
+ -category_id $temp_category_id \
+ -package_id $package_id \
+ ]
+
+set assignees_filter [pm::project::assignee_filter_select -status_id $status_id]
+
+if {![empty_string_p $searchterm]} {
+
+ if {[regexp {([0-9]+)} $searchterm match query_digits]} {
+ set search_term_where " (upper(p.title) like upper('%$searchterm%')
+ or p.item_id = :query_digits) "
+ } else {
+ set search_term_where " upper(p.title) like upper('%$searchterm%')"
+ }
+} else {
+ set search_term_where ""
+}
+
+
+set default_orderby [pm::project::index_default_orderby]
+
+if {[exists_and_not_null orderby]} {
+ pm::project::index_default_orderby \
+ -set $orderby
+}
+
+# Get url of the contacts package if it has been mounted for the links on the index page.
+set contacts_url [util_memoize [list site_node::get_package_url -package_key contacts]]
+if {[empty_string_p $contacts_url]} {
+ set contact_column "@projects.customer_name@"
+} else {
+ set contact_column "@projects.customer_name@"
+}
+
+
+template::list::create \
+ -name projects \
+ -multirow projects \
+ -selected_format $format \
+ -key project_item_id \
+ -elements {
+ project_name {
+ label "[_ project-manager.Project_name]"
+ link_url_col item_url
+ link_html { title "[_ project-manager.lt_View_this_project_ver]" }
+ }
+ customer_name {
+ label "[_ project-manager.Customer]"
+ display_template "
+$contact_column@projects.customer_name@
+"
+ }
+ earliest_finish_date {
+ label "[_ project-manager.Earliest_finish]"
+ display_template "@projects.earliest_finish_date@@projects.earliest_finish_date@"
+ }
+ latest_finish_date {
+ label "[_ project-manager.Latest_Finish]"
+ display_template "@projects.latest_finish_date@@projects.latest_finish_date@"
+ }
+ actual_hours_completed {
+ label "[_ project-manager.Hours_completed]"
+ display_template "@projects.actual_hours_completed@/@projects.estimated_hours_total@"
+ }
+ category_id {
+ display_template ""
+ }
+ } \
+ -actions [list "[_ project-manager.Add_project]" "add-edit" "[_ project-manager.Add_project]" "[_ project-manager.Customers]" "[site_node::get_package_url -package_key contacts]" "[_ project-manager.View_customers]"] \
+ -bulk_actions [list "[_ project-manager.Close]" "bulk-close" "[_ project-manager.Close_project]"] \
+ -sub_class {
+ narrow
+ } \
+ -filters {
+ searchterm {
+ label "[_ project-manager.Search_1]"
+ where_clause {$search_term_where}
+ }
+ status_id {
+ label "[_ project-manager.Status_1]"
+ values {[pm::status::project_status_select]}
+ where_clause {$status_where_clause}
+ }
+ assignee_id {
+ label "[_ project-manager.Assignee]"
+ values {$assignees_filter}
+ where_clause {pa.party_id = :assignee_id}
+ }
+ category_id {
+ label Categories
+ where_clause {c.category_id = [join [value_if_exists category_id] ","]}
+ }
+ } \
+ -orderby {
+ default_value $default_orderby
+ project_name {
+ label "[_ project-manager.Project_name]"
+ orderby_desc "upper(p.title) desc"
+ orderby_asc "upper(p.title) asc"
+ default_direction asc
+ }
+ customer_name {
+ label "[_ project-manager.Customer_Name]"
+ orderby_desc "upper(o.name) desc, earliest_finish_date desc"
+ orderby_asc "upper(o.name) asc, earliest_finish_date asc"
+ default_direction asc
+ }
+ category_id {
+ label "[_ project-manager.Categories]"
+ orderby_desc "c.category_name desc"
+ orderby_asc "c.category_name asc"
+ default_direction asc
+ }
+ earliest_finish_date {
+ label "[_ project-manager.Earliest_finish]"
+ orderby_desc "p.earliest_finish_date desc"
+ orderby_asc "p.earliest_finish_date asc"
+ default_direction asc
+ }
+ latest_finish_date {
+ label "[_ project-manager.Latest_finish]"
+ orderby_desc "p.latest_finish_date desc"
+ orderby_asc "p.latest_finish_date asc"
+ default_direction asc
+ }
+ actual_hours_completed {
+ label "[_ project-manager.Hours_completed]"
+ orderby_desc "p.actual_hours_completed desc"
+ orderby_asc "p.actual_hours_completed asc"
+ default_direction asc
+ }
+ } \
+ -formats {
+ normal {
+ label "[_ project-manager.Table]"
+ layout table
+ row {
+ project_name {}
+ customer_name {}
+ category_id {}
+ earliest_finish_date {}
+ latest_finish_date {}
+ actual_hours_completed {}
+ }
+ }
+ csv {
+ label "[_ project-manager.CSV]"
+ output csv
+ page_size 0
+ row {
+ project_name {}
+ customer_name {}
+ category_id {}
+ earliest_finish_date {}
+ latest_finish_date {}
+ actual_hours_completed {}
+ }
+ }
+ } \
+ -orderby_name orderby \
+ -html {
+ width 100%
+ }
+
+# Note: On oracle it you get "ORA-03113: end-of-file on communication channel"
+# please drop the index cat_object_map_i. Unique indexes are not allowed in contact index tables
+
+db_multirow -extend { item_url } projects project_folders {
+} {
+ set item_url [export_vars -base "one" {project_item_id}]
+}
+
+
+
+list::write_output -name projects
+
+ns_log notice "PMID= $package_id , WHERE= [template::list::filter_where_clauses -and -name projects] , AS= $assignee_id"
+
+# ------------------------- END OF FILE ------------------------- #
Index: openacs-4/packages/project-manager-portlet/www/project-manager-portlet-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager-portlet/www/project-manager-portlet-postgresql.xql,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/project-manager-portlet/www/project-manager-portlet-postgresql.xql 10 Jun 2005 18:27:35 -0000 1.1
@@ -0,0 +1,65 @@
+
+
+ postgresql7.3
+
+
+
+ SELECT
+ p.item_id as project_item_id,
+ p.project_id,
+ p.parent_id as folder_id,
+ p.object_type as content_type,
+ p.title as project_name,
+ p.project_code,
+ to_char(p.planned_start_date, 'MM/DD/YY') as planned_start_date,
+ to_char(p.planned_end_date, 'MM/DD/YY') as planned_end_date,
+ p.ongoing_p,
+ c.category_id,
+ c.category_name,
+ p.earliest_finish_date - current_date as days_to_earliest_finish,
+ p.latest_finish_date - current_date as days_to_latest_finish,
+ p.actual_hours_completed,
+ p.estimated_hours_total,
+ to_char(p.estimated_finish_date, 'MM/DD/YY') as estimated_finish_date,
+ to_char(p.earliest_finish_date, 'MM/DD/YY') as earliest_finish_date,
+ to_char(p.latest_finish_date, 'MM/DD/YY') as latest_finish_date,
+ case when o.name is null then '--no customer--' else o.name
+ end as customer_name,
+ o.organization_id as customer_id
+ FROM pm_projectsx p
+ LEFT JOIN pm_project_assignment pa
+ ON p.item_id = pa.project_id
+ LEFT JOIN organizations o ON p.customer_id =
+ o.organization_id
+ LEFT JOIN (
+ select
+ om.category_id,
+ om.object_id,
+ t.name as category_name
+ from
+ category_object_map om,
+ category_translations t,
+ categories ctg
+ where
+ om.category_id = t.category_id and
+ ctg.category_id = t.category_id and
+ ctg.deprecated_p = 'f')
+ c ON p.item_id = c.object_id,
+ cr_items i,
+ cr_folders f,
+ pm_project_status s
+ WHERE
+ p.project_id = i.live_revision and
+ s.status_id = p.status_id
+ and i.parent_id = f.folder_id
+ and f.package_id = :package_id
+ and exists (select 1 from acs_object_party_privilege_map ppm
+ where ppm.object_id = p.project_id
+ and ppm.privilege = 'read'
+ and ppm.party_id = :user_id)
+ [template::list::filter_where_clauses -and -name projects]
+ [template::list::orderby_clause -orderby -name projects]
+
+
+
+
Index: openacs-4/packages/project-manager-portlet/www/project-manager-portlet.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager-portlet/www/project-manager-portlet.adp,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/project-manager-portlet/www/project-manager-portlet.adp 10 Jun 2005 18:27:35 -0000 1.1
@@ -0,0 +1,26 @@
+<%
+
+ #
+ # Copyright (C) 2005 Cognovis
+ # Author: Bjoern Kiesbye (kiesbye@theservice.de)
+ #
+
+ # This file is part of dotLRN.
+ #
+ # dotLRN is free software; you can redistribute it and/or modify it under the
+ # terms of the GNU General Public License as published by the Free Software
+ # Foundation; either version 2 of the License, or (at your option) any later
+ # version.
+ #
+ # dotLRN is distributed in the hope that it will be useful, but WITHOUT ANY
+ # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ # details.
+ #
+
+%>
+
+
+
+
+
Index: openacs-4/packages/project-manager-portlet/www/project-manager-portlet.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager-portlet/www/project-manager-portlet.tcl,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/project-manager-portlet/www/project-manager-portlet.tcl 10 Jun 2005 18:27:35 -0000 1.1
@@ -0,0 +1,109 @@
+ad_page_contract {
+ The display logic for the project manager portlet
+
+ @author Bjoern Kiesbye (kiesbye@theservice.de)
+ @cvs_id $Id: project-manager-portlet.tcl
+} {
+
+
+
+ orderby:optional
+ {status_id:integer,optional}
+ {searchterm ""}
+ category_id:multiple,optional
+ {format "normal"}
+ {assignee_id ""}
+
+} -properties {
+
+ context:onevalue
+ projects:multirow
+ write_p:onevalue
+ create_p:onevalue
+ admin_p:onevalue
+ task_term:onevalue
+ task_term_lower:onevalue
+ project_term:onevalue
+ project_term_lower:onevalue
+}
+
+
+array set config $cf
+
+set base_url "[ad_conn package_url]project-manager"
+
+set project_manager_id $config(project_manager_id)
+set package_id $config(project_manager_id)
+
+if {$config(project_manager_status_id) == "{}" } {
+
+ set project_manager_status_id ""
+# set status_id ""
+
+} else {
+
+ set project_manager_status_id $config(project_manager_status_id)
+# set status_id $config(project_manager_status_id)
+
+}
+
+if {$config(project_manager_action_p) == "{}" } {
+
+ set project_manager_action_p 1
+ set action_p 1
+
+} else {
+
+ set project_manager_action_p $config(project_manager_action_p)
+ set action_p $config(project_manager_action_p)
+
+}
+
+if {$config(project_manager_searchterm) == "{}" } {
+
+ set searchterm ""
+
+} else {
+
+ set searchterm $config(project_manager_searchterm)
+
+}
+
+
+
+if { $config(project_manager_orderby) == "{}"} {
+
+ set project_manager_orderby ""
+ set orderby ""
+
+} else {
+
+ set project_manager_orderby $config(project_manager_orderby)
+ set orderby $config(project_manager_orderby)
+}
+
+if {$config(project_manager_bulk_p) == "{}"} {
+
+ set project_manager_bulk_p ""
+ set bulk_p 1
+
+} else {
+
+ set project_manager_bulk_p $config(project_manager_bulk_p)
+ set bulk_p $config(project_manager_bulk_p)
+}
+
+if {[exists_and_not_null category_id]} {
+ set temp_category_id $category_id
+ set pass_cat $category_id
+} else {
+ set temp_category_id ""
+ set pass_cat ""
+}
+
+
+# --------------------------------------------------------------- #
+
+set exporting_vars { status_id category_id assignee_id orderby format }
+set hidden_vars [export_vars -form $exporting_vars]
+
Index: openacs-4/packages/project-manager-portlet/www/project-manager-portlet.tcl.bak
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager-portlet/www/Attic/project-manager-portlet.tcl.bak,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/project-manager-portlet/www/project-manager-portlet.tcl.bak 10 Jun 2005 18:27:35 -0000 1.1
@@ -0,0 +1,83 @@
+#
+# Copyright (C) 2005 Cognovis
+#
+# This file is part of dotLRN.
+#
+# dotLRN is free software; you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2 of the License, or (at your option) any later
+# version.
+#
+# dotLRN is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+# details.
+#
+
+# www/project-manager-portlet.tcl
+
+ad_page_contract {
+ The display logic for the project manager portlet
+
+ @author Bjoern Kiesbye (kiesbye@theservice.de)
+ @cvs_id $Id: project-manager-portlet.tcl
+} {
+
+}
+
+
+# Get stuff from the config
+array set config $cf
+set project_manager_id $config(project_manager_id)
+set package_id $project_manager_id
+
+
+if {$config(project_manager_status_id) == "{}" } {
+
+ set project_manager_status_id ""
+
+} else {
+
+ set project_manager_status_id $config(project_manager_status_id)
+
+}
+
+if {$config(project_manager_action_p) == "{}" } {
+
+ set project_manager_action_p ""
+
+} else {
+
+ set project_manager_action_p $config(project_manager_action_p)
+
+}
+
+if {$config(project_manager_searchterm) == "{}" } {
+
+ set searchterm ""
+
+} else {
+
+ set searchterm $config(project_manager_searchterm)
+
+}
+
+set searchterm $
+
+if { $config(project_manager_orderby) == "{}"} {
+
+ set project_manager_orderby ""
+
+} else {
+
+ set project_manager_orderby $config(project_manager_orderby)
+}
+
+if {$config(project_manager_bulk_p) == "{}"} {
+
+ set project_manager_bulk_p ""
+
+} else {
+
+
+}
Index: openacs-4/packages/project-manager-portlet/www/project-manager-portlet.tcl.from-index
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager-portlet/www/Attic/project-manager-portlet.tcl.from-index,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/project-manager-portlet/www/project-manager-portlet.tcl.from-index 10 Jun 2005 18:27:35 -0000 1.1
@@ -0,0 +1,319 @@
+ad_page_contract {
+ The display logic for the project manager portlet
+
+ @author Bjoern Kiesbye (kiesbye@theservice.de)
+ @cvs_id $Id: project-manager-portlet.tcl
+} {
+
+
+
+ orderby:optional
+ {status_id:integer,optional}
+ {searchterm ""}
+ category_id:multiple,optional
+ {format "normal"}
+ {assignee_id ""}
+
+} -properties {
+
+ context:onevalue
+ projects:multirow
+ write_p:onevalue
+ create_p:onevalue
+ admin_p:onevalue
+ task_term:onevalue
+ task_term_lower:onevalue
+ project_term:onevalue
+ project_term_lower:onevalue
+}
+
+
+array set config $cf
+set project_manager_id $config(project_manager_id)
+set package_id $config(project_manager_id)
+
+if {$config(project_manager_status_id) == "{}" } {
+
+ set project_manager_status_id ""
+# set status_id ""
+
+} else {
+
+ set project_manager_status_id $config(project_manager_status_id)
+# set status_id $config(project_manager_status_id)
+
+}
+
+if {$config(project_manager_action_p) == "{}" } {
+
+ set project_manager_action_p 1
+ set action_p 1
+
+} else {
+
+ set project_manager_action_p $config(project_manager_action_p)
+ set action_p $config(project_manager_action_p)
+
+}
+
+if {$config(project_manager_searchterm) == "{}" } {
+
+ set searchterm ""
+
+} else {
+
+ set searchterm $config(project_manager_searchterm)
+
+}
+
+
+
+if { $config(project_manager_orderby) == "{}"} {
+
+ set project_manager_orderby ""
+ set orderby ""
+
+} else {
+
+ set project_manager_orderby $config(project_manager_orderby)
+ set orderby $config(project_manager_orderby)
+}
+
+if {$config(project_manager_bulk_p) == "{}"} {
+
+ set project_manager_bulk_p ""
+ set bulk_p 1
+
+} else {
+
+ set project_manager_bulk_p $config(project_manager_bulk_p)
+ set bulk_p $config(project_manager_bulk_p)
+}
+
+
+
+# --------------------------------------------------------------- #
+
+set exporting_vars { status_id category_id assignee_id orderby format }
+set hidden_vars [export_vars -form $exporting_vars]
+
+# set up context bar
+set context [list]
+
+# the unique identifier for this package
+#set package_id [ad_conn package_id]
+set user_id [ad_maybe_redirect_for_registration]
+
+# permissions
+permission::require_permission -party_id $user_id -object_id $package_id -privilege read
+
+set write_p [permission::permission_p -object_id $package_id -privilege write]
+set create_p [permission::permission_p -object_id $package_id -privilege create]
+set admin_p [permission::permission_p -object_id $package_id -privilege admin]
+
+# root CR folder
+set root_folder [pm::util::get_root_folder -package_id $package_id]
+
+# Projects, using list-builder ---------------------------------
+
+# Set status
+if {![exists_and_not_null status_id]} {
+ set status_where_clause ""
+ set status_id ""
+} else {
+ set status_where_clause {p.status_id = :status_id}
+}
+
+# We want to set up a filter for each category tree.
+
+set export_vars [export_vars -form {status_id orderby}]
+
+if {[exists_and_not_null category_id]} {
+ set temp_category_id $category_id
+ set pass_cat $category_id
+} else {
+ set temp_category_id ""
+ set pass_cat ""
+}
+
+set category_select [pm::util::category_selects \
+ -export_vars $export_vars \
+ -category_id $temp_category_id \
+ -package_id $package_id \
+ ]
+
+set assignees_filter [pm::project::assignee_filter_select -status_id $status_id]
+
+if {![empty_string_p $searchterm]} {
+
+ if {[regexp {([0-9]+)} $searchterm match query_digits]} {
+ set search_term_where " (upper(p.title) like upper('%$searchterm%')
+ or p.item_id = :query_digits) "
+ } else {
+ set search_term_where " upper(p.title) like upper('%$searchterm%')"
+ }
+} else {
+ set search_term_where ""
+}
+
+
+set default_orderby [pm::project::index_default_orderby]
+
+if {[exists_and_not_null orderby]} {
+ pm::project::index_default_orderby \
+ -set $orderby
+}
+
+# Get url of the contacts package if it has been mounted for the links on the index page.
+set contacts_url [util_memoize [list site_node::get_package_url -package_key contacts]]
+if {[empty_string_p $contacts_url]} {
+ set contact_column "@projects.customer_name@"
+} else {
+ set contact_column "@projects.customer_name@"
+}
+
+
+template::list::create \
+ -name projects \
+ -multirow projects \
+ -selected_format $format \
+ -key project_item_id \
+ -elements {
+ project_name {
+ label "[_ project-manager.Project_name]"
+ link_url_col item_url
+ link_html { title "[_ project-manager.lt_View_this_project_ver]" }
+ }
+ customer_name {
+ label "[_ project-manager.Customer]"
+ display_template "
+$contact_column@projects.customer_name@
+"
+ }
+ earliest_finish_date {
+ label "[_ project-manager.Earliest_finish]"
+ display_template "@projects.earliest_finish_date@@projects.earliest_finish_date@"
+ }
+ latest_finish_date {
+ label "[_ project-manager.Latest_Finish]"
+ display_template "@projects.latest_finish_date@@projects.latest_finish_date@"
+ }
+ actual_hours_completed {
+ label "[_ project-manager.Hours_completed]"
+ display_template "@projects.actual_hours_completed@/@projects.estimated_hours_total@"
+ }
+ category_id {
+ display_template ""
+ }
+ } \
+ -actions [list "[_ project-manager.Add_project]" "add-edit" "[_ project-manager.Add_project]" "[_ project-manager.Customers]" "[site_node::get_package_url -package_key contacts]" "[_ project-manager.View_customers]"] \
+ -bulk_actions [list "[_ project-manager.Close]" "bulk-close" "[_ project-manager.Close_project]"] \
+ -sub_class {
+ narrow
+ } \
+ -filters {
+ searchterm {
+ label "[_ project-manager.Search_1]"
+ where_clause {$search_term_where}
+ }
+ status_id {
+ label "[_ project-manager.Status_1]"
+ values {[pm::status::project_status_select]}
+ where_clause {$status_where_clause}
+ }
+ assignee_id {
+ label "[_ project-manager.Assignee]"
+ values {$assignees_filter}
+ where_clause {pa.party_id = :assignee_id}
+ }
+ category_id {
+ label Categories
+ where_clause {c.category_id = [join [value_if_exists category_id] ","]}
+ }
+ } \
+ -orderby {
+ default_value $default_orderby
+ project_name {
+ label "[_ project-manager.Project_name]"
+ orderby_desc "upper(p.title) desc"
+ orderby_asc "upper(p.title) asc"
+ default_direction asc
+ }
+ customer_name {
+ label "[_ project-manager.Customer_Name]"
+ orderby_desc "upper(o.name) desc, earliest_finish_date desc"
+ orderby_asc "upper(o.name) asc, earliest_finish_date asc"
+ default_direction asc
+ }
+ category_id {
+ label "[_ project-manager.Categories]"
+ orderby_desc "c.category_name desc"
+ orderby_asc "c.category_name asc"
+ default_direction asc
+ }
+ earliest_finish_date {
+ label "[_ project-manager.Earliest_finish]"
+ orderby_desc "p.earliest_finish_date desc"
+ orderby_asc "p.earliest_finish_date asc"
+ default_direction asc
+ }
+ latest_finish_date {
+ label "[_ project-manager.Latest_finish]"
+ orderby_desc "p.latest_finish_date desc"
+ orderby_asc "p.latest_finish_date asc"
+ default_direction asc
+ }
+ actual_hours_completed {
+ label "[_ project-manager.Hours_completed]"
+ orderby_desc "p.actual_hours_completed desc"
+ orderby_asc "p.actual_hours_completed asc"
+ default_direction asc
+ }
+ } \
+ -formats {
+ normal {
+ label "[_ project-manager.Table]"
+ layout table
+ row {
+ project_name {}
+ customer_name {}
+ category_id {}
+ earliest_finish_date {}
+ latest_finish_date {}
+ actual_hours_completed {}
+ }
+ }
+ csv {
+ label "[_ project-manager.CSV]"
+ output csv
+ page_size 0
+ row {
+ project_name {}
+ customer_name {}
+ category_id {}
+ earliest_finish_date {}
+ latest_finish_date {}
+ actual_hours_completed {}
+ }
+ }
+ } \
+ -orderby_name orderby \
+ -html {
+ width 100%
+ }
+
+# Note: On oracle it you get "ORA-03113: end-of-file on communication channel"
+# please drop the index cat_object_map_i. Unique indexes are not allowed in contact index tables
+
+db_multirow -extend { item_url } projects project_folders {
+} {
+ set item_url [export_vars -base "one" {project_item_id}]
+}
+
+
+
+#list::write_output -name projects
+
+ns_log notice "PMID= $package_id , WHERE= [template::list::filter_where_clauses -and -name projects] , AS= $assignee_id"
+
+# ------------------------- END OF FILE ------------------------- #
Index: openacs-4/packages/project-manager-portlet/www/project-manager-task-portlet.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager-portlet/www/project-manager-task-portlet.adp,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/project-manager-portlet/www/project-manager-task-portlet.adp 10 Jun 2005 18:27:35 -0000 1.1
@@ -0,0 +1,3 @@
+
Index: openacs-4/packages/project-manager-portlet/www/project-manager-task-portlet.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager-portlet/www/project-manager-task-portlet.tcl,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/project-manager-portlet/www/project-manager-task-portlet.tcl 10 Jun 2005 18:27:35 -0000 1.1
@@ -0,0 +1,6 @@
+array set config $cf
+
+set base_url "[ad_conn package_url]project-manager"
+
+set package_id $config(project_manager_id)
+