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;}" + +