Index: openacs-4/packages/assessment/lib/assessment.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/lib/assessment.tcl,v diff -u -N -r1.6 -r1.7 --- openacs-4/packages/assessment/lib/assessment.tcl 13 Jun 2006 02:03:56 -0000 1.6 +++ openacs-4/packages/assessment/lib/assessment.tcl 27 Jun 2006 19:11:40 -0000 1.7 @@ -17,7 +17,7 @@ {next_asm:optional} {response:multiple,optional} {next_url ""} - single_section_id:optional + {single_section_id ""} } -properties { context:onevalue page_title:onevalue @@ -75,13 +75,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 return_url next_asm}] + set consent_url [export_vars -base assessment-consent {assessment_id session_id password return_url next_asm single_section_id}] } } 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 return_url next_asm}] +# set consent_url [export_vars -base assessment-consent {assessment_id session_id password return_url next_asm single_section_id}] } else { db_1row unfinished_section_id {} db_1row unfinished_item_order {} @@ -107,8 +107,8 @@ # get all sections of assessment in correct order - if {![info exists single_section_id]} { - set section_list [as::assessment::sections -assessment_id $assessment_rev_id -session_id $session_id -sort_order_type $assessment_data(section_navigation) -random_p $assessment_data(random_p)] + set section_list [as::assessment::sections -assessment_id $assessment_rev_id -session_id $session_id -sort_order_type $assessment_data(section_navigation) -random_p $assessment_data(random_p)] + if {$single_section_id eq ""} { if {[empty_string_p $section_order]} { # start at the first section set section_order 0 @@ -121,11 +121,17 @@ } } else { - set section_order 0 set section_id $single_section_id + if {$section_order ne "" && $section_order ne [lsearch $section_list $section_id]} { + # we had more than one section in the whole assessment + # but we are only doing one right now, so go to the next_url + # we need to funnel through feedback page, in case there is per page feedback. + ad_returnredirect [export_vars -base feedback {assessment_id session_id section_id return_url next_url {return_p 1} item_id_list:multiple }] + ad_script_abort + } set section_list $single_section_id + set section_order 0 } - ns_log notice "section_order ${section_order} section_id ${section_id} section_list ${section_list}" # check if we just wanted to do one section, if so go to the # next_url @@ -261,8 +267,8 @@ # 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 return_url next_asm section_id item_id_list:multiple }] -# ad_returnredirect [export_vars -base feedback {assessment_id session_id section_order item_order password return_url next_asm section_id item_id_list:multiple }] + ad_returnredirect [export_vars -base assessment {assessment_id session_id section_order item_order password return_url next_asm section_id item_id_list:multiple single_section_id}] +# ad_returnredirect [export_vars -base feedback {assessment_id session_id section_order item_order password return_url next_asm section_id item_id_list:multiple}] ad_script_abort } else { # calculate session points at end of session @@ -282,7 +288,7 @@ } } -lappend exports next_asm assessment_id section_id section_order item_order password return_url item_id_list +lappend exports next_asm assessment_id section_id section_order item_order password return_url item_id_list single_section_id # form for display an assessment with sections and items ad_form -name show_item_form -action assessment -html {enctype multipart/form-data} -export $exports -form { {session_id:text(hidden) {value $session_id}} @@ -313,7 +319,7 @@ set submitted_p f ns_log notice "ASSESSMENT.TCL display(submit_answer_p)='${display(submit_answer_p)}'" if {$display(submit_answer_p) != "t"} { - ns_log notice "ASSESSMENT.TCL NO seperate submit" +# ns_log notice "ASSESSMENT.TCL NO seperate submit" # no seperate submit of each item if {$assessment_data(reuse_responses_p) == "t"} { set default_value [as::item_data::get -subject_id $user_id -as_item_id $as_item_id] @@ -381,8 +387,8 @@ }" set after_submit "{ - ad_returnredirect \[export_vars -base assessment {assessment_id session_id section_order item_order password return_url next_asm section_id item_id_list:multiple }\] -# ad_returnredirect \[export_vars -base feedback {assessment_id session_id section_order item_order password return_url next_asm section_id item_id_list:multiple }\] + ad_returnredirect \[export_vars -base assessment {assessment_id session_id section_order item_order password return_url next_asm section_id item_id_list:multiple single_section_id}\] +# ad_returnredirect \[export_vars -base feedback {assessment_id session_id section_order item_order password return_url next_asm section_id item_id_list:multiple single_section_id}\] ad_script_abort }" @@ -482,7 +488,7 @@ 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 return_url next_asm section_id item_id_list:multiple }\] + ad_returnredirect \[export_vars -base assessment {assessment_id session_id section_order item_order password return_url next_asm section_id item_id_list:multiple single_section_id}\] # ad_returnredirect \[export_vars -base feedback {assessment_id session_id section_order item_order password return_url next_asm section_id item_id_list:multiple nxt_url}\] ad_script_abort } else { @@ -543,7 +549,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 return_url next_asm section_id item_id_list:multiple }] + ad_returnredirect [export_vars -base assessment {assessment_id session_id section_order item_order password return_url next_asm section_id item_id_list:multiple single_section_id}] # ad_returnredirect [export_vars -base feedback {assessment_id session_id section_order item_order password return_url next_asm section_id item_id_list:multiple next_url}] ad_script_abort } else { @@ -559,7 +565,7 @@ } else { set return_url $assessment_data(return_url) } - ad_returnredirect [export_vars -base assessment {assessment_id session_id section_order item_order password return_url next_asm section_id item_id_list:multiple }] + ad_returnredirect [export_vars -base assessment {assessment_id session_id section_order item_order password return_url next_asm section_id item_id_list:multiple single_section_id}] # ad_returnredirect [export_vars -base feedback {assessment_id session_id section_id return_url {return_p 1} item_id_list:multiple next_url}] ad_script_abort } Index: openacs-4/packages/assessment/lib/feedback.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/lib/feedback.adp,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/assessment/lib/feedback.adp 13 Jun 2006 02:03:56 -0000 1.2 +++ openacs-4/packages/assessment/lib/feedback.adp 27 Jun 2006 19:11:40 -0000 1.3 @@ -2,6 +2,6 @@ @assessment_data.html_title;noquote@ @context;noquote@ - +

Next \ No newline at end of file Index: openacs-4/packages/assessment/lib/feedback.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/lib/feedback.tcl,v diff -u -N -r1.3 -r1.4 --- openacs-4/packages/assessment/lib/feedback.tcl 13 Jun 2006 02:03:56 -0000 1.3 +++ openacs-4/packages/assessment/lib/feedback.tcl 27 Jun 2006 19:11:40 -0000 1.4 @@ -20,11 +20,14 @@ next_asm:optional {item_id_list:multiple,optional {}} {next_url ""} + no_complaint:optional } -properties { } -validate { } -errors { } - +#if {![info exists no_complain]} { +# ad_return_complaint 1 "feedback! [ns_conn query]" +#} set subject_id [ad_conn user_id] as::assessment::data -assessment_id $assessment_id permission::require_permission -object_id $assessment_id -privilege read Index: openacs-4/packages/assessment/lib/session-items.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/lib/session-items.tcl,v diff -u -N -r1.12 -r1.13 --- openacs-4/packages/assessment/lib/session-items.tcl 13 Jun 2006 02:03:56 -0000 1.12 +++ openacs-4/packages/assessment/lib/session-items.tcl 27 Jun 2006 19:11:40 -0000 1.13 @@ -5,9 +5,20 @@ if {![exists_and_not_null feedback_only_p] } { set feedback_only_p 0 } +if {![info exists assessment_id]} { + set assessment_id $assessment_data(assessment_id) +} +# if we can tell this is the last section, next button should go to feedback for the entire assessment. + +set section_list [as::assessment::sections -assessment_id $assessment_id -session_id $session_id -sort_order_type $assessment_data(section_navigation) -random_p $assessment_data(random_p)] + +if {[lsearch $section_list $section_id] eq [expr {[llength $section_list]-1}]} { + set next_url [export_vars -base session {session_id next_url}] +} + if {[info exists assessment_id]} { # check if this assessment even allows feedback if not, bail out - as::assessment::data -assessment_id $assessment_id + if {$feedback_only_p && $assessment_data(show_feedback) eq "none"} { ad_returnredirect $next_url ad_script_abort @@ -159,7 +170,6 @@ } if { $feedback_only_p && $feedback_count == 0 && [exists_and_not_null next_url] } { - ns_log notice "feedback going to $next_url" ad_returnredirect $next_url ad_script_abort } Index: openacs-4/packages/assessment/lib/session.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/lib/session.adp,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/assessment/lib/session.adp 12 Jun 2006 19:25:39 -0000 1.2 +++ openacs-4/packages/assessment/lib/session.adp 27 Jun 2006 19:11:40 -0000 1.3 @@ -31,7 +31,7 @@

@sections.feedback_text@

- + @@ -43,7 +43,9 @@
#assessment.Total_score#: @session_score@ / @assessment_score@ = @percent_score@% - + + Next + Index: openacs-4/packages/assessment/lib/session.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/lib/session.tcl,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/assessment/lib/session.tcl 12 Jun 2006 03:30:09 -0000 1.1 +++ openacs-4/packages/assessment/lib/session.tcl 27 Jun 2006 19:11:40 -0000 1.2 @@ -7,6 +7,7 @@ @cvs-id $Id: } { session_id:integer + {next_url ""} } -properties { context_bar:onevalue page_title:onevalue Index: openacs-4/packages/assessment/www/asm-admin/assessment-form.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/asm-admin/assessment-form.tcl,v diff -u -N -r1.10 -r1.11 --- openacs-4/packages/assessment/www/asm-admin/assessment-form.tcl 12 Jun 2006 02:49:51 -0000 1.10 +++ openacs-4/packages/assessment/www/asm-admin/assessment-form.tcl 27 Jun 2006 19:11:41 -0000 1.11 @@ -98,7 +98,7 @@ } } -if { $type == 2 && [empty_string_p $edit_p]} { +if { $type == 2 } { ad_form -extend -name assessment_form -form { {secure_access_p:text(select) {label "[_ assessment.Secure_Access_1]"} {options $boolean_options} {help_text "[_ assessment.as_Secure_Access_help]"}} {reuse_responses_p:text(select) {label "[_ assessment.Reuse_Responses_1]"} {options $boolean_options} {help_text "[_ assessment.as_Reuse_Responses_help]"}}