Index: openacs-4/contrib/packages/project-manager/www/one.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/one.tcl,v diff -u -r1.30.2.2 -r1.30.2.3 --- openacs-4/contrib/packages/project-manager/www/one.tcl 20 May 2004 17:35:19 -0000 1.30.2.2 +++ openacs-4/contrib/packages/project-manager/www/one.tcl 2 Jul 2004 23:13:49 -0000 1.30.2.3 @@ -21,25 +21,27 @@ @param use_goal_p Specifies whether or not to include the goal field 1 = yes @param use_project_code_p Specifies whether or not to show the user-specified project code 1 = yes @param use_uncertain_completion_times_p Specifies whether or not to use PERT style uncertainty times 1 = yes + @param logger_days The number of days back to view logged entries } { project_item_id:integer,optional project_id:integer,optional {orderby_subproject ""} {orderby_tasks ""} - {orderby_versions ""} {status_type "o"} + {logger_variable_id:integer ""} + {logger_days:integer "30"} } -properties { categories:onelist my_title:onevalue context:onevalue project:multirow + people:multirow tasks:multirow people:multirow write_p:onevalue create_p:onevalue - versions:multirow custom:multirow parent_task_id:onevalue task_type:onevalue @@ -54,14 +56,22 @@ comments:onevalue comments_link:onevalue } -validate { + project_exists { + if {![exists_and_not_null project_item_id] && \ + ![exists_and_not_null project_id]} { + + ad_complain "No project passed in" + + } + } project_item_id_exists { - if {![exists_and_not_null project_item_id]} { + if {![exists_and_not_null project_item_id] && [exists_and_not_null project_id]} { set project_item_id [pm::project::get_project_item_id \ -project_id $project_id] } } project_id_exists { - if {![exists_and_not_null project_id]} { + if {![exists_and_not_null project_id] && [exists_and_not_null project_item_id]} { set project_id [pm::project::get_project_id \ -project_item_id $project_item_id] } @@ -71,6 +81,11 @@ set status_type "o" } } + logger_days_positive { + if {$logger_days < 1} { + set logger_days 1 + } + } } set original_project_id $project_id @@ -81,25 +96,20 @@ # --------------------------------------------------------------- # # the unique identifier for this package -set package_id [ad_conn package_id] -set user_id [ad_maybe_redirect_for_registration] +set package_id [ad_conn package_id] +set package_url [ad_conn package_url] +set user_id [ad_maybe_redirect_for_registration] -# ---------------- -# general comments -# ---------------- -set comments [general_comments_get_comments -print_content_p 1 -print_attachments_p 1 $project_item_id "[ad_conn url]?project_item_id=$project_item_id"] -set comments_link [general_comments_create_link -object_name "Project" -link_text "Add a comment" -context_id $package_id $project_item_id "[ad_conn url]?project_item_id=$project_item_id"] - - -# terminology +# terminology and other parameters set project_term [parameter::get -parameter "ProjectName" -default "Project"] set project_term_lower [parameter::get -parameter "projectname" -default "project"] set task_term [parameter::get -parameter "TaskName" -default "Task"] set use_goal_p [parameter::get -parameter "UseGoalP" -default "1"] set use_project_code_p [parameter::get -parameter "UseUserProjectCodesP" -default "1"] set use_uncertain_completion_times_p [parameter::get -parameter "UseUncertainCompletionTimesP" -default "1"] set use_project_customizations_p [parameter::get -parameter "UseProjectCustomizationsP" -default "0"] +set use_subprojects_p [parameter::get -parameter "UseSubprojectsP" -default "0"] # permissions permission::require_permission -party_id $user_id -object_id $package_id -privilege read @@ -129,16 +139,48 @@ set project(estimated_finish_date) [lc_time_fmt $project(estimated_finish_date) "%x"] set project(earliest_finish_date) [lc_time_fmt $project(earliest_finish_date) "%x"] set project(latest_finish_date) [lc_time_fmt $project(latest_finish_date) "%x"] -set project(logger_variable_id) [logger::variable::get_default_variable_id] -set log_url "[ad_conn package_url]log?project_id=$project(logger_project)&pm_project_id=$project_item_id" +# ---------------- +# general comments +# ---------------- +set comments [general_comments_get_comments -print_content_p 1 -print_attachments_p 1 $project_item_id "[ad_conn url]?project_item_id=$project_item_id"] -set then_ansi [db_string get_now_julian "select to_char(current_timestamp - '30 days'::INTERVAL,'YYYY-MM-DD')"] +set comments_link "Add comment" -set log_note "Last 30 days" +# we can also get the link to the logger instance. +set logger_url [pm::util::logger_url] +set logger_project_url "$logger_url?project_id=$project(logger_project)" +if {![exists_and_not_null logger_variable_id]} { + #set logger_variable_id + # [logger::variable::get_default_variable_id] + set logger_variable_id [logger::project::get_primary_variable \ + -project_id $project(logger_project)] +} +set variable_widget [logger::ui::variable_select_widget \ + -project_id $project(logger_project) \ + -current_variable_id $logger_variable_id \ + -select_name logger_variable_id] + +set variable_exports [export_vars -form -entire_form -exclude {logger_variable_id logger_days }] + +set log_url "${logger_url}log?project_id=$project(logger_project)&pm_project_id=$project_item_id&return_url=$return_url&variable_id=$logger_variable_id" + +set assignee_add_self_widget "Add myself as
[export_vars -form {project_item_id user_id return_url}][pm::role::select_list -select_name "role_id"]
" + +set assignee_remove_self_url [export_vars -base project-assign-remove {project_item_id user_id return_url}] + +set assignee_edit_url [export_vars -base project-assign-edit {project_item_id return_url}] + +set today_ansi [clock format [clock scan today] -format "%Y-%m-%d"] +set then_ansi [clock format [clock scan "-$logger_days days"] -format "%Y-%m-%d"] + + +set day_widget "Last Days" + + set my_title "$project_term \#$project_item_id: $project(project_name)" @@ -235,40 +277,35 @@ orderby_subproject { hide_p 1 } - orderby_versions { - hide_p 1 - } orderby_people { hide_p 1 } } \ -orderby { default_value latest_start,asc title { - label "Subject" - orderby_asc "title asc" - orderby_desc "title desc" + orderby_asc "title asc, task_id asc" + orderby_desc "title desc, task_id desc" default_direction asc } earliest_start { - label "Earliest start" - orderby_asc "earliest_start, u.first_names, u.last_name" - orderby_desc "earliest_start desc, u.first_names, u.last_name" + orderby_asc "earliest_start, task_id asc, u.first_names, u.last_name" + orderby_desc "earliest_start desc, task_id desc, u.first_names, u.last_name" default_direction asc } earliest_finish { - orderby_asc "earliest_finish, u.first_names, u.last_name" - orderby_desc "earliest_finish desc, u.first_names, u.last_name" + orderby_asc "earliest_finish, task_id asc, u.first_names, u.last_name" + orderby_desc "earliest_finish desc, task_id desc, u.first_names, u.last_name" default_direction asc } latest_start { - orderby_asc "latest_start, u.first_names, u.last_name" - orderby_desc "latest_start desc, u.first_names, u.last_name" + orderby_asc "latest_start, task_id asc, u.first_names, u.last_name" + orderby_desc "latest_start desc, task_id desc, u.first_names, u.last_name" default_direction asc } latest_finish { - orderby_asc "latest_finish, u.first_names, u.last_name" - orderby_desc "latest_finish desc, u.first_names, u.last_name" + orderby_asc "latest_finish, task_id asc, u.first_names, u.last_name" + orderby_desc "latest_finish desc, task_id desc, u.first_names, u.last_name" default_direction asc } } \ @@ -294,52 +331,51 @@ } +if {$use_subprojects_p} { -# Subprojects, using list-builder --------------------------------- - -db_multirow subproject project_subproject_query { } - -template::list::create \ - -name subproject \ - -multirow subproject \ - -key item_id \ - -elements { - project_name { - label "Subject" - link_url_col item_url - link_html { title "View this subproject" } + # Subprojects, using list-builder --------------------------------- + + db_multirow subproject project_subproject_query { } + + template::list::create \ + -name subproject \ + -multirow subproject \ + -key item_id \ + -elements { + project_name { + label "Subject" + link_url_col item_url + link_html { title "View this subproject" } + } + actual_hours_completed { + label "Hours completed" + } + } \ + -sub_class { + narrow + } \ + -filters { + project_item_id {} + orderby_tasks {} + orderby_people {} + } \ + -orderby { + project_name {orderby project_name} + default_value project_name,desc + } \ + -orderby_name orderby_subproject \ + -html { + width 100% } - actual_hours_completed { - label "Hours completed" - } - } \ - -sub_class { - narrow - } \ - -filters { - project_item_id {} - orderby_versions {} - orderby_tasks {} - orderby_people {} - orderby_versions {} - } \ - -orderby { - project_name {orderby project_name} - default_value project_name,desc - } \ - -orderby_name orderby_subproject \ - -html { - width 100% + + + + db_multirow -extend { item_url } subproject project_subproject_query { + } { + set item_url [export_vars -base "one" -override {{project_item_id $item_id}} {project_item_id}] } - - - -db_multirow -extend { item_url } subproject project_subproject_query { -} { - set item_url [export_vars -base "one" -override {{project_item_id $item_id}} {project_item_id}] } - # People, using list-builder --------------------------------- db_multirow people project_people_query { } @@ -349,10 +385,10 @@ -multirow people \ -key item_id \ -elements { - party_id { + user_name { label "Who" } - role_id { + role_name { label "Role" } } \ @@ -362,7 +398,6 @@ -filters { party_id {} orderby_subproject {} - orderby_versions {} orderby_tasks {} } \ -orderby { @@ -375,62 +410,13 @@ } - -db_multirow -extend { item_url } subproject project_subproject_query { +db_multirow -extend { item_url } subproject project_people_query { } { - set item_url [export_vars -base "one" -override {{project_item_id $item_id}} {project_item_id}] -} - - -# Project versions, using list-builder --------------------------------- - -db_multirow versions project_versions { } - -template::list::create \ - -name versions \ - -multirow versions \ - -key item_id \ - -elements { - project_id { - label "Version" - link_url_col item_url - link_html { title "View this project version" } - } - project_name { - label "Subject" - } - planned_end_date { - label "Deadline" - } - } \ - -sub_class { - narrow - } \ - -filters { - project_item_id {} - orderby_subproject {} - orderby_people {} - orderby_tasks {} - } \ - -orderby { - project_name {orderby project_name} - default_value project_name,desc - } \ - -orderby_name orderby_versions \ - -html { - width 100% - } - - -db_multirow -extend { item_url } versions project_versions { -} { - set item_url [export_vars -base "one" -override {{project_item_id $item_id}} {project_id}] - - } + # -------------------------CUSTOMIZATIONS-------------------------- # If there are customizations, put them in a multirow called custom # ----------------------------------------------------------------- @@ -441,12 +427,5 @@ # end of customizations -# ----------------------------------------------------------------- -# Logger forms and so on - shows time logged, and allows you to log -# other time -# ----------------------------------------------------------------- - - - ad_return_template # ------------------------- END OF FILE ------------------------- #