Index: openacs-4/packages/project-manager/lib/projects.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager/lib/projects.tcl,v diff -u -N -r1.32 -r1.33 --- openacs-4/packages/project-manager/lib/projects.tcl 18 Nov 2005 22:05:37 -0000 1.32 +++ openacs-4/packages/project-manager/lib/projects.tcl 12 Mar 2006 16:54:57 -0000 1.33 @@ -18,7 +18,7 @@ set required_param_list "package_id" set optional_param_list [list orderby status_id searchterm bulk_p action_p page_num page_size\ filter_p base_url end_date_f user_space_p hidden_vars] -set optional_unset_list [list assignee_id date_range is_observer_p previous_status_f current_package_f subprojects_p] +set optional_unset_list [list assignee_id etat_id contact_id date_range is_observer_p previous_status_f current_package_f subprojects_p] set dotlrn_installed_p [apm_package_installed_p dotlrn] set invoice_installed_p [apm_package_installed_p dotlrn-invoices] set contacts_installed_p [apm_package_installed_p contacts] @@ -36,7 +36,7 @@ set daily_p [parameter::get -parameter "UseDayInsteadOfHour" -default "f"] -set fmt "%x %r" +set fmt "%x %X" if { $daily_p } { set fmt "%x" } @@ -170,6 +170,7 @@ ############################################## set default_orderby [pm::project::index_default_orderby] +set default_orderby "project_name,desc" if {[exists_and_not_null orderby]} { pm::project::index_default_orderby \ @@ -181,7 +182,7 @@ if {[empty_string_p $contacts_url]} { set contact_column "@projects.customer_name@" } else { - set contact_column "@projects.customer_name@" + set contact_column "@projects.customer_name@" } # Store project names and all other project individuel data @@ -233,6 +234,23 @@ set user_space_clause "" } +# If this filter is provided we can see all projects for a given contact +set organization_id [lindex [application_data_link::get_linked -from_object_id [dotlrn_community::get_community_id] -to_object_type "organization"] 0] +set contact_filter [lrange [wieners::get_contacts -customer_id $organization_id] 1 end] +if { [exists_and_not_null contact_id] } { + set contact_where_clause "p.contact_id = :contact_id" +} else { + set contact_where_clause "" +} + +# If this filter is provided we can see all projects for a given etat +set etat_filter [lrange [wieners::get_etats -customer_id $organization_id] 1 end] +if { [exists_and_not_null etat_id] } { + set etat_where_clause "p.etat_id = :etat_id" +} else { + set etat_where_clause "" +} + # If this filter is provided we can watch the projects in # all project manager instances if { [exists_and_not_null current_package_f] } { @@ -301,6 +319,16 @@ values { {All "-1"} [pm::status::project_status_select]} \ where_clause { $status_where_clause } \ ] \ + contact_id [list \ + label "[_ acs-translations.pm_project_contact_id]" \ + values { $contact_filter } \ + where_clause {$contact_where_clause} + ] \ + etat_id [list \ + label "[_ acs-translations.pm_project_etat_id]" \ + values { $etat_filter } \ + where_clause {$etat_where_clause} + ] \ assignee_id [list \ label "[_ project-manager.Assignee]" \ default_value $user_id \ @@ -351,6 +379,14 @@ $contact_column@projects.customer_name@ " } + contact_id { + label "[_ acs-translations.pm_project_contact_id]" + display_template {@projects.contact_name@ } + } + etat_id { + label "[_ acs-translations.pm_project_etat_id]" + display_template {@projects.etat_name@ } + } creation_date { label "[_ project-manager.Creation_date]" display_template "@projects.creation_date_lc@" @@ -380,7 +416,7 @@ } status_id { label "[_ project-manager.Status_1]" - display_template "#project-manager.Closed##project-manager.Open#" + display_template {@projects.pretty_status@} } } \ -actions $actions \ @@ -468,14 +504,17 @@ width 100% } -db_multirow -extend { item_url customer_url category_select earliest_finish_date latest_finish_date start_date_lc earliest_start_date creation_date_lc planned_end_date_lc} projects project_folders " " { +db_multirow -extend { item_url customer_url category_select earliest_finish_date latest_finish_date start_date_lc earliest_start_date creation_date_lc planned_end_date_lc etat_name etat_url contact_name contact_url} projects project_folders " " { set earliest_finish_date [lc_time_fmt $earliest_finish_date $fmt] set latest_finish_date [lc_time_fmt $latest_finish_date $fmt] set creation_date_lc [lc_time_fmt $creation_date $fmt] - set start_date_lc [lc_time_fmt $start_date $fmt] + set start_date_lc [lc_time_fmt $start_date "%x"] set planned_end_date_lc [lc_time_fmt $planned_end_date $fmt] + set etat_name [contact::name -party_id $etat_id] + set etat_url "/contacts/$etat_id" + set contact_name [contact::name -party_id $contact_id -reverse_order] + set contact_url "/contacts/$contact_id" - set _base_url [site_node::get_url_from_object_id -object_id $package_id] if {![empty_string_p $_base_url]} { set base_url $_base_url