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.5 -r1.6 --- openacs-4/packages/project-manager/tcl/calendar-procs.tcl 21 Jul 2005 22:10:20 -0000 1.5 +++ openacs-4/packages/project-manager/tcl/calendar-procs.tcl 22 Jul 2005 21:29:28 -0000 1.6 @@ -48,19 +48,21 @@ {-user_id:required} {-date ""} {-hide_closed_p "t"} - {-display_p ""} + {-display_p "l"} + {-display_item "t"} } { - Creates a month widget for tasks + Creates a month widget for tasks if display_item=t + Creates a month widget for projects if display_item=p } { - + set day_template "\$day_number" set prev_nav_template "<" set next_nav_template ">" set instance_clause "" - + set package_id [dotlrn_community::get_package_id_from_package_key -package_key project-manager -community_id [dotlrn_community::get_community_id]] - set base_url [ad_conn package_url]project-manager/ + if { ![string eq [ad_conn package_id] [dotlrn::get_package_id]]} { set instance_clause "and o.package_id=:package_id" @@ -69,35 +71,44 @@ if {[empty_string_p $date]} { set date [dt_systime] } - + set date_list [dt_ansi_to_list $date] set month [lindex $date_list 1] set year [lindex $date_list 0] - + set first_of_month_date "$year-$month-01" set last_of_month_date "$year-$month-[dt_num_days_in_month $year $month]" - + set items [ns_set create] - + # do not show closed items if the user requests not to if {[string is true $hide_closed_p]} { set hide_closed_clause " and s.status_type = 'o' " } else { set hide_closed_clause "" } - + 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 ", "]))" - + set last_task_id "" set last_latest_start_j "" set assignee_list [list] - set task_query_name "select_monthly_tasks" + + #display tasks by latest_finish as default + + set query_name "select_monthly_tasks" + + #display tasks by deadline + if { [string eq $display_p d]} { - set task_query_name "select_monthly_tasks_by_deadline" + set query_name "select_monthly_tasks_by_deadline" } - db_foreach $task_query_name {} { + + db_foreach $query_name {} { + set base_url [apm_package_url_from_id $instance_id] + # highlight what you're assigned to. if {[string equal $person_id $user_id]} { set font_begin "" @@ -175,6 +186,129 @@ } + ad_proc -public one_month_project_display { + {-user_id:required} + {-date ""} + {-hide_closed_p "t"} + } { + Creates a month widget for tasks if display_item=t + Creates a month widget for projects if display_item=p + } { + + set day_template "\$day_number" + set prev_nav_template "<" + set next_nav_template ">" + set instance_clause "" + + + 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 f.package_id = :package_id" + } + + if {[empty_string_p $date]} { + set date [dt_systime] + } + + set date_list [dt_ansi_to_list $date] + set month [lindex $date_list 1] + set year [lindex $date_list 0] + + set first_of_month_date "$year-$month-01" + set last_of_month_date "$year-$month-[dt_num_days_in_month $year $month]" + + set items [ns_set create] + + # do not show closed items if the user requests not to + if {[string is true $hide_closed_p]} { + set hide_closed_clause " and s.status_type = 'o' " + } else { + set hide_closed_clause "" + } + + set selected_users [pm::calendar::users_to_view] + set selected_users_clause " and ts.project_id in (select project_id from pm_project_assignment where party_id in ([join $selected_users ", "]))" + + set last_project_id "" + set deadline "" + set assignee_list [list] + + + db_foreach select_monthly_projects_by_deadline {} { + set base_url [apm_package_url_from_id $instance_id] + + # highlight what you're assigned to. + #if {[string equal $person_id $user_id]} { + # set font_begin "" + #set font_end "" + #} #else { + set font_begin "" + set font_end "" + #} + + #if { \ + \# ![empty_string_p $is_lead_p] && \ + \# [string is true $is_lead_p]} { + # + # set font_begin "$font_begin" + # set font_end "$font_end" + # } + + #if this is another row of the same item, just add the name. + if {![string equal $last_project_id $project_id]} { + # this is the beginning of an item. + + # save the last item for output + if {![empty_string_p $last_project_id]} { + ns_set put $items $deadline "${day_details}

" + } + + # set up the next item for output + + set detail_begin "" + set detail_end "" + + + # begin setting up this calendar item + set day_details "

${detail_begin}$project_id
$project_name${detail_end}" + + # only add to the list if we want to see closed projects + #append 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 \ + -header_text_color black \ + -header_text_size "+1" \ + -day_header_bgcolor lavender \ + -day_bgcolor white \ + -today_bgcolor #FFF8DC \ + -empty_bgcolor lightgrey \ + -day_text_color black \ + -prev_next_links_in_title 1 \ + -prev_month_template $prev_nav_template \ + -next_month_template $next_nav_template \ + -day_number_template $day_number_template] + + } } \ No newline at end of file