Index: openacs-4/packages/lorsm/www/index.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/index.tcl,v diff -u -r1.7 -r1.8 --- openacs-4/packages/lorsm/www/index.tcl 17 May 2005 17:03:40 -0000 1.7 +++ openacs-4/packages/lorsm/www/index.tcl 26 May 2005 18:43:42 -0000 1.8 @@ -35,7 +35,6 @@ lappend actions "[_ lorsm.lt_Search_Learning_Objec]" [export_vars -base "/search"] "[_ lorsm.lt_Search_for_Learninng_]" lappend actions "[_ lorsm.Available_Courses]" [export_vars -base "shared/"] "[_ lorsm.lt_View_Available_Course]" - template::list::create \ -name d_courses \ -multirow d_courses \ @@ -48,20 +47,21 @@ label "[_ lorsm.Available_Courses]" display_template {@d_courses.course_url;noquote@} display_col course_name + link_html {title "Access Course"} } hasmetadata { label "[_ lorsm.Metadata_1]" display_template {
- @d_courses.hasmetadata@ -
-
- + @d_courses.hasmetadata@ + + +
@d_courses.hasmetadata@
-
+
} - } + } isscorm { label "[_ lorsm.SCORM]" html { align center } @@ -73,9 +73,22 @@ istrackable { label "[_ lorsm.Tracking]" link_url_eval {tracking/?[export_vars man_id]} - link_html {title "[_ lorsm.lt_Track_Students_Progre]" class button} + link_html {title "[_ lorsm.lt_Track_Students_Progre]" class button} html { align center } } + deliverymethod { + label "[_ lorsm.Default_delivery]" + html { align center } + } + hasrtedata { + label "[_ lorsm.SCORM_session]" + display_template { + +
+ @d_courses.hasrtedata@ + + } + } creation_user { label "[_ lorsm.Owner]" display_eval {[person::name -person_id $creation_user]} @@ -112,7 +125,7 @@ cp.identifier, cp.version, case - when hasmetadata = 't' then 'Yes' + when cp.hasmetadata = 't' then 'Yes' else 'No' end as hasmetadata, case @@ -136,10 +149,30 @@ case when cpmc.istrackable = 't' then 'Yes' else 'No' - end as istrackable - + end as istrackable, + -- micheles + -- addition for rte stuff +-- 'Click here' as hasrtedata, + case + when + upper(scorm_type) = 'SCO' + then 'Click here' + else '' + end as hasrtedata, + case + when + upper(scorm_type) = 'SCO' + then 'delivery-scorm' + else 'delivery' + end as deliverymethod + from - ims_cp_manifests cp, acs_objects acs, ims_cp_manifest_class cpmc, lorsm_course_presentation_formats pf + acs_objects acs, + ims_cp_manifest_class cpmc, + lorsm_course_presentation_formats pf, + -- micheles + ims_cp_manifests cp left join (select man_id, max(scorm_type) as scorm_type from ims_cp_resources group by man_id ) as cpr using (man_id) + where cp.man_id = acs.object_id and @@ -151,11 +184,13 @@ and cp.man_id in (select cr.live_revision from cr_items cr where content_type = 'ims_manifest_object') - order by acs.creation_date desc + + order by acs.creation_date desc, cp.man_id asc + } { set ims_md_id $man_id if { [string eq $format_name "default"] } { - set course_url "$course_name" + set course_url "$course_name" } else { set course_url "$course_name" } Index: openacs-4/packages/lorsm/www/tracking-rte/drill-student-2.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/tracking-rte/Attic/drill-student-2.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lorsm/www/tracking-rte/drill-student-2.adp 26 May 2005 18:48:44 -0000 1.1 @@ -0,0 +1,20 @@ + + @page_title;noquote@ + @context;noquote@ +
+Sessions for the selected student: + Standard view +
+
+ + + + +@orgs_list;noquote@ +
+ + + +
+ + Index: openacs-4/packages/lorsm/www/tracking-rte/drill-student-2.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/tracking-rte/Attic/drill-student-2.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lorsm/www/tracking-rte/drill-student-2.tcl 26 May 2005 18:48:44 -0000 1.1 @@ -0,0 +1,183 @@ +# packages/lorsm/www/delivery/toc.tcl + +ad_page_contract { + + Course Delivery Table of Content + + @author Ernie Ghiglione (ErnieG@mm.st) + @creation-date 2004-04-09 + @arch-tag 553390f0-450e-48db-99f0-c5dcb17978b8 + @cvs-id $Id: drill-student-2.tcl,v 1.1 2005/05/26 18:48:44 giancarlol Exp $ +} { + man_id:integer,notnull + user_id:integer,notnull +} -properties { +} -validate { +} -errors { +} + +#### generic for this detail level + +set page_title "Inspecting single user tracks" + +set package_id [ad_conn package_id] +set community_id [dotlrn_community::get_community_id] +set man_id [ ad_get_client_property trackingrte man_id ] +set classname [dotlrn_community::get_community_name $community_id] +set man_name [lorsm::get_course_name -manifest_id $man_id] +#acs_user::get -user_id $user_id -array user +#set student_id $user(username) +set student_name [person::name -person_id $user_id] + +set context [list "$classname,$man_name,$student_name"] + +ad_set_client_property trackingrte currentlydrilleduser $user_id + + +###### + +set table_item "" +set orgs_list "" +set package_id [ad_conn package_id] + +# In order to share courses across classes, we need to share +# file-storage objects across file-storage instances. This has been +# proven to be really tricky. But here we pass the fs_package_id for +# the current community, so we don't have to have permissions for +# other instances of file-storages of other classes. See +# documentation for further details. + +set community_id [dotlrn_community::get_community_id] +set fs_local_package_id [site_node_apm_integration::get_child_package_id \ + -package_id [dotlrn_community::get_package_id $community_id] \ + -package_key "file-storage"\ + ] +set track_id [lorsm::track::istrackable -course_id $man_id -package_id $package_id] + +set extra_vars fs_local_package_id + +db_foreach organizations { + select + org.org_id, + org.org_title as org_title, + org.hasmetadata, + tree_level(o.tree_sortkey) as indent + from + ims_cp_organizations org, acs_objects o + where + org.org_id = o.object_id + and + man_id = :man_id + order by + org_id +} { + + set indent [expr $indent +1] + set missing_text "[_ lorsm.Nothing_here]" + + set table_extra_html { width="100%" } + # the table_def isn't quite neat as I'd like to, but it does the job for a + # simple indexing for delivery. +# set table_def { +# { title "" "no_sort" "Item: $item_id $indent [if {![empty_string_p $identifierref]} {set href \"$item_title\"} else {set href \"AAA $item_title\"}]" } +# } + + append orgs_list "
" + append orgs_list "" + +db_foreach organization_item { + SELECT + o.object_id, + repeat(' ', (tree_level(tree_sortkey) - :indent)* 2) as indent, + i.ims_item_id, + i.item_title as item_title, + i.hasmetadata, + i.ims_item_id as identifierref, + i.type, + i.org_id, + m.fs_package_id, + m.folder_id, + m.course_name + FROM + acs_objects o, ims_cp_items i, ims_cp_manifests m + WHERE + o.object_type = 'ims_item' + AND + i.org_id = :org_id + AND + o.object_id = i.ims_item_id + AND + m.man_id = :man_id + ORDER BY + object_id, tree_sortkey +} { + + + if { [empty_string_p $identifierref] } { + set table_item "" + append item_table "" + append item_table "" + append item_table "" + append item_table "" + append item_table "" + +} + if { [empty_string_p $item_table] } { + append orgs_list ": No scorm data " + append orgs_list "" + } else { + append orgs_list "" + } + +} +append orgs_list "
Organization: $org_title ($org_id)
Item: $item_id $indent AAA $item_title" + #set table_item "Item: $item_id $indent AAA $item_title" + } else { + #set table_item "Item: $item_id $indent [string trim $item_title]" + set table_item "$indent $indent [string trim $item_title]" + } +# set table_item [concat $table_item [ad_table -Tmissing_text $missing_text -Textra_vars {fs_local_package_id track_id} -Ttable_extra_html $table_extra_html $table_def]] + #set table_item [concat $table_item [ad_table -Tmissing_text $missing_text -Textra_vars {fs_local_package_id track_id} -Ttable_extra_html $table_extra_html $table_def]] + + append orgs_list [string trim $table_item] + + + + set item_table "" + +db_foreach student_activity { + select * + from + lorsm_student_track lorsm, lorsm_cmi_core cmi, ims_cp_manifests manif, ims_cp_items imsitems + where + lorsm.community_id=:community_id + and + lorsm.track_id=cmi.track_id + and + lorsm.course_id=:man_id + and + manif.man_id=:man_id + and + cmi.man_id=:man_id + and + cmi.item_id=:identifierref + and + user_id=:user_id + and + imsitems.item_id=cmi.item_id + order by + cmi.track_id asc + } { + set cut_start_time [string range $start_time 0 18] + set total_total_time [expr $total_time+$session_time] + set edit_url [export_vars -base "drill-student-singletrack" {track_id}] + set drill_url [export_vars -base "drill-student-singletrack" {track_id}] + + append item_table "" + append item_table "$score_raw $lesson_status $total_total_time \" $cut_start_time $track_id
" + append orgs_list "" + append orgs_list "" + append orgs_list $item_table + append orgs_list "
scorestatustotal timefirst visitdetail sessions
" + +} Index: openacs-4/packages/lorsm/www/tracking-rte/drill-student-singletrack.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/tracking-rte/Attic/drill-student-singletrack.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lorsm/www/tracking-rte/drill-student-singletrack.adp 26 May 2005 18:48:44 -0000 1.1 @@ -0,0 +1,65 @@ + +@page_title;noquote@ +@context;noquote@ + +
+Data for the selected session: +
+Session data: (for lorsm_cmi_core session: @thistrack@) +
+Data regarding this session: +
  • +id: @student_id@ +
  • +
  • +name: @student_name@ +
  • +
  • +location: @lesson_location@ +
  • +
  • +credit: @credit@ +
  • +
  • +status: @lesson_status@ +
  • +
  • +entry: @entry@ +
  • +
  • +score: @score_raw@ +
  • +
  • +total time: @total_time@ (seconds - last session excluded)
    +
  • +
  • +last session time: @session_time@ (seconds)
    +
  • +
  • +comments: @comments@ +
  • +
  • +mode: @lesson_mode@ +
  • +
  • +launch data: @launch_data@ +
  • +
  • +suspend data: @suspend_data@ +
  • +
  • +Session initialization time stamp: @time_stamp@
    +
  • + +<%= + #time stamp (creation date for this entry must be = first track below) @time_stamp@
    +%> + +
    +Data below is from 'usual' lors tracking and is not provided as scorm compliance. +
    + + +
    + + Index: openacs-4/packages/lorsm/www/tracking-rte/drill-student-singletrack.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/tracking-rte/Attic/drill-student-singletrack.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lorsm/www/tracking-rte/drill-student-singletrack.tcl 26 May 2005 18:48:44 -0000 1.1 @@ -0,0 +1,96 @@ +ad_page_contract { + This page lists tracks from lorsm_student_track and referring record from lorsm_cmi_core. + + @author Michele Slocovich (michele@sii.it) +} { + track_id:integer,notnull +} -properties { +} -validate { +} -errors { +} + +set page_title "Inspecting single track for user" + +set package_id [ad_conn package_id] +set community_id [dotlrn_community::get_community_id] +set man_id [ ad_get_client_property trackingrte man_id ] +set user_id [ad_get_client_property trackingrte currentlydrilleduser] +#acs_user::get -user_id $user_id -array user +#set student_id $user(username) +set student_name [person::name -person_id $user_id] +set classname [dotlrn_community::get_community_name $community_id] +set man_name [lorsm::get_course_name -manifest_id $man_id] + + +set thistrack [ db_1row thiscmitrack " select * from lorsm_cmi_core where track_id=:track_id " ] +set thistrack $track_id + +set context [list "$classname,$man_name,$student_name,session_id: $track_id"] + +set numrows [ db_0or1row istherealready " select min(lorsm.track_id) as mint from lorsm_cmi_core cmi, lorsm_student_track lorsm + where + lorsm.community_id=:community_id + and + lorsm.course_id=:man_id + and + user_id=:user_id + and + lorsm.track_id=cmi.track_id + and + lorsm.track_id>:track_id "] +# seems numrows always 1 when doing an aggregate query +if { $mint == "" } { + set querypart "" +} else { + set querypart " and lorsm.track_id < $mint " +} + +template::list::create \ + -name student_track \ + -multirow student_track \ + -elements { + course_name { + link_url_col edit_url + label "titolo" + } + user_id { + label "student ID" + display_eval {[person::name -person_id $user_id]} + link_url_col drill_url + } + start_time { + label "time student first entered course" + } + end_time { + label "time student left course" + } + track_id { + label "track_id (from lorsm_student_track)" + } + } + +db_multirow \ + student_track single_student_track " + select * + from + lorsm_student_track lorsm, ims_cp_manifests manif + where + lorsm.community_id=$community_id + and + lorsm.course_id=$man_id + and + ( + lorsm.track_id>=$track_id + $querypart + ) + and + manif.man_id=$man_id + and + user_id=$user_id + order by + lorsm.track_id asc " \ + { + set edit_url [export_vars -base "drill-student-singletrack" {track_id}] + set drill_url [export_vars -base "drill-student-singletrack" {track_id}] + } + Index: openacs-4/packages/lorsm/www/tracking-rte/drill-student.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/tracking-rte/Attic/drill-student.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lorsm/www/tracking-rte/drill-student.adp 26 May 2005 18:48:44 -0000 1.1 @@ -0,0 +1,13 @@ + + @page_title;noquote@ + @context;noquote@ +
    +Sessions for the selected student: + Hierachical view +
    +
    + + +
    + + Index: openacs-4/packages/lorsm/www/tracking-rte/drill-student.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/tracking-rte/Attic/drill-student.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lorsm/www/tracking-rte/drill-student.tcl 26 May 2005 18:48:44 -0000 1.1 @@ -0,0 +1,93 @@ +ad_page_contract { + This page lists tracks for a give course for a certain student. + + @author Michele Slocovich (michele@sii.it) +} { + user_id:integer,notnull +} -properties { +} -validate { +} -errors { +} + +set page_title "Inspecting single user tracks" + +set package_id [ad_conn package_id] +set community_id [dotlrn_community::get_community_id] +set man_id [ ad_get_client_property trackingrte man_id ] +set classname [dotlrn_community::get_community_name $community_id] +set man_name [lorsm::get_course_name -manifest_id $man_id] +#acs_user::get -user_id $user_id -array user +#set student_id $user(username) +set student_name [person::name -person_id $user_id] + +set context [list "$classname,$man_name,$student_name"] + +ad_set_client_property trackingrte currentlydrilleduser $user_id + +# course_name { +# label "titolo" +# } +# student_id { +# label "student ID" +# display_eval {[person::name -person_id $user_id]} +# } +### +template::list::create \ + -name student \ + -multirow student \ + -elements { + item_title { + label "Title" + } + score_raw { + label "Score - sent by sco" + } + total_total_time { + label "Total time - sent by sco" + } + cut_start_time { + label "Time student first entered course" + } + lesson_status { + label "lesson status - sent by sco" + } + track_id { + label "session_id. click for detail" + link_url_col drill_url + } + } + #label "session_id (cmi.core.track_id=lorsm.studenttrack.track_id)" + +db_multirow \ + -extend { + edit_url + drill_url + total_total_time + cut_start_time + } student single_student { + select * + from + lorsm_student_track lorsm, lorsm_cmi_core cmi, ims_cp_manifests manif, ims_cp_items imsitems + where + lorsm.community_id=:community_id + and + lorsm.track_id=cmi.track_id + and + lorsm.course_id=:man_id + and + manif.man_id=:man_id + and + cmi.man_id=:man_id + and + user_id=:user_id + and + imsitems.ims_item_id=cmi.item_id + order by + cmi.track_id asc + } { + set cut_start_time [string range $start_time 0 18] + set total_total_time [expr $total_time+$session_time] + set edit_url [export_vars -base "drill-student-singletrack" {track_id}] + set drill_url [export_vars -base "drill-student-singletrack" {track_id}] + } + Index: openacs-4/packages/lorsm/www/tracking-rte/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/tracking-rte/Attic/index.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lorsm/www/tracking-rte/index.adp 26 May 2005 18:48:44 -0000 1.1 @@ -0,0 +1,12 @@ + + @title@ + @context@ + +
    +Runtime Session data: +<%= +#for the course : @man_id@ within the class: @community_id@ +%> +
    + + Index: openacs-4/packages/lorsm/www/tracking-rte/index.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/tracking-rte/Attic/index.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lorsm/www/tracking-rte/index.tcl 26 May 2005 18:48:44 -0000 1.1 @@ -0,0 +1,26 @@ +ad_page_contract { + This page lists all the students for whom we have data in lorsm_cmi_core for a given course + + @author Michele Slocovich (michele@sii.it) +} { + man_id:integer,notnull +} -properties { +} -validate { +} -errors { +} + +set title "Listing students tracks for a course" + +set package_id [ad_conn package_id] +set community_id [dotlrn_community::get_community_id] +set classname [dotlrn_community::get_community_name $community_id] +set man_name [lorsm::get_course_name -manifest_id $man_id] + +set admin_p [dotlrn::user_can_admin_community_p \ + -user_id [ad_conn user_id] \ + -community_id $community_id ] + +ad_set_client_property trackingrte man_id $man_id + +set context [list "$classname,$man_name" ] + Index: openacs-4/packages/lorsm/www/tracking-rte/items.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/tracking-rte/Attic/items.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lorsm/www/tracking-rte/items.adp 26 May 2005 18:48:44 -0000 1.1 @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + +@item_id@
    +@item_title@ +@identifierref@ +
    +
    + + Index: openacs-4/packages/lorsm/www/tracking-rte/items.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/tracking-rte/Attic/items.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lorsm/www/tracking-rte/items.tcl 26 May 2005 18:48:44 -0000 1.1 @@ -0,0 +1,65 @@ +# packages/lorsm/www/delivery/toc.tcl + +ad_page_contract { + + Course Delivery Table of Content + + @author Ernie Ghiglione (ErnieG@mm.st) + @creation-date 2004-04-09 + @arch-tag 553390f0-450e-48db-99f0-c5dcb17978b8 + @cvs-id $Id: items.tcl,v 1.1 2005/05/26 18:48:44 giancarlol Exp $ +} { + man_id:integer,notnull + user_id:integer,notnull +} -properties { +} -validate { +} -errors { +} + + +# In order to share courses across classes, we need to share +# file-storage objects across file-storage instances. This has been +# proven to be really tricky. But here we pass the fs_package_id for +# the current community, so we don't have to have permissions for +# other instances of file-storages of other classes. See +# documentation for further details. + + if { ! [info exists indent] } { set indent 1} + + set org_id 12913 + + set indent [expr $indent +1] + +db_multirow -extend { item_id items_title identifierref } suborgs select_suborgs { + SELECT + o.object_id, + i.item_id, + i.item_title as item_title, + i.hasmetadata, + i.item_id as identifierref, + i.type, + i.org_id, + m.fs_package_id, + m.folder_id, + m.course_name + FROM + acs_objects o, ims_cp_items i, ims_cp_manifests m + WHERE + o.object_type = 'ims_item' + AND + i.org_id = :org_id + AND + o.object_id = i.item_id + AND + m.man_id = :man_id + ORDER BY + object_id, tree_sortkey +} { + set item_id $item_id +} + + + + + #repeat(' ', (tree_level(tree_sortkey) - :indent)* 2) as indent, +#P Index: openacs-4/packages/lorsm/www/tracking-rte/list.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/tracking-rte/Attic/list.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lorsm/www/tracking-rte/list.adp 26 May 2005 18:48:44 -0000 1.1 @@ -0,0 +1,3 @@ +
    + +
    Index: openacs-4/packages/lorsm/www/tracking-rte/list.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/tracking-rte/Attic/list.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lorsm/www/tracking-rte/list.tcl 26 May 2005 18:48:44 -0000 1.1 @@ -0,0 +1,47 @@ +set man_id [ ad_get_client_property trackingrte man_id ] +set community_id [dotlrn_community::get_community_id] + +template::list::create \ + -name students \ + -multirow students \ + -elements { + course_name { + label "Course title" + } + user_id { + label "student ID" + display_eval {[person::name -person_id $user_id]} + link_url_col drill_url + } + max_attained { + label "Max raw score attained by this student" + } + + } + +db_multirow \ + -extend { + edit_url + drill_url + } students which_students { + select user_id, course_name, max(score_raw) as max_attained from + ( + select * + from + lorsm_student_track lorsm, lorsm_cmi_core cmi, ims_cp_manifests manif + where + lorsm.community_id=:community_id + and + lorsm.track_id=cmi.track_id + and + lorsm.course_id=:man_id + and + manif.man_id=:man_id + ) alltracks + group by + user_id, course_name + } { + set edit_url [export_vars -base "drill-student" {user_id}] + set drill_url [export_vars -base "drill-student" {user_id}] + } + Index: openacs-4/packages/lorsm/www/tracking-rte/orgs.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/tracking-rte/Attic/orgs.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lorsm/www/tracking-rte/orgs.adp 26 May 2005 18:48:44 -0000 1.1 @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + +@org_id@
    +@org_title@ + +
    +
    + + Index: openacs-4/packages/lorsm/www/tracking-rte/orgs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/tracking-rte/Attic/orgs.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lorsm/www/tracking-rte/orgs.tcl 26 May 2005 18:48:44 -0000 1.1 @@ -0,0 +1,75 @@ +# packages/lorsm/www/delivery/toc.tcl + +ad_page_contract { + + Course Delivery Table of Content + + @author Ernie Ghiglione (ErnieG@mm.st) + @creation-date 2004-04-09 + @arch-tag 553390f0-450e-48db-99f0-c5dcb17978b8 + @cvs-id $Id: orgs.tcl,v 1.1 2005/05/26 18:48:44 giancarlol Exp $ +} { + man_id:integer,notnull + user_id:integer,notnull +} -properties { +} -validate { +} -errors { +} + + +# In order to share courses across classes, we need to share +# file-storage objects across file-storage instances. This has been +# proven to be really tricky. But here we pass the fs_package_id for +# the current community, so we don't have to have permissions for +# other instances of file-storages of other classes. See +# documentation for further details. + + +db_multirow orgs select_orgs { + select + org.org_id, + org.org_title as org_title, + org.hasmetadata, + tree_level(o.tree_sortkey) as indent + from + ims_cp_organizations org, acs_objects o + where + org.org_id = o.object_id + and + man_id = :man_id + order by + org_id +} { + set org_title $org_title +} + + +db_multirow suborgs select_suborgs { + SELECT + o.object_id, + repeat(' ', (tree_level(tree_sortkey) - :indent)* 2) as indent, + i.item_id, + i.item_title as item_title, + i.hasmetadata, + i.item_id as identifierref, + i.type, + i.org_id, + m.fs_package_id, + m.folder_id, + m.course_name + FROM + acs_objects o, ims_cp_items i, ims_cp_manifests m + WHERE + o.object_type = 'ims_item' + AND + i.org_id = :org_id + AND + o.object_id = i.item_id + AND + m.man_id = :man_id + ORDER BY + object_id, tree_sortkey +} + + + Index: openacs-4/packages/lorsm/www/tracking-rte/toc.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/tracking-rte/Attic/toc.adp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lorsm/www/tracking-rte/toc.adp 26 May 2005 18:48:44 -0000 1.1 @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + +@orgs_list;noquote@ +
    + + Index: openacs-4/packages/lorsm/www/tracking-rte/toc.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lorsm/www/tracking-rte/Attic/toc.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/lorsm/www/tracking-rte/toc.tcl 26 May 2005 18:48:44 -0000 1.1 @@ -0,0 +1,162 @@ +# packages/lorsm/www/delivery/toc.tcl + +ad_page_contract { + + Course Delivery Table of Content + + @author Ernie Ghiglione (ErnieG@mm.st) + @creation-date 2004-04-09 + @arch-tag 553390f0-450e-48db-99f0-c5dcb17978b8 + @cvs-id $Id: toc.tcl,v 1.1 2005/05/26 18:48:44 giancarlol Exp $ +} { + man_id:integer,notnull + user_id:integer,notnull +} -properties { +} -validate { +} -errors { +} + +set table_item "" +set orgs_list "" +set package_id [ad_conn package_id] + +# In order to share courses across classes, we need to share +# file-storage objects across file-storage instances. This has been +# proven to be really tricky. But here we pass the fs_package_id for +# the current community, so we don't have to have permissions for +# other instances of file-storages of other classes. See +# documentation for further details. + +set community_id [dotlrn_community::get_community_id] +set fs_local_package_id [site_node_apm_integration::get_child_package_id \ + -package_id [dotlrn_community::get_package_id $community_id] \ + -package_key "file-storage"\ + ] +set track_id [lorsm::track::istrackable -course_id $man_id -package_id $package_id] + +set extra_vars fs_local_package_id + +db_foreach organizations { + select + org.org_id, + org.org_title as org_title, + org.hasmetadata, + tree_level(o.tree_sortkey) as indent + from + ims_cp_organizations org, acs_objects o + where + org.org_id = o.object_id + and + man_id = :man_id + order by + org_id +} { + + set indent [expr $indent +1] + set missing_text "[_ lorsm.Nothing_here]" + + set table_extra_html { width="100%" } + # the table_def isn't quite neat as I'd like to, but it does the job for a + # simple indexing for delivery. +# set table_def { +# { title "" "no_sort" "Item: $item_id $indent [if {![empty_string_p $identifierref]} {set href \"$item_title\"} else {set href \"AAA $item_title\"}]" } +# } + + append orgs_list "" + append orgs_list "" + +db_foreach organization_item { + SELECT + o.object_id, + repeat(' ', (tree_level(tree_sortkey) - :indent)* 2) as indent, + i.item_id, + i.item_title as item_title, + i.hasmetadata, + i.item_id as identifierref, + i.type, + i.org_id, + m.fs_package_id, + m.folder_id, + m.course_name + FROM + acs_objects o, ims_cp_items i, ims_cp_manifests m + WHERE + o.object_type = 'ims_item' + AND + i.org_id = :org_id + AND + o.object_id = i.item_id + AND + m.man_id = :man_id + ORDER BY + object_id, tree_sortkey +} { + + + if { [empty_string_p $identifierref] } { + set table_item "" + append item_table "" + append item_table "" + append item_table "" + append item_table "" + append item_table "" + +} + if { [empty_string_p $item_table] } { + append orgs_list ": No scorm data
    " + append orgs_list "" + } else { + append orgs_list "" + + } + +} +append orgs_list "
    Organization: $org_title ($org_id)
    Item: $item_id $indent AAA $item_title" + } else { + set table_item "Item: $item_id $indent [string trim $item_title]" + } +# set table_item [concat $table_item [ad_table -Tmissing_text $missing_text -Textra_vars {fs_local_package_id track_id} -Ttable_extra_html $table_extra_html $table_def]] + #set table_item [concat $table_item [ad_table -Tmissing_text $missing_text -Textra_vars {fs_local_package_id track_id} -Ttable_extra_html $table_extra_html $table_def]] + + append orgs_list [string trim $table_item] + + + + set item_table "" + +db_foreach student_activity { + select * + from + lorsm_student_track lorsm, lorsm_cmi_core cmi, ims_cp_manifests manif, ims_cp_items imsitems + where + lorsm.community_id=:community_id + and + lorsm.track_id=cmi.track_id + and + lorsm.course_id=:man_id + and + manif.man_id=:man_id + and + cmi.man_id=:man_id + and + cmi.item_id=:identifierref + and + user_id=:user_id + and + imsitems.ims_item_id=cmi.item_id + order by + cmi.track_id asc + } { + set cut_start_time [string range $start_time 0 18] + set total_total_time [expr $total_time+$session_time] + set edit_url [export_vars -base "drill-student-singletrack" {track_id}] + set drill_url [export_vars -base "drill-student-singletrack" {track_id}] + + append item_table "" + append item_table "$score_raw $lesson_status $total_total_time \" $cut_start_time $track_id
    " + append orgs_list "" + append orgs_list "" + append orgs_list $item_table + append orgs_list "
    scorestatustotal timefirst visitdetail sessions
    " + +}