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]"}}