Index: openacs-4/packages/lorsm/www/delivery/delivery-progress-bar.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/delivery/delivery-progress-bar.tcl,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/lorsm/www/delivery/delivery-progress-bar.tcl 16 Jan 2008 16:54:45 -0000 1.8
+++ openacs-4/packages/lorsm/www/delivery/delivery-progress-bar.tcl 3 Sep 2008 19:41:45 -0000 1.9
@@ -12,17 +12,19 @@
} -errors {
}
-set track_id [ad_get_client_property lorsm studenttrack]
-ns_log notice "DAVEB LORSM BEFORE TRACK_ID='${track_id}'"
if {![info exists man_id] || $man_id eq ""} {
set man_id [ad_get_client_property lorsm man_id]
}
if {![info exists item_id]} {
set item_id [ad_get_client_property lorsm ims_id]
}
-ns_log notice "DEBUG:: item_id $item_id"
+ns_log notice "delivery progress bar DEBUG:: item_id $item_id"
set community_id [dotlrn_community::get_community_id]
set user_id [ad_conn user_id]
+
+set track_id [lorsm::track::get_track_id -user_id $user_id -man_id $man_id -community_id $community_id]
+
+#ns_log notice "DAVEB LORSM BEFORE TRACK_ID='${track_id}'"
set lorsm_url [dotlrn_community::get_community_url $community_id]lorsm/delivery
set package_id [site_node::get_element -url $lorsm_url -element package_id]
@@ -31,20 +33,6 @@
set return_url [dotlrn_community::get_community_url [dotlrn_community::get_community_id]]
set item_list [lorsm::get_item_list $man_id $user_id]
-
-set last_item_viewed [db_string select_last_item_viewed {
- select ims_item_id
- from views_views v,
- ims_cp_items i,
- ims_cp_organizations o
- where v.viewer_id = :user_id
- and v.object_id = i.ims_item_id
- and i.org_id = o.org_id
- and o.man_id = :man_id
- order by v.last_viewed desc
- limit 1
-} -default ""]
-
set first_item_id [lindex $item_list 0]
set first_item_url ""
set curr_index [expr [lsearch -exact $item_list $item_id]]
@@ -53,6 +41,19 @@
set track_p 1
if {$curr_index < 0} {
+ set lorsm_return_url [get_referrer]
+ ad_set_client_property lorsm lorsm_return_url $lorsm_return_url
+
+ if {$track_id ne "" && $track_id ne "0"} {
+ set last_viewed_item_id [db_string get_last_viewed "select object_id from views_views, lorsm_student_track where viewer_id = :user_id and object_id in ([template::util::tcl_to_sql_list $item_list]) and track_id=:track_id and last_viewed > start_time order by last_viewed desc limit 1" -default ""]
+ if {$last_viewed_item_id ne ""} {
+ set item_id $last_viewed_item_id
+ ad_set_client_property lorsm ims_id $item_id
+ ad_returnredirect [export_vars -base "${lorsm_url}/record-view" -url {{item_id $item_id} track_id man_id}]
+ ad_script_abort
+ }
+ }
+
# start course
# we want the next_url to be the first item
set curr_index -1
@@ -67,6 +68,9 @@
set page_title [db_string get_title "select item_title from ims_cp_items where ims_item_id=:item_id" -default ""]
}
set next_link_text [_ lorsm.Begin]
+ if {$track_id ne ""} {
+ set next_link_text [_ lorsm.Continue]
+ }
set track_p 0
}
# Student tracking
@@ -81,7 +85,12 @@
} elseif {$track_id eq ""} {
set track_id 0
}
-ns_log notice "DAVEB LORSM AFTER TRACK_ID='${track_id}'"
+#ns_log notice "DAVEB LORSM AFTER TRACK_ID='${track_id}'"
+
+if {$track_id ne "0"} {
+ lorsm::track::update_elapsed_seconds -track_id $track_id
+}
+
set prev_item_id [lindex $item_list [expr $curr_index - 1]]
set next_item_id [lindex $item_list [expr $curr_index + 1]]
set prev_url ""
@@ -96,33 +105,62 @@
set last_item_p [expr {$curr_index == [expr {[llength $item_list] - 1}]}]
if {[string match "*assessment*" $__include] && ![string match "*assessment/lib/session*" $__include]} {
set show_next 0
- set header_stuff {
- }
+ template::head::add_css \
+ -href "/resources/assessment/crbForms.css"
+ template::head::add_css \
+ -href "/resources/assessment/assessment.css"
+ set last_item_p 0
} else {
if { $next_item_id eq "" } {
# check for end page
set next_url ${lorsm_url}/end
set last_item_p 0
}
- set header_stuff ""
set show_next 1
}
if {$__include eq "/packages/lorsm/lib/end"} {
+ if {$track_id ne "0"} {
+ns_log notice "HEY PROGRESS BAR END GOING TO TRACK $track_id"
+ lorsm::track::exit -track_id $track_id
+ }
set item_id [lorsm::get_custom_page_ims_item_id -man_id $man_id -type end]
if {$item_id ne ""} {
ad_set_client_property lorsm ims_id $item_id
set __include /packages/lorsm/lib/default
set page_title [db_string get_title "select item_title from ims_cp_items where ims_item_id=:item_id" -default ""]
}
- set next_url [export_vars -base exit {man_id track_id return_url}]
+ set lorsm_return_url [ad_get_client_property lorsm lorsm_return_url]
+ if {$lorsm_return_url ne ""} {
+ set return_url $lorsm_return_url
+ }
+ set next_url [export_vars -base exit {man_id track_id return_url}]
set last_item_p 1
}
-
+if {$item_id eq "" && $__include ne "/packages/lorsm/lib/start" && $__include ne "/packages/lorsm/lib/end"} {
+ ad_returnredirect -message "[_ lorsm.This_course_contains_no_items]" [get_referrer]
+ ad_script_abort
+}
set include_content [template::adp_include $__include $__include_vars]
regsub -all {} $include_content {} include_content
if {$current_title ne ""} {
set page_title $current_title
-}
\ No newline at end of file
+}
+
+
+if {[info exists ::js_order]} {
+ foreach js $::js_order {
+ template::head::add_script \
+ -src $js
+ }
+}
+
+
+template::head::add_style -style \
+".current-item { font-weight: bold; font-size: 1.2em; }
+.next-button { margin: 4px; padding-left: 4px; padding-right: 4px; border-top: 2px solid #fff; border-left: 2px solid #fff; border-right: 2px solid #999; border-bottom: 2px solid #999; background-color: #eee;}
+.next-button a { text-decoration: none; color: black; font-size: .8em; font-family: sans-serif;}"
+
+