Index: openacs-4/packages/assessment/www/assessment.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/assessment.tcl,v diff -u -r1.38 -r1.39 --- openacs-4/packages/assessment/www/assessment.tcl 25 Feb 2005 09:31:20 -0000 1.38 +++ openacs-4/packages/assessment/www/assessment.tcl 2 Mar 2005 22:37:05 -0000 1.39 @@ -12,6 +12,7 @@ {section_order:integer,optional ""} {item_order:integer,optional ""} {item_id ""} + {return_url:optional} response_to_item:array,optional,multiple,html } -properties { context_bar:onevalue @@ -23,6 +24,16 @@ set context_bar [ad_context_bar $page_title] set section_to "" set item_to "" +set url "" + +if { [info exists return_url] } { + set url $return_url + ns_log notice "$return_url" +} + +set return_url "$url" + + # Get the assessment data as::assessment::data -assessment_id $assessment_id permission::require_permission -object_id $assessment_id -privilege read @@ -51,13 +62,13 @@ # set the time when the subject initiated the Assessment db_dml session_start {} } else { - set consent_url [export_vars -base assessment-consent {assessment_id session_id password}] + set consent_url [export_vars -base assessment-consent {assessment_id session_id password return_url}] } } else { # pick up old session db_1row unfinished_section_order {} if {[empty_string_p $section_order]} { - set consent_url [export_vars -base assessment-consent {assessment_id session_id password}] + set consent_url [export_vars -base assessment-consent {assessment_id session_id password return_url}] } else { db_1row unfinished_section_id {} db_1row unfinished_item_order {} @@ -215,7 +226,7 @@ # go to next section set section_order $new_section_order set item_order $new_item_order - ad_returnredirect [export_vars -base assessment {assessment_id session_id section_order item_order password}] + ad_returnredirect [export_vars -base assessment {assessment_id session_id section_order item_order password return_url}] ad_script_abort } else { # calculate session points at end of session @@ -224,7 +235,7 @@ as::assessment::check::eval_aa_checks -session_id $session_id -assessment_id $assessment_id as::assessment::check::eval_m_checks -session_id $session_id -assessment_id $assessment_id if {[empty_string_p $assessment_data(return_url)]} { - ad_returnredirect [export_vars -base finish {session_id assessment_id}] + ad_returnredirect [export_vars -base finish {session_id assessment_id return_url}] } else { ad_returnredirect $assessment_data(return_url) } @@ -234,7 +245,7 @@ # form for display an assessment with sections and items -ad_form -name show_item_form -action assessment -html {enctype multipart/form-data} -export {assessment_id section_id section_order item_order password} -form { +ad_form -name show_item_form -action assessment -html {enctype multipart/form-data} -export {assessment_id section_id section_order item_order password return_url} -form { {session_id:text(hidden) {value $session_id}} } @@ -283,7 +294,7 @@ } # create seperate submit form for each item - ad_form -name show_item_form_$as_item_id -mode $mode -action assessment -html {enctype multipart/form-data} -export {assessment_id section_id section_order item_order password} -form { + ad_form -name show_item_form_$as_item_id -mode $mode -action assessment -html {enctype multipart/form-data} -export {assessment_id section_id section_order item_order password return_url} -form { {session_id:text(hidden) {value $session_id}} {item_id:text(hidden) {value $as_item_id}} } @@ -313,7 +324,7 @@ } }" set after_submit "{ - ad_returnredirect \[export_vars -base assessment {assessment_id session_id section_order item_order password}\] + ad_returnredirect \[export_vars -base assessment {assessment_id session_id section_order item_order password return_url}\] ad_script_abort }" @@ -382,7 +393,7 @@ } set item_order \$new_item_order - ad_returnredirect \[export_vars -base assessment {assessment_id session_id section_order item_order password}\] + ad_returnredirect \[export_vars -base assessment {assessment_id session_id section_order item_order password return_url}\] ad_script_abort } else { # calculate session points at end of session @@ -391,7 +402,7 @@ as::assessment::check::eval_aa_checks -session_id $session_id -assessment_id $assessment_id as::assessment::check::eval_m_checks -session_id $session_id -assessment_id $assessment_id if {\[empty_string_p \$assessment_data(return_url)\]} { - ad_returnredirect \[export_vars -base finish {session_id assessment_id}\] + ad_returnredirect \[export_vars -base finish {session_id assessment_id return_url}\] } else { ad_returnredirect \$assessment_data(return_url) } @@ -428,7 +439,7 @@ # go to next section set section_order $new_section_order set item_order $new_item_order - ad_returnredirect [export_vars -base assessment {assessment_id session_id section_order item_order password}] + ad_returnredirect [export_vars -base assessment {assessment_id session_id section_order item_order password return_url}] ad_script_abort } else { # calculate session points at end of session @@ -437,7 +448,7 @@ as::assessment::check::eval_aa_checks -session_id $session_id -assessment_id $assessment_id as::assessment::check::eval_m_checks -session_id $session_id -assessment_id $assessment_id if {[empty_string_p $assessment_data(return_url)]} { - ad_returnredirect [export_vars -base finish {session_id assessment_id}] + ad_returnredirect [export_vars -base finish {session_id assessment_id return_url}] } else { ad_returnredirect $assessment_data(return_url) }