Index: openacs-4/packages/project-manager/tcl/calendar-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager/tcl/calendar-procs.tcl,v diff -u -N -r1.9 -r1.10 --- openacs-4/packages/project-manager/tcl/calendar-procs.tcl 19 Sep 2005 16:57:08 -0000 1.9 +++ openacs-4/packages/project-manager/tcl/calendar-procs.tcl 19 Feb 2007 15:56:54 -0000 1.10 @@ -50,29 +50,31 @@ {-hide_closed_p "t"} {-display_p "l"} {-display_item "t"} + {-hide_observer_p "f"} {-package_id ""} } { Creates a month widget for tasks if display_item=t Creates a month widget for projects if display_item=p + + @param hide_observer_p Should we hide tasks where the user_id is only an observer ? } { set dotlrn_installed_p [apm_package_installed_p dotlrn] set day_template "\$day_number" set prev_nav_template "<" set next_nav_template ">" set instance_clause "" - if {$dotlrn_installed_p} { - if { [empty_string_p $package_id]} { - set package_id [dotlrn_community::get_package_id_from_package_key -package_key project-manager -community_id [dotlrn_community::get_community_id]] - } else { - set package_id [ad_conn package_id] - } - if { ![string eq [ad_conn package_id] [dotlrn::get_package_id]]} { - set instance_clause "and o.package_id=:package_id" - } - } else { - set package_id [ad_conn package_id] - } + if {$package_id eq ""} { + if {$dotlrn_installed_p} { + set package_id [dotlrn_community::get_package_id_from_package_key -package_key project-manager -community_id [dotlrn_community::get_community_id]] + if { ![string eq [ad_conn package_id] [dotlrn::get_package_id]]} { + set instance_clause "and op.package_id=:package_id" + } + } + } else { + set instance_clause "and op.package_id = :package_id" + } + if {[empty_string_p $date]} { set date [dt_systime] @@ -94,6 +96,11 @@ set hide_closed_clause "" } + # Do not show observer tasks if not wanted + if {$hide_observer_p eq "t"} { + append hide_closed_clause " and r.is_observer_p = 'f'" + } + set selected_users [pm::calendar::users_to_view] set selected_users_clause " and ts.task_id in (select task_id from pm_task_assignment where party_id in ([join $selected_users ", "]))" @@ -106,7 +113,7 @@ set query_name "select_monthly_tasks" #display tasks by deadline - + if { [string eq $display_p d]} { set query_name "select_monthly_tasks_by_deadline" } @@ -128,8 +135,8 @@ ![empty_string_p $is_lead_p] && \ [string is true $is_lead_p]} { - set font_begin "$font_begin" - set font_end "$font_end" + set font_begin "$font_begin" + set font_end "$font_end" } # if this is another row of the same item, just add the name. @@ -141,7 +148,7 @@ # save the last item for output if {![empty_string_p $last_task_id]} { - ns_set put $items $last_latest_start_j "${day_details}

" + ns_set put $items $day_date_j "${day_details}

" } # set up the next item for output @@ -155,26 +162,26 @@ } # begin setting up this calendar item - set day_details "

${detail_begin}$title${detail_end} - $project_name" + set day_details "${font_begin}

${detail_begin}$title${detail_end} - $project_name${font_end}" # only add to the list if we want to see closed tasks #append day_details "

" + ns_set put $items $day_date_j "$day_details

" } # Display stuff set day_number_template "$day_template" - + return [dt_widget_month -calendar_details $items -date $date \ -master_bgcolor black \ -header_bgcolor lavender \