Index: openacs-4/packages/assessment/lib/assessment.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/lib/assessment.tcl,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/assessment/lib/assessment.tcl 27 Jun 2006 19:11:40 -0000 1.7
+++ openacs-4/packages/assessment/lib/assessment.tcl 11 Jul 2006 14:05:14 -0000 1.8
@@ -126,7 +126,7 @@
# 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_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
@@ -155,6 +155,13 @@
set item_list [as::section::items -section_id $section_id -session_id $session_id -sort_order_type $display(sort_order_type) -num_items $section(num_items) -random_p $assessment_data(random_p)]
set item_id_list [list]
+ # get total number of items
+ set page_total_items [llength $item_list]
+ # get preference for number of display items per page
+ set page_display_per_page $display(num_items)
+ # determine the total number of pages
+ set page_total [expr $page_total_items / $page_display_per_page]
+
set section(num_sections) [llength $section_list]
set section(num_items) [llength $item_list]
if {![empty_string_p $section(max_time_to_complete)]} {
@@ -170,22 +177,29 @@
# show whole section when picking up a seperate submit section
set item_order 0
}
- # strip away items on previous section pages
- set item_list [lreplace $item_list 0 [expr $item_order-1]]
}
+ # determine on which page we are right now based on item_order
+ if { ![exists_and_not_null item_order] } { set item_order 0 }
+ # add 1 because we want to compare the 1 indexed display number
+ # to the current page
+ set current_page [expr {$item_order / $page_display_per_page + 1} ]
+
+ # strip away items on previous section pages
+ set item_list [lreplace $item_list 0 [expr $item_order-1]]
+
+
if {![empty_string_p $display(num_items)]} {
if {[llength $item_list] > $display(num_items)} {
+ # show only a few items per page
+ set item_list [lreplace $item_list $display(num_items) end]
# next page: more items of this section
set new_item_order $item_order
set new_section_order $section_order
if {[empty_string_p $item_order]} {
set new_item_order 0
}
set new_item_order [expr $new_item_order + $display(num_items)]
-
- # show only a few items per page
- set item_list [lreplace $item_list $display(num_items) end]
} else {
# next page: next section
set new_item_order ""
@@ -205,6 +219,14 @@
foreach one_item $item_list {
lappend item_id_list [lindex $one_item 0]
}
+
+ # let's generate the list of page numbers
+ if {![empty_string_p $display(num_items)]} {
+ set progress_bar_list [template::util::number_list $page_total 1]
+ }
+ if {![info exists show_progress]} {
+ set show_progress 0
+ }
}
}
Index: openacs-4/packages/assessment/www/assessment-section-submit.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/assessment-section-submit.adp,v
diff -u -r1.12 -r1.13
--- openacs-4/packages/assessment/www/assessment-section-submit.adp 12 Jun 2006 03:02:38 -0000 1.12
+++ openacs-4/packages/assessment/www/assessment-section-submit.adp 11 Jul 2006 14:05:14 -0000 1.13
@@ -5,13 +5,24 @@
-
@assessment_data.instructions;noquote@@assessment_data.html_title;noquote@
#assessment.session_time_remaining#
#assessment.section_time_remaining#
+
+