Index: openacs-4/packages/project-manager/www/rate-project.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager/www/rate-project.tcl,v diff -u -r1.1 -r1.2 --- openacs-4/packages/project-manager/www/rate-project.tcl 29 Jul 2005 23:31:43 -0000 1.1 +++ openacs-4/packages/project-manager/www/rate-project.tcl 1 Aug 2005 19:34:12 -0000 1.2 @@ -10,21 +10,61 @@ project_item_id:integer,notnull } -set title "Rate this Project" - +set title [_ project-manager.rate_this_project] set context [list [list "one?project_id=$project_id" "One Project"] $title] set user_id [ad_conn user_id] +set context_object_id $project_id +# We create hidden items project_id and project_item_id +ad_form -name rate_project -form { + {project_id:text(hidden) + {value $project_id} + } + {project_item_id:text(hidden) + {value $project_item_id} + } +} + +# We are going to create an element for each dimension-user pair to evaluate this project +# First we get all users assigned to this project set users_list [pm::project::assignee_role_list -project_item_id $project_item_id] -set output_page "" +# Now we get all the dimensions that for the rating +set dimensions_list [ratings::get_available_dimensions] + +# We keep a list of all created elements +set created_elements [list] + +# We generate the form foreach user $users_list { - set assignee_id [lindex $user 0] - acs_user::get -user_id $assignee_id -array user_info - set role [pm::role::name -role_id [lindex $user 1]] - append output_page "

Rate $user_info(first_names) $user_info(last_name) ($role):

" - append output_page [ratings::dimension_form -dimensions_key_list "" -object_id $user_id -context_object_id $project_id] - append output_page "

" + foreach dimension $dimensions_list { + set assignee_id [lindex $user 0] + acs_user::get -user_id $assignee_id -array user_info + set role [pm::role::name -role_id [lindex $user 1]] + ad_form -extend -name rate_project -form [ratings::dimension_ad_form_element -object_id $assignee_id \ + -dimension_key [lindex $dimension 0] \ + -section "{[_ project-manager.rate] $user_info(first_names) $user_info(last_name) ($role):}" \ + -label "[lindex $dimension 1]:"] + lappend created_elements "${assignee_id}.[lindex $dimension 0]" + } } +ad_form -extend -name rate_project -on_submit { + foreach element $created_elements { + set element_info [split $element "."] + set rating [template::element::get_value rate_project $element] + set object_id [lindex $element_info 0] + set dimension_key [lindex $element_info 1] + set rating_id [ratings::rate -dimension_key $dimension_key \ + -object_id $object_id \ + -user_id $user_id \ + -rating $rating \ + -nomem_p "t"] + + db_dml update_context_id { } + } +} -after_submit { + ad_returnredirect "one?project_id=$project_id" +} +