Index: openacs-4/packages/project-manager/www/rate-project.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager/www/rate-project.adp,v
diff -u -r1.1 -r1.2
--- openacs-4/packages/project-manager/www/rate-project.adp	29 Jul 2005 23:31:43 -0000	1.1
+++ openacs-4/packages/project-manager/www/rate-project.adp	1 Aug 2005 19:34:12 -0000	1.2
@@ -2,9 +2,5 @@
 <property name="title">@title;noquote@</property>
 <property name="context">@context;noquote@</property>
 
-@output_page;noquote@
 
-<br><br>
-<center><a href="one?project_item_id=@project_item_id@" class="button">Done</a></center>
-
-
+<formtemplate id="rate_project"></formtemplate>
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 "<h3>Rate $user_info(first_names) $user_info(last_name) ($role):</h3>"    
-    append output_page [ratings::dimension_form -dimensions_key_list "" -object_id $user_id -context_object_id $project_id]
-    append output_page "<br><br>"
+    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"
+}
+
Index: openacs-4/packages/project-manager/www/rate-project.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager/www/rate-project.xql,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/project-manager/www/rate-project.xql	1 Aug 2005 19:34:12 -0000	1.1
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<queryset>
+
+<fullquery name="update_context_id">
+    <querytext>	
+	update ratings 
+	set context_object_id = :context_object_id 
+	where rating_id = :rating_id
+    </querytext>
+</fullquery>
+
+</queryset>
\ No newline at end of file