Index: openacs-4/packages/imsld/catalog/imsld.en_US.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/imsld/catalog/imsld.en_US.ISO-8859-1.xml,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/imsld/catalog/imsld.en_US.ISO-8859-1.xml 18 Nov 2005 08:44:49 -0000 1.8
+++ openacs-4/packages/imsld/catalog/imsld.en_US.ISO-8859-1.xml 23 Nov 2005 11:06:33 -0000 1.9
@@ -163,7 +163,7 @@
<ul> %first_or_next% Activity: %activity_name%
Uploading and processing your course, please wait...
Valid types are learning, support and structure
- Warning: More than one learning object in environment %identifie%. Just one used (the first one)
+ Warning: More than one learning object in environment %identifier%. Just one used (the first one)
We will continue automatically when processing is complete.
When Last Act Completed?
Mail Data
Index: openacs-4/packages/imsld/lib/imsld-chunk.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/imsld/lib/imsld-chunk.adp,v
diff -u -r1.4 -r1.5
--- openacs-4/packages/imsld/lib/imsld-chunk.adp 18 Nov 2005 08:44:50 -0000 1.4
+++ openacs-4/packages/imsld/lib/imsld-chunk.adp 23 Nov 2005 11:06:33 -0000 1.5
@@ -1,6 +1 @@
-@completed_activities;noquote@
-@activity_name;noquote@
-@objectives_ul;noquote@
-@prerequisites_ul;noquote@
-@environment_ul;noquote@
-@activity_urls;noquote@
+
Index: openacs-4/packages/imsld/lib/imsld-chunk.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/imsld/lib/imsld-chunk.tcl,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/imsld/lib/imsld-chunk.tcl 18 Nov 2005 08:44:50 -0000 1.3
+++ openacs-4/packages/imsld/lib/imsld-chunk.tcl 23 Nov 2005 11:06:33 -0000 1.4
@@ -6,10 +6,35 @@
@cvs-id $Id$
}
-set next_activity_list [imsld::next_activity -imsld_item_id $imsld_item_id -return_url [ad_conn url]]
-set objectives_ul [lindex $next_activity_list 0]
-set prerequisites_ul [lindex $next_activity_list 1]
-set activity_name [lindex $next_activity_list 2]
-set activity_urls [lindex $next_activity_list 3]
-set completed_activities [lindex $next_activity_list 4]
-set environment_ul [lindex $next_activity_list 5]
\ No newline at end of file
+imsld::next_activity -imsld_item_id $imsld_item_id -return_url [ad_conn url] imsld_multirow
+
+set elements [list prereqs \
+ [list label "Prerequisites" \
+ display_template "@imsld_multirow.prerequisites;noquote@"]]
+lappend elements objectives \
+ [list label "Learning Objectives" \
+ display_template "@imsld_multirow.objectives;noquote@"]
+lappend elements environments \
+ [list label "Environments" \
+ display_template "@imsld_multirow.environments;noquote@"]
+lappend elements activity_title \
+ [list label "Activity" \
+ display_template "@imsld_multirow.activities_titles;noquote@"]
+lappend elements activity_files \
+ [list label "" \
+ display_template "@imsld_multirow.activities_files;noquote@"]
+lappend elements feedbacks \
+ [list label "Feedback" \
+ display_template "@imsld_multirow.feedbacks;noquote@"]
+lappend elements status \
+ [list label "Status" \
+ display_template "@imsld_multirow.status;noquote@"]
+
+template::list::create \
+ -name imsld_uol \
+ -multirow imsld_multirow \
+ -key imsld_id \
+ -pass_properties { return_url mode base_url bottom_line max_grade_label max_weight_label solution_label submitted_label grade_of_label} \
+ -no_data "no data" \
+ -elements $elements
+
Index: openacs-4/packages/imsld/tcl/imsld-parse-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/imsld/tcl/imsld-parse-procs.tcl,v
diff -u -r1.19 -r1.20
--- openacs-4/packages/imsld/tcl/imsld-parse-procs.tcl 18 Nov 2005 08:44:50 -0000 1.19
+++ openacs-4/packages/imsld/tcl/imsld-parse-procs.tcl 23 Nov 2005 11:06:33 -0000 1.20
@@ -980,7 +980,7 @@
return $item_list
}
# map item with the learning_object
- relation_add imsld_l_object_item_rel $learning_object_id $item_id
+ relation_add imsld_l_object_item_rel $learning_object_id $item_id
}
return $learning_object_id
}
@@ -1475,7 +1475,7 @@
-attributes [list [list feedback_title $feedback_title]]]
set feedback_items [$feedback_desc child all imsld:item]
foreach feedback_item $feedback_items {
- set item_list [imsld::parse_and_create_item -manifest $manifest \
+ set item_list [imsld::parse::parse_and_create_item -manifest $manifest \
-manifest_id $manifest_id \
-item_node $feedback_item \
-parent_id $parent_id \
@@ -1620,7 +1620,7 @@
-attributes [list [list feedback_title $feedback_title]]]
set feedback_items [$feedback_desc child all imsld:item]
foreach feedback_item $feedback_items {
- set item_list [imsld::parse_and_create_item -manifest $manifest \
+ set item_list [imsld::parse::parse_and_create_item -manifest $manifest \
-manifest_id $manifest_id \
-item_node $feedback_item \
-parent_id $parent_id \
@@ -2382,7 +2382,7 @@
-attributes [list [list feedback_title $feedback_title]]]
set feedback_items [$feedback_desc child all imsld:item]
foreach feedback_item $feedback_items {
- set item_list [imsld::parse_and_create_item -manifest $manifest \
+ set item_list [imsld::parse::parse_and_create_item -manifest $manifest \
-manifest_id $manifest_id \
-item_node $feedback_item \
-parent_id $parent_id \
@@ -2518,7 +2518,7 @@
-attributes [list [list feedback_title $feedback_title]]]
set feedback_items [$feedback_desc child all imsld:item]
foreach feedback_item $feedback_items {
- set item_list [imsld::parse_and_create_item -manifest $manifest \
+ set item_list [imsld::parse::parse_and_create_item -manifest $manifest \
-manifest_id $manifest_id \
-item_node $feedback_item \
-parent_id $parent_id \
@@ -2856,7 +2856,7 @@
-attributes [list [list feedback_title $feedback_title]]]
set feedback_items [$feedback_desc child all imsld:item]
foreach feedback_item $feedback_items {
- set item_list [imsld::parse_and_create_item -manifest $manifest \
+ set item_list [imsld::parse::parse_and_create_item -manifest $manifest \
-manifest_id $manifest_id \
-item_node $feedback_item \
-parent_id $cr_folder_id \
Index: openacs-4/packages/imsld/tcl/imsld-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/imsld/tcl/imsld-procs.tcl,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/imsld/tcl/imsld-procs.tcl 18 Nov 2005 08:44:50 -0000 1.8
+++ openacs-4/packages/imsld/tcl/imsld-procs.tcl 23 Nov 2005 11:06:33 -0000 1.9
@@ -255,23 +255,24 @@
ad_proc -public imsld::structure_next_activity {
-activity_structure_id:required
- {-environment_ul ""}
+ {-environment_list ""}
} {
@return The next learning or support activity (and the type) in the activity structure. 0 if there are none (which should never happen)
} {
set min_sort_order ""
set next_activity_id ""
set next_activity_type ""
# get referenced activities
- db_foreach struct_referenced_activities {
+ foreach referenced_activity [db_list_of_lists struct_referenced_activities {
select ar.object_id_two,
ar.rel_type
from acs_rels ar, imsld_activity_structuresi ias
where ar.object_id_one = ias.item_id
and ias.structure_id = :activity_structure_id
order by ar.object_id_two
- } {
- ns_log notice "ahorita mismo mesmamente el type es $rel_type \n"
+ }] {
+ set object_id_two [lindex $referenced_activity 0]
+ set rel_type [lindex $referenced_activity 1]
switch $rel_type {
imsld_as_la_rel {
# find out if is the next one
@@ -332,22 +333,26 @@
}
}
imsld_as_env_rel {
- append environment_ul [imsld::process_environment -environment_item_id $object_id_two]
+ if { [llength $environment_list] } {
+ set environment_list [concat [list $environment_list] [list [imsld::process_environment -environment_item_id $object_id_two]]]
+ } else {
+ set environment_list [imsld::process_environment -environment_item_id $object_id_two]
+ }
}
}
- } if_no_rows {
- ad_return_error "<#_ No referenced activities #>" "<#_ No referenced activities for activity_structure $activity_structure_id. This should never happen."
- ad_script_abort
- }
+ }
+# if { [string eq "" $next_activity_id] } {
+# ad_return_error "<#_ No referenced activities #>" "<#_ No referenced activities for activity_structure $activity_structure_id. This should never happen."
+# ad_script_abort
+# }
if { [string eq $next_activity_type structure] } {
- ns_log notice "llamada recursiva a punto con env $environment_ul"
- set next_activity_list [imsld::structure_next_activity -activity_structure_id $activity_id -environment_ul $environment_ul]
+ set next_activity_list [imsld::structure_next_activity -activity_structure_id $activity_id -environment_list $environment_list]
set next_activity_id [lindex $next_activity_list 0]
set next_activity_type [lindex $next_activity_list 1]
- append environment_ul [lindex $next_activity_list 2]
+ set environment_list [concat $environment_list [lindex $next_activity_list 2]]
}
- return [list $next_activity_id $next_activity_type $environment_ul]
+ return [list $next_activity_id $next_activity_type $environment_list]
}
ad_proc -public imsld::role_part_finished_p {
@@ -410,7 +415,7 @@
} {
returns a list of the associated resources referenced from the given service.
} {
- set services_urls ""
+ set services_list [list]
# get service info
db_1row service_info {
@@ -451,9 +456,9 @@
} {
append one_service_url "[imsld::process_resource -resource_item_id $resource_item_id]"
if { [string eq "" $one_service_url] } {
- append services_urls "[_ imsld.lt_li_desc_no_file_assoc]"
+ lappend services_list "[_ imsld.lt_li_desc_no_file_assoc]"
} else {
- append services_urls $one_service_url
+ set services_list [concat [list $services_list] [list $one_service_url]]
}
} if_no_rows {
ns_log notice "[_ imsld.lt_li_desc_no_file_assoc]"
@@ -463,7 +468,7 @@
return "not_implemented_yet"
}
}
- return "$services_urls"
+ return "$services_list"
}
ad_proc -public imsld::process_environment {
@@ -479,7 +484,6 @@
set root_folder_id [fs::get_root_folder -package_id $fs_package_id]
- ns_log notice "es $environment_item_id \n"
# get environment info
db_1row environment_info {
select env.identifier as environment_title,
@@ -489,8 +493,7 @@
and content_revision__is_live(env.environment_id) = 't'
}
- set environment_ul " \[ $environment_title"
-
+ set environment_learning_objects_list [list]
if { [db_0or1row get_learning_object_info {
select item_id as learning_object_item_id,
learning_object_id,
@@ -502,14 +505,13 @@
# learning object item. get the files associated
set linear_item_list [db_list item_linear_list {
select ii.imsld_item_id
- from imsld_items ii, imsld_learning_objects lo
+ from imsld_items ii,
cr_items cr,
acs_rels ar
- where and ar.object_id_one = :learning_object_item_id
+ where ar.object_id_one = :learning_object_item_id
and ar.object_id_two = cr.item_id
and cr.live_revision = ii.imsld_item_id
}]
-
foreach imsld_item_id $linear_item_list {
db_foreach env_nested_associated_items {
select cpr.resource_id,
@@ -524,19 +526,20 @@
and tree_right((select imsld_tree_sortkey from imsld_items where imsld_item_id = :imsld_item_id))
or ii.imsld_item_id = :imsld_item_id)
} {
- set one_environment_ul "[imsld::process_resource -resource_item_id $resource_item_id] "
- if { [string eq "" $one_environment_ul] } {
- append environment_ul "[_ imsld.lt_li_desc_no_file_assoc]"
+ set one_learning_object_list [imsld::process_resource -resource_item_id $resource_item_id]
+ if { [string eq "" $one_learning_object_list] } {
+ lappend environment_learning_objects_list "[_ imsld.lt_li_desc_no_file_assoc]"
} else {
- append environment_ul $one_environment_ul
+ set environment_learning_objects_list [concat [list $environment_learning_objects_list] \
+ [list $one_learning_object_list]]
}
} if_no_rows {
ns_log notice "[_ imsld.lt_li_desc_no_file_assoc]"
}
}
}
-
# services
+ set environment_services_list [list]
if { [db_0or1row get_service_info {
select service_id,
item_id as service_item_id,
@@ -546,29 +549,33 @@
where environment_id = :environment_item_id
and content_revision__is_live(service_id) = 't'
}] } {
- append environment_ul "[imsld::process_service -service_item_id $service_item_id] "
+ set environment_services_list [imsld::process_service -service_item_id $service_item_id]
}
+ set nested_environment_list [list]
# environments
db_foreach nested_environment {
select ar.object_id_two as nested_environment_item_id
from acs_rels ar
where ar.object_id_one = :environment_item_id
and ar.rel_type = 'imsld_env_env_rel'
} {
- append environment_ul [imsld::process_environment -environment_item_id $nested_environment_item_id]
+ set one_nested_environment_list [imsld::process_environment -environment_item_id $nested_environment_item_id]
+ set nested_environment_list [concat [list $nested_environment_list] \
+ [list "Nested Environment: [lindex $one_nested_environment_list 0]" \
+ [lindex $one_nested_environment_list 1] \
+ [lindex $one_nested_environment_list 2] \
+ [lindex $one_nested_environment_list 3]]]
}
-
- append environment_ul "\]"
- return "$environment_ul"
+ return [list $environment_title $environment_learning_objects_list $environment_services_list $nested_environment_list]
}
ad_proc -public imsld::process_learning_objective {
{-imsld_item_id ""}
{-activity_item_id ""}
{-community_id ""}
} {
- returns a list of the associated resources, files and environments referenced from the learning objective of the given activity or ims-ld
+ returns a list with the objective title and the associated resources, files and environments referenced from the learning objective of the given activity or ims-ld
} {
set community_id [expr { [string eq "" $community_id] ? "[dotlrn_community::get_community_id]" : $community_id }]
# Gets file-storage root folder_id
@@ -608,10 +615,8 @@
where lo.item_id = :learning_objective_item_id
and content_revision__is_live(lo.learning_objective_id) = 't'
}
+ set objective_items_list [list]
- # learning object item. get the files associated
- set objective_ul "$objective_title"
-
# get the items associated with the learning objective
set linear_item_list [db_list item_linear_list {
select ii.imsld_item_id
@@ -622,7 +627,7 @@
and cr.live_revision = ii.imsld_item_id
}]
foreach imsld_item_id $linear_item_list {
- db_foreach env_nested_associated_items {
+ db_foreach lo_nested_associated_items {
select cpr.resource_id,
cpr.item_id as resource_item_id,
cpr.type as resource_type
@@ -637,15 +642,15 @@
} {
set one_objective_urls "[imsld::process_resource -resource_item_id $resource_item_id]"
if { [string eq "" $one_objective_urls] } {
- append objective_ul "[_ imsld.lt_li_desc_no_file_assoc]"
+ lappend objective_items_list "[_ imsld.lt_li_desc_no_file_assoc]"
} else {
- append objective_ul "$one_objective_urls "
+ set objective_items_list [concat [list $objective_items_list] [list $one_objective_urls]]
}
} if_no_rows {
ns_log notice "[_ imsld.lt_li_desc_no_file_assoc]"
}
}
- return "$objective_ul"
+ return [list $objective_title $objective_items_list]
}
ad_proc -public imsld::process_prerequisite {
@@ -694,8 +699,7 @@
and content_revision__is_live(pre.prerequisite_id) = 't'
}
- # prerequisite item. get the files associated
- set prerequisite_ul "$prerequisite_title"
+ set prerequisite_items_list [list]
# get the items associated with the learning objective
set linear_item_list [db_list item_linear_list {
@@ -707,7 +711,7 @@
and cr.live_revision = ii.imsld_item_id
}]
foreach imsld_item_id $linear_item_list {
- db_foreach env_nested_associated_items {
+ db_foreach prereq_nested_associated_items {
select cpr.resource_id,
cpr.item_id as resource_item_id,
cpr.type as resource_type
@@ -722,17 +726,75 @@
} {
set one_prerequisite_urls "[imsld::process_resource -resource_item_id $resource_item_id]"
if { [string eq "" $one_prerequisite_urls] } {
- append prerequisite_ul "[_ imsld.lt_li_desc_no_file_assoc]"
+ lappend prerequisite_items_list "[_ imsld.lt_li_desc_no_file_assoc]"
} else {
- append prerequisite_ul "$one_prerequisite_urls "
+ set prerequisite_items_list [concat [list $prerequisite_items_list] [list $one_prerequisite_urls]]
}
} if_no_rows {
ns_log notice "[_ imsld.lt_li_desc_no_file_assoc]"
}
}
- return "$prerequisite_ul"
+ return [list $prerequisite_title $prerequisite_items_list]
}
+ad_proc -public imsld::process_feedback {
+ {-on_completion_item_id ""}
+ {-community_id ""}
+} {
+ returns a list with the feedback title and the associated resources, files and environments referenced from the on_completion element.
+} {
+ set community_id [expr { [string eq "" $community_id] ? "[dotlrn_community::get_community_id]" : $community_id }]
+ # Gets file-storage root folder_id
+ set fs_package_id [site_node_apm_integration::get_child_package_id \
+ -package_id [dotlrn_community::get_package_id $community_id] \
+ -package_key "file-storage"]
+ set root_folder_id [fs::get_root_folder -package_id $fs_package_id]
+
+ set feedback_item_id ""
+
+ # get on completion info
+ db_1row feedback_info {
+ select coalesce(oc.feedback_title, oc.title) as feedback_title
+ from imsld_on_completioni oc
+ where oc.item_id = :on_completion_item_id
+ and content_revision__is_live(oc.on_completion_id) = 't'
+ }
+
+ set feedback_items_list [list]
+ # get the items associated with the feedback
+ set linear_item_list [db_list item_linear_list {
+ select ii.imsld_item_id
+ from imsld_items ii,
+ cr_items cr, acs_rels ar
+ where ar.object_id_one = :on_completion_item_id
+ and ar.object_id_two = cr.item_id
+ and cr.live_revision = ii.imsld_item_id
+ }]
+ foreach imsld_item_id $linear_item_list {
+ db_foreach feedback_nested_associated_items {
+ select cpr.resource_id,
+ cpr.item_id as resource_item_id,
+ cpr.type as resource_type
+ from imsld_cp_resourcesi cpr, imsld_itemsi ii,
+ acs_rels ar
+ where ar.object_id_one = ii.item_id
+ and ar.object_id_two = cpr.item_id
+ and content_revision__is_live(cpr.resource_id) = 't'
+ and (imsld_tree_sortkey between tree_left((select imsld_tree_sortkey from imsld_items where imsld_item_id = :imsld_item_id))
+ and tree_right((select imsld_tree_sortkey from imsld_items where imsld_item_id = :imsld_item_id))
+ or ii.imsld_item_id = :imsld_item_id)
+ } {
+ set one_feedback_urls [imsld::process_resource -resource_item_id $resource_item_id]
+ if { [string eq "" $one_feedback_urls] } {
+ lappend feedback_items_list "[_ imsld.lt_li_desc_no_file_assoc]"
+ } else {
+ set feedback_items_list [concat [list $feedback_items_list] [list $one_feedback_urls]]
+ }
+ }
+ }
+ return [list $feedback_title $feedback_items_list]
+}
+
ad_proc -public imsld::process_resource {
-resource_item_id
{-community_id ""}
@@ -754,12 +816,29 @@
set files_lis ""
switch $resource_type {
forum {
+ # forums package call
set forums_package_id [site_node_apm_integration::get_child_package_id \
-package_id [dotlrn_community::get_package_id $community_id] \
-package_key "forums"]
set file_url "[apm_package_url_from_id $forums_package_id]forum-view?[ad_export_vars { { forum_id $acs_object_id } }]"
- append files_lis " $identifier "
+ set forum_title [db_exec_plsql get_froum_title {
+ select acs_object__name(:acs_object_id)
+ }]
+ append files_lis " $forum_title "
}
+ imsqti_xmlv1p0 {
+ # assessment package call
+ set assessment_package_id [site_node_apm_integration::get_child_package_id \
+ -package_id [dotlrn_community::get_package_id $community_id] \
+ -package_key "assessment"]
+ set file_url "[apm_package_url_from_id $assessment_package_id]assessment?[ad_export_vars { { assessment_id $acs_object_id } }]"
+ set assessment_title [db_string get_assessment_title {
+ select title from as_assessmentsi
+ where item_id = :acs_object_id
+ and content_revision__is_live(assessment_id) = 't'
+ }]
+ append files_lis " $assessment_title "
+ }
webcontent -
default {
# Gets file-storage root folder_id
@@ -790,18 +869,229 @@
where fs.live_revision = :imsld_file_id
}]
set file_url "[apm_package_url_from_id $fs_package_id]view/${file_url}"
- append files_lis " $file_name "
+ append files_lis " $file_name "
}
}
}
return $files_lis
}
+ad_proc -public imsld::process_learning_activity {
+ -activity_item_id:required
+ {-community_id ""}
+} {
+ @param
+ @option user_id default [ad_conn user_id]
+
+ @return The list (activity_name, list of associated urls) of the next activity for the user in the IMS-LD.
+} {
+ db_1row activity_info {
+ select on_completion_id as on_completion_item_id,
+ prerequisite_id as prerequisite_item_id,
+ learning_objective_id as learning_objective_item_id,
+ activity_id
+ from imsld_learning_activitiesi
+ where item_id = :activity_item_id
+ and content_revision__is_live(activity_id) = 't'
+ }
+
+ # get environments
+ set environments_list [list]
+ set associated_environments_list [db_list la_associated_environments {
+ select ar.object_id_two as environment_item_id
+ from acs_rels ar
+ where ar.object_id_one = :activity_item_id
+ and ar.rel_type = 'imsld_la_env_rel'
+ order by ar.object_id_two
+ }]
+ foreach environment_item_id $associated_environments_list {
+ if { [llength $environments_list] } {
+ set environments_list [concat [list $environments_list] \
+ [list [imsld::process_environment -environment_item_id $environment_item_id]]]
+ } else {
+ set environments_list [imsld::process_environment -environment_item_id $environment_item_id]
+ }
+ }
+
+ # prerequisites
+ set prerequisites_list [list]
+ if { ![string eq "" $prerequisite_item_id] } {
+ set prerequisites_list [imsld::process_prerequisite -activity_item_id $activity_item_id]
+ }
+
+ # learning objectives
+ set objectives_list [list]
+ if { ![string eq "" $learning_objective_item_id] } {
+ set objectives_list [imsld::process_learning_objective -activity_item_id $activity_item_id]
+ }
+
+ set activity_items_list [list]
+ # get the items associated with the activity
+ set linear_item_list [db_list item_linear_list {
+ select ii.imsld_item_id
+ from imsld_items ii, imsld_activity_descs lad, imsld_learning_activitiesi la,
+ cr_items cr1, cr_items cr2,
+ acs_rels ar
+ where la.item_id = :activity_item_id
+ and la.activity_description_id = cr1.item_id
+ and cr1.live_revision = lad.description_id
+ and ar.object_id_one = la.activity_description_id
+ and ar.object_id_two = cr2.item_id
+ and cr2.live_revision = ii.imsld_item_id
+ }]
+ foreach imsld_item_id $linear_item_list {
+ db_foreach la_nested_associated_items {
+ select cpr.resource_id,
+ cpr.item_id as resource_item_id,
+ cpr.type as resource_type
+ from imsld_cp_resourcesi cpr, imsld_itemsi ii,
+ acs_rels ar
+ where ar.object_id_one = ii.item_id
+ and ar.object_id_two = cpr.item_id
+ and content_revision__is_live(cpr.resource_id) = 't'
+ and (imsld_tree_sortkey between tree_left((select imsld_tree_sortkey from imsld_items where imsld_item_id = :imsld_item_id))
+ and tree_right((select imsld_tree_sortkey from imsld_items where imsld_item_id = :imsld_item_id))
+ or ii.imsld_item_id = :imsld_item_id)
+ } {
+ set one_activity_urls "[imsld::process_resource -resource_item_id $resource_item_id]"
+ if { [string eq "" $one_activity_urls] } {
+ lappend activity_items_list "[_ imsld.lt_li_desc_no_file_assoc]"
+ } else {
+ set activity_items_list [concat [list $activity_items_list] [list $one_activity_urls]]
+ }
+ } if_no_rows {
+ ns_log notice "[_ imsld.lt_li_desc_no_file_assoc]"
+ }
+ }
+
+ # feedback
+ set feedbacks_list [list]
+ if { ![string eq "" $on_completion_item_id] } {
+ set feedbacks_list [imsld::process_feedback -on_completion_item_id $on_completion_item_id]
+ }
+ return [list $prerequisites_list \
+ $objectives_list \
+ $environments_list \
+ $activity_items_list \
+ $feedbacks_list]
+}
+
+ad_proc -public imsld::process_support_activity {
+ -activity_item_id:required
+ {-community_id ""}
+} {
+ @param activity_item_id
+
+ @return The list of items (resources, feedback, environments) associated with the support activity
+} {
+ db_1row activity_info {
+ select on_completion_id as on_completion_item_id,
+ activity_id
+ from imsld_support_activitiesi
+ where item_id = :activity_item_id
+ and content_revision__is_live(activity_id) = 't'
+ }
+
+ # get environments
+ set environments_list [list]
+ set associated_environments_list [db_list sa_associated_environments {
+ select ar.object_id_two as environment_item_id
+ from acs_rels ar
+ where ar.object_id_one = :activity_item_id
+ and ar.rel_type = 'imsld_sa_env_rel'
+ order by ar.object_id_two
+ }]
+ foreach environment_item_id $associated_environments_list {
+ if { [llength $environments_list] } {
+ set environments_list [concat [list $environments_list] \
+ [list [imsld::process_environment -environment_item_id $environment_item_id]]]
+ } else {
+ set environments_list [imsld::process_environment -environment_item_id $environment_item_id]
+ }
+ }
+
+ set activity_items_list [list]
+ # get the items associated with the activity
+ set linear_item_list [db_list item_linear_list {
+ select ii.imsld_item_id
+ from imsld_items ii, imsld_activity_descs sad, imsld_support_activitiesi sa,
+ cr_items cr1, cr_items cr2,
+ acs_rels ar
+ where sa.item_id = :activity_item_id
+ and sa.activity_description_id = cr1.item_id
+ and cr1.live_revision = sad.description_id
+ and ar.object_id_one = sa.activity_description_id
+ and ar.object_id_two = cr2.item_id
+ and cr2.live_revision = ii.imsld_item_id
+ }]
+ foreach imsld_item_id $linear_item_list {
+ db_foreach sa_nested_associated_items {
+ select cpr.resource_id,
+ cpr.item_id as resource_item_id,
+ cpr.type as resource_type
+ from imsld_cp_resourcesi cpr, imsld_itemsi ii,
+ acs_rels ar
+ where ar.object_id_one = ii.item_id
+ and ar.object_id_two = cpr.item_id
+ and content_revision__is_live(cpr.resource_id) = 't'
+ and (imsld_tree_sortkey between tree_left((select imsld_tree_sortkey from imsld_items where imsld_item_id = :imsld_item_id))
+ and tree_right((select imsld_tree_sortkey from imsld_items where imsld_item_id = :imsld_item_id))
+ or ii.imsld_item_id = :imsld_item_id)
+ } {
+ set one_activity_urls "[imsld::process_resource -resource_item_id $resource_item_id]"
+ if { [string eq "" $one_activity_urls] } {
+ lappend activity_items_list "[_ imsld.lt_li_desc_no_file_assoc]"
+ } else {
+ set activity_items_list [concat [list $activity_items_list] [list $one_activity_urls]]
+ }
+ } if_no_rows {
+ ns_log notice "[_ imsld.lt_li_desc_no_file_assoc]"
+ }
+ }
+
+ # feedback
+ set feedbacks_list [list]
+ if { ![string eq "" $on_completion_item_id] } {
+ set feedbacks_list [imsld::process_feedback -on_completion_item_id $on_completion_item_id]
+ }
+ return [list $environments_list \
+ $activity_items_list \
+ $feedbacks_list]
+}
+
+ad_proc -public imsld::process_activity_structure {
+ -structure_item_id:required
+} {
+ @param structure_item_id
+
+ @return The list of items (environments) associated with the activity structure
+} {
+ # get environments
+ set environments_list [list]
+ set associated_environments_list [db_list sa_associated_environments {
+ select ar.object_id_two as environment_item_id
+ from acs_rels ar
+ where ar.object_id_one = :structure_item_id
+ and ar.rel_type = 'imsld_as_env_rel'
+ order by ar.object_id_two
+ }]
+ foreach environment_item_id $associated_environments_list {
+ if { [llength $environments_list] } {
+ set environments_list [concat [list $environments_list] \
+ [list [imsld::process_environment -environment_item_id $environment_item_id]]]
+ } else {
+ set environments_list [imsld::process_environment -environment_item_id $environment_item_id]
+ }
+ }
+ return [list $environments_list]
+}
+
ad_proc -public imsld::next_activity {
-imsld_item_id:required
{-user_id ""}
{-community_id ""}
-return_url
+ imsld_multirow
} {
@param imsld_item_id
@option user_id default [ad_conn user_id]
@@ -810,17 +1100,40 @@
@return The list (activity_name, list of associated urls) of the next activity for the user in the IMS-LD.
} {
+ template::multirow create imsld_multirow prerequisites objectives environments activities_titles activities_files feedbacks status
+ # environments
+ set environments_titles ""
+ set environments_files ""
+
db_1row get_ismld_info {
select imsld_id
from imsld_imsldsi
where item_id = :imsld_item_id
and content_revision__is_live(imsld_id) = 't'
}
- set completed_activities ""
- set first_p 0
- set objectives_ul ""
- set prerequisites_ul ""
set user_id [expr { [string eq "" $user_id] ? [ad_conn user_id] : $user_id }]
+
+ # global prerequisites and learning objectives
+ set prerequisites_list [imsld::process_prerequisite -imsld_item_id $imsld_item_id]
+ set prerequisites ""
+ if { [llength $prerequisites_list] } {
+ set prerequisites "
[lindex $prerequisites_list 0]"
+ append prerequisites "- [join [lindex $prerequisites_list 1] "
- "]"
+ append prerequisites "
"
+ regsub -all {[ ]*} $prerequisites "" prerequisites
+ }
+ set objectives_list [imsld::process_learning_objective -imsld_item_id $imsld_item_id]
+ set objectives ""
+ if { [llength $objectives_list] } {
+ set objectives "[lindex $objectives_list 0]"
+ append objectives "- [join [lindex $objectives_list 1] "
- "]"
+ append objectives "
"
+ regsub -all {[ ]*} $objectives "" objectives
+ }
+ if { [string length "${prerequisites}${objectives}"] } {
+ template::multirow append imsld_multirow $prerequisites $objectives {} {} {} {} {}
+ }
+
if { ![db_string get_last_entry {
select count(*)
from imsld_status_user
@@ -844,14 +1157,12 @@
and ia.sort_order = (select min(ia2.sort_order) from imsld_acts ia2 where ia2.play_id = cr1.item_id)
and irp.sort_order = (select min(irp2.sort_order) from imsld_role_parts irp2 where irp2.act_id = cr2.item_id)
}
-
- set objectives_ul [imsld::process_learning_objective -imsld_item_id $imsld_item_id]
- set prerequisites_ul [imsld::process_prerequisite -imsld_item_id $imsld_item_id]
} else {
# get the completed activities in order to display them
# save the last one (the last role_part_id of the last completed activity) because we will use it latter
- set completed_activities "[_ imsld.lt_ul_Completed_Activiti]"
- db_foreach completed_activity {
+
+ # JOPEZ: need to split the db_foreach from the body because of db pools
+ foreach completed_activity [db_list_of_lists completed_activity {
select stat.completed_id,
stat.role_part_id,
stat.type,
@@ -862,40 +1173,120 @@
and stat.user_id = :user_id
and stat.role_part_id = rp.role_part_id
order by stat.finished_date
- } {
+ }] {
+ set completed_id [lindex $completed_activity 0]
+ set role_part_id [lindex $completed_activity 1]
+ set type [lindex $completed_activity 2]
+ set sort_order [lindex $completed_activity 3]
+ set act_id [lindex $completed_activity 4]
+ # environments
+ set environment_list [list]
+ set environments ""
switch $type {
learning {
db_1row get_learning_activity_info {
- select coalesce(title,identifier) as activity_title
+ select coalesce(title,identifier) as activity_title,
+ item_id as activity_item_id
from imsld_learning_activitiesi
where activity_id = :completed_id
}
- append completed_activities "[_ imsld.li_activity_title_li]"
+ set activities_list [imsld::process_learning_activity -activity_item_id $activity_item_id]
+ set prerequisites ""
+ if { [llength [lindex $activities_list 0]] } {
+ set prerequisites "[lindex [lindex $activities_list 0] 0]"
+ append prerequisites "- [join [lindex [lindex $activities_list 0] 1] "
- "]"
+ append prerequisites "
"
+ regsub -all {[ ]*} $prerequisites "" prerequisites
+ }
+ set objectives ""
+ if { [llength [lindex $activities_list 1]] } {
+ set objectives "[lindex [lindex $activities_list 1] 0]"
+ append objectives "- [join [lindex [lindex $activities_list 1] 1] "
- "]"
+ append objectives "
"
+ regsub -all {[ ]*} $objectives "" objectives
+ }
+
+ if { [llength [lindex $activities_list 2]] } {
+ set environments "[lindex [lindex $activities_list 2] 0]"
+ append environments "- [join [lindex [lindex $activities_list 2] 1] "
- "]"
+ append environments "
- [join [lindex [lindex $activities_list 2] 2] "
- "]"
+ append environments "
- [join [lindex [lindex $activities_list 2] 3] "
- "]"
+ append environments "
"
+ regsub -all {[ ]*} $environments "" environments
+ # foreach nested_environment {
+ # append environments_files [expr { [llength [lindex [lindex $activities_list 2] 3]] ? [join [lindex [lindex $activities_list 2] 2] "
"] : "" }]
+ # }
+ }
+
+ set feedbacks ""
+ if { [llength [lindex $activities_list 4]] } {
+ set feedbacks "[lindex [lindex $activities_list 4] 0]"
+ append feedbacks "- [join [lindex [lindex $activities_list 4] 1] "
- "]"
+ append feedbacks "
"
+ regsub -all {[ ]*} $feedbacks "" feedbacks
+ }
+ template::multirow append imsld_multirow $prerequisites \
+ $objectives \
+ $environments \
+ $activity_title \
+ [join [lindex $activities_list 3] "
"] \
+ $feedbacks \
+ finished
}
support {
db_1row get_support_activity_info {
- select coalesce(title,identifier) as activity_title
+ select coalesce(title,identifier) as activity_title,
+ item_id as activity_item_id
from imsld_support_activitiesi
where activity_id = :completed_id
}
- append completed_activities "[_ imsld.li_activity_title_li]"
+ set activities_list [imsld::process_support_activity -activity_item_id $activity_item_id]
+
+ if { [llength [lindex $activities_list 0]] } {
+ set environments "[lindex [lindex $activities_list 0] 0]"
+ append environments "- [join [lindex [lindex $activities_list 0] 1] "
- "]"
+ append environments "
- [join [lindex [lindex $activities_list 0] 2] "
- "]"
+ append environments "
- [join [lindex [lindex $activities_list 0] 3] "
- "]"
+ append environments "
"
+ regsub -all {[ ]*} $environments "" environments
+ }
+
+ set feedbacks ""
+ if { [llength [lindex $activities_list 2]] } {
+ set feedbacks "[lindex [lindex $activities_list 2] 0]"
+ append feedbacks "- [join [lindex [lindex $activities_list 2] 1] "
- "]"
+ append feedbacks "
"
+ regsub -all {[ ]*} $feedbacks "" feedbacks
+ }
+ template::multirow append imsld_multirow {} \
+ {} \
+ $environments \
+ $activity_title \
+ [join [lindex $activities_list 1] "
"] \
+ $feedbacks \
+ finished
}
structure {
db_1row get_support_activity_info {
- select coalesce(title,identifier) as activity_title
+ select coalesce(title,identifier) as activity_title,
+ item_id as structure_item_id
from imsld_activity_structuresi
where structure_id = :completed_id
}
- append completed_activities "[_ imsld.li_activity_title_li]"
+ set structure_list [imsld::process_activity_structure -structure_item_id $structure_item_id]
+ if { [llength [lindex $structure_list 0]] } {
+ set environments "[lindex [lindex $structure_list 0] 0]"
+ append environments "- [join [lindex [lindex $structure_list 0] 1] "
- "]"
+ append environments "
- [join [lindex [lindex $structure_list 0] 2] "
- "]"
+ append environments "
- [join [lindex [lindex $structure_list 0] 3] "
- "]"
+ append environments "
"
+ regsub -all {[ ]*} $environments "" environments
+ }
+ template::multirow append imsld_multirow {} {} $environments $activity_title {} {} finished
}
- default {
- ad_return_error "[_ imsld.lt_Invalid_type_type_in_]" "[_ imsld.lt_Valid_types_are_learn]"
- ad_script_abort
- }
}
}
- append completed_activities ""
-
+
# the last completed is now stored in completed_id, let's find out the next role_part_id that the user has to work on.
# Procedure (knowing that the info of the last role_part are stored in the last iteration vars):
# 0. check if all the activities referenced by the current role_part_id are finished
@@ -955,21 +1346,19 @@
and rp.sort_order = (select min(irp2.sort_order) from imsld_role_parts irp2 where irp2.act_id = ia.item_id)
}] } {
# there is no more to search, we reached the end of the unit of learning
- return [list {} {} "[_ imsld.finished]" {} "$completed_activities" {}]
+ template::multirow append imsld_multirow {} {} {} {} {} {} {IMS LD finished}
+ return [template::multirow size imsld_multirow]
}
}
}
}
}
-
# find the next activity referenced by the role_part
# (learning_activity, support_activity, activity_structure)
# 1. if it is a learning or support activity, no problem, find the associated files and return the lists
# 2. if it is an activity structure we have verify which activities are already completed and return the next
# activity in the activity structure, handling the case when the next activity is also an activity structure
- set environment_ul ""
-
db_1row get_role_part_activity {
select case
when learning_activity_id is not null
@@ -994,158 +1383,110 @@
where role_part_id = :role_part_id
}
+ # environments
+ set environment_list [list]
+ set environments ""
+ # get the environments associated to the role_part
+ if { ![string eq "" $rp_environment_item_id] } {
+ set environment_list [concat [list $environment_list] [imsld::process_environment -environment_item_id $rp_environment_item_id]]
+ }
+
# activity structure
if { [string eq $activity_type structure] } {
# activity structure. we have to look for the next learning or support activity
- set activity_list [imsld::structure_next_activity -activity_structure_id $activity_id -environment_ul $environment_ul]
+ set activity_list [imsld::structure_next_activity -activity_structure_id $activity_id -environment_list $environment_list]
set activity_id [lindex $activity_list 0]
set activity_type [lindex $activity_list 1]
- append environment_ul [lindex $activity_list 2]
+ if { [llength $environment_list] } {
+ set environment_list [concat [list $environment_list] [lindex $activity_list 2]]
+ } else {
+ set environment_list [lindex $activity_list 2]
+ }
}
-
+ if { [llength $environment_list] } {
+ set environments "[lindex $environment_list 0]"
+ append environments "- [join [lindex $environment_list 1] "
- "]"
+ append environments "
- [join [lindex $environment_list 2] "
- "]"
+ append environments "
- [join [lindex $environment_list 3] "
- >"]"
+ append environments "
"
+ regsub -all {[ ]*} $environments "" environments
+ }
+
# learning activity
if { [string eq $activity_type learning] } {
db_1row learning_activity {
select la.activity_id,
la.item_id as activity_item_id,
- la.title,
+ la.title as activity_title,
la.identifier,
la.user_choice_p
from imsld_learning_activitiesi la
where la.activity_id = :activity_id
}
-
- # get environments
- db_foreach la_associated_environments {
- select ar.object_id_two as environment_item_id
- from acs_rels ar
- where ar.object_id_one = :activity_item_id
- and ar.rel_type = 'imsld_la_env_rel'
- order by ar.object_id_two
- } {
- append environment_ul [imsld::process_environment -environment_item_id $environment_item_id]
+ set activities_list [imsld::process_learning_activity -activity_item_id $activity_item_id]
+ set prerequisites ""
+ if { [llength [lindex $activities_list 0]] } {
+ set prerequisites "[lindex [lindex $activities_list 0] 0]"
+ append prerequisites "- [join [lindex [lindex $activities_list 0] 1] "
- "]"
+ append prerequisites "
"
+ regsub -all {[ ]*} $prerequisites "" prerequisites
}
- append objectives_ul [imsld::process_learning_objective -activity_item_id $activity_item_id]
- append prerequisites_ul [imsld::process_prerequisite -activity_item_id $activity_item_id]
-
- # associated files of the activity description of the learning activity
- set activity_name [expr { [string eq "" $title] ? $identifier : $title }]
- set first_or_next [expr { $first_p ? "First" : "Next"}]
- set activity_urls "[_ imsld.lt_ul_Next_Activity_acti] \[ finish \]"
-
- # get the items associated with the activity
- set linear_item_list [db_list item_linear_list {
- select ii.imsld_item_id
- from imsld_items ii, imsld_activity_descs lad, imsld_learning_activities la,
- cr_items cr1, cr_items cr2,
- acs_rels ar
- where la.activity_id = :activity_id
- and la.activity_description_id = cr1.item_id
- and cr1.live_revision = lad.description_id
- and ar.object_id_one = la.activity_description_id
- and ar.object_id_two = cr2.item_id
- and cr2.live_revision = ii.imsld_item_id
- }]
- foreach imsld_item_id $linear_item_list {
- db_foreach la_nested_associated_items {
- select cpr.resource_id,
- cpr.item_id as resource_item_id,
- cpr.type as resource_type
- from imsld_cp_resourcesi cpr, imsld_itemsi ii,
- acs_rels ar
- where ar.object_id_one = ii.item_id
- and ar.object_id_two = cpr.item_id
- and content_revision__is_live(cpr.resource_id) = 't'
- and (imsld_tree_sortkey between tree_left((select imsld_tree_sortkey from imsld_items where imsld_item_id = :imsld_item_id))
- and tree_right((select imsld_tree_sortkey from imsld_items where imsld_item_id = :imsld_item_id))
- or ii.imsld_item_id = :imsld_item_id)
- } {
- set one_activity_urls "[imsld::process_resource -resource_item_id $resource_item_id]"
- if { [string eq "" $one_activity_urls] } {
- append activity_urls "[_ imsld.lt_li_desc_no_file_assoc]"
- } else {
- append activity_urls "$one_activity_urls"
- }
- } if_no_rows {
- ns_log notice "[_ imsld.lt_li_desc_no_file_assoc]"
- }
+ set objectives ""
+ if { [llength [lindex $activities_list 1]] } {
+ set objectives "[lindex [lindex $activities_list 1] 0]"
+ append objectives "- [join [lindex [lindex $activities_list 1] 1] "
- "]"
+ append objectives "
"
+ regsub -all {[ ]*} $objectives "" objectives
}
- append activity_urls ""
+ if { [llength [lindex $activities_list 2]] } {
+ set environments "[lindex [lindex $activities_list 2] 0]"
+ append environments "- [join [lindex [lindex $activities_list 2] 1] "
- "]"
+ append environments "
- [join [lindex [lindex $activities_list 2] 2] "
- "]"
+ append environments "
- [join [lindex [lindex $activities_list 2] 3] "
- >"]"
+ append environments "
"
+ regsub -all {[ ]*} $environments "" environments
+ }
+
+ template::multirow append imsld_multirow $prerequisites \
+ $objectives \
+ $environments \
+ $activity_title \
+ [join [lindex $activities_list 3] "
"] \
+ {} \
+ "finish"
}
# support activity
if { [string eq $activity_type support] } {
db_1row support_activity {
select sa.activity_id,
sa.item_id as activity_item_id,
- sa.title,
+ sa.title as activity_title,
sa.identifier,
sa.user_choice_p
from imsld_support_activitiesi sa
where sa.activity_id = :activity_id
}
-
- # get the environments
- db_foreach sa_associated_environments {
- select ar.object_id_two as environment_item_id
- from acs_rels ar
- where ar.object_id_one = :activity_item_id
- and ar.rel_type = 'imsld_sa_env_rel'
- order by ar.object_id_two
- } {
- append environment_ul [imsld::process_environment -environment_item_id $environment_item_id]
- }
+ set activities_list [imsld::process_support_activity -activity_item_id $activity_item_id]
- # get the associated resources(files)
- set activity_name [expr { [string eq "" $title] ? $identifier : $title }]
- set first_or_next [expr { $first_p ? "First" : "Next"}]
- set activity_urls "[_ imsld.lt_ul_Next_Activity_acti] \[ finish \]"
-
- # get the items associated with the activity
- set linear_item_list [db_list_of_lists item_linear_list {
- select ii.imsld_item_id
- from imsld_items ii, imsld_activity_descs sad, imsld_support_activities sa,
- cr_items cr1, cr_items cr2,
- acs_rels ar
- where sa.activity_id = :activity_id
- and sa.activity_description_id = cr1.item_id
- and cr1.live_revision = sad.description_id
- and ar.object_id_one = sa.activity_description_id
- and ar.object_id_two = cr2.item_id
- and cr2.live_revision = ii.imsld_item_id
- }]
- foreach imsld_item_id $linear_item_list {
- db_foreach la_nested_associated_items {
- select cpr.resource_id,
- cpr.item_id as resource_item_id,
- cpr.type as resource_type
- from imsld_cp_resourcesi cpr, imsld_itemsi ii,
- acs_rels ar
- where ar.object_id_one = ii.item_id
- and ar.object_id_two = cpr.item_id
- and content_revision__is_live(cpr.resource_id) = 't'
- and (imsld_tree_sortkey between tree_left((select imsld_tree_sortkey from imsld_items where imsld_item_id = :imsld_item_id))
- and tree_right((select imsld_tree_sortkey from imsld_items where imsld_item_id = :imsld_item_id))
- or ii.imsld_item_id = :imsld_item_id)
- } {
- set one_activity_urls "[imsld::process_resource -resource_item_id $resource_item_id]"
- if { [string eq "" $one_activity_urls] } {
- append activity_urls "[_ imsld.lt_li_desc_no_file_assoc]"
- } else {
- append activity_urls "$one_activity_urls"
- }
- } if_no_rows {
- ns_log notice "[_ imsld.lt_li_desc_no_file_assoc]"
- }
+ if { [llength [lindex $activities_list 0]] } {
+ set environments "[lindex [lindex $activities_list 0] 0]"
+ append environments "- [join [lindex [lindex $activities_list 0] 1] "
- "]"
+ append environments "
- [join [lindex [lindex $activities_list 0] 2] "
- "]"
+ append environments "
- [join [lindex [lindex $activities_list 0] 3] "
- "]"
+ append environments "
"
+ regsub -all {[ ]*} $environments "" environments
}
- append activity_urls ""
- }
-
- # get the environments associated to the role_part
- if { ![string eq "" $rp_environment_item_id] } {
- append environment_ul [imsld::process_environment -environment_item_id $rp_environment_item_id]
+
+ template::multirow append imsld_multirow {} \
+ {} \
+ $environments \
+ $activity_title \
+ [join [lindex $activities_list 1] "
"] \
+ {} \
+ "finish"
}
-
+
# this should never happen, but in case the next activiy is already finished, let's throw an error
# instead of not doing anything.
if { [db_string verify_not_completed {
@@ -1157,7 +1498,7 @@
}
# first parameter: activity name
- return [list "$prerequisites_ul" "$objectives_ul" {} "$activity_urls" "$completed_activities" "$environment_ul"]
+ return [template::multirow size imsld_multirow]
}
ad_register_proc GET /finish-component-element* imsld::finish_component_element
Index: openacs-4/packages/imsld/www/index.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/imsld/www/index.adp,v
diff -u -r1.6 -r1.7
--- openacs-4/packages/imsld/www/index.adp 18 Nov 2005 08:44:50 -0000 1.6
+++ openacs-4/packages/imsld/www/index.adp 23 Nov 2005 11:06:34 -0000 1.7
@@ -3,10 +3,15 @@
@context;noquote@
-
-@imslds_in_class.imsld_title@
-
-
-
+multiple na"imslds_in_class">
+li>imslds_in_class.imsld_title@
+ include src="../lib/imsld-chunk" imsld_item_id="imslds_in_class.imsld_id@">
+br />
+/multiple>
+@listin1@
+
+@listin2@
+
+@listin3@
Index: openacs-4/packages/imsld/www/index.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/imsld/www/index.tcl,v
diff -u -r1.6 -r1.7
--- openacs-4/packages/imsld/www/index.tcl 5 Oct 2005 14:13:02 -0000 1.6
+++ openacs-4/packages/imsld/www/index.tcl 23 Nov 2005 11:06:34 -0000 1.7
@@ -5,21 +5,20 @@
set context {}
set community_id [dotlrn_community::get_community_id]
-db_multirow imslds_in_class get_manifests {
- select cr3.item_id as imsld_id,
- coalesce(imsld.title, imsld.identifier) as imsld_title
- from acs_rels ar, cr_items cr1, cr_items cr2, cr_items cr3, imsld_cp_manifests icm, imsld_cp_organizations ico, imsld_imsldsi imsld
- where ar.object_id_one = :community_id
- and ar.rel_type = 'imsld_community_manifest_rel'
- and ar.object_id_two = cr1.item_id
- and cr1.live_revision = icm.manifest_id
- and ico.manifest_id = cr1.item_id
- and imsld.organization_id = cr2.item_id
- and cr2.live_revision = ico.organization_id
- and cr3.live_revision = imsld.imsld_id
-} {
- ns_log notice "vamos!!!!! \n"
-}
+# db_multirow imslds_in_class get_manifests {
+# select cr3.item_id as imsld_id,
+# coalesce(imsld.title, imsld.identifier) as imsld_title
+# from acs_rels ar, cr_items cr1, cr_items cr2, cr_items cr3, imsld_cp_manifests icm, imsld_cp_organizations ico, imsld_imsldsi imsld
+# where ar.object_id_one = :community_id
+# and ar.rel_type = 'imsld_community_manifest_rel'
+# and ar.object_id_two = cr1.item_id
+# and cr1.live_revision = icm.manifest_id
+# and ico.manifest_id = cr1.item_id
+# and imsld.organization_id = cr2.item_id
+# and cr2.live_revision = ico.organization_id
+# and cr3.live_revision = imsld.imsld_id
+# } {
+# }
# set next_activity get_next_activity
# display ismld_name
@@ -30,3 +29,23 @@
# si es la primera vez, redirigir a un javascript q marque la entrada para contar el tiempo en time_to_complete
# manejar completadas, faltante y nombre con listas y mejorar despliegue!
+
+proc dos { lista } {
+ return [concat [list $lista [list b c d]]]
+ }
+
+proc uno { lista } {
+ return [list a b d]
+ }
+
+set listin1 [list]
+set listin2 [uno $listin1]
+set listin3 [dos $listin2]
+
+set listin3 [concat a b c d e f]
+
+set superlista [list [list a b c] [list d e f]]
+
+foreach {uno} $superlista {
+ ns_log notice " - $uno - \n tristes tigres "
+}
\ No newline at end of file
Index: openacs-4/packages/imsld/www/admin/imsld-new-2.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/imsld/www/admin/imsld-new-2.tcl,v
diff -u -r1.4 -r1.5
--- openacs-4/packages/imsld/www/admin/imsld-new-2.tcl 5 Oct 2005 15:33:27 -0000 1.4
+++ openacs-4/packages/imsld/www/admin/imsld-new-2.tcl 23 Nov 2005 11:06:34 -0000 1.5
@@ -69,12 +69,10 @@
if { ![llength $organizations] } {
set organizations [$manifest child all organizations]
}
- multirow append imsld_info "[_ imsld.lt_Number_of_Organizatio]" [llength $organizations]
set imsld [$organizations child all imsld:learning-design]
if { ![llength $imsld] } {
set imsld [$organizations child all learning-design]
}
- multirow append imsld_info "[_ imsld.Number_of_IMD_LDs]" [llength $imsld]
set imsld_title [imsld::parse::get_title -node $imsld -prefix imsld]
set imsld_level [imsld::parse::get_attribute -node $imsld -attr_name level]
set imsld_level [expr { [empty_string_p $imsld_level] ? "[_ imsld.Not_defined]" : $imsld_level }]
@@ -117,7 +115,7 @@
set play_identifier [imsld::parse::get_attribute -node $play -attr_name identifier]
set acts [$play child all imsld:act]
imsld::parse::validate_multiplicity -tree $acts -multiplicity 0 -element_name acts -greather_than
- multirow append imsld_info "[_ imsld.Acts_in_play_count]" [llength $acts]
+# multirow append imsld_info "[_ imsld.Acts_in_play_count]" [llength $acts]
incr count
}
Index: openacs-4/packages/imsld/www/admin/imsld-new-3.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/imsld/www/admin/Attic/imsld-new-3.adp,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/imsld/www/admin/imsld-new-3.adp 5 Oct 2005 15:33:27 -0000 1.3
+++ openacs-4/packages/imsld/www/admin/imsld-new-3.adp 23 Nov 2005 11:06:34 -0000 1.4
@@ -2,4 +2,4 @@
titulin
contextin
-success! @warnings;noquote@
+@warnings;noquote@
Index: openacs-4/packages/imsld/www/admin/imsld-new-3.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/imsld/www/admin/Attic/imsld-new-3.tcl,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/imsld/www/admin/imsld-new-3.tcl 5 Oct 2005 15:33:27 -0000 1.8
+++ openacs-4/packages/imsld/www/admin/imsld-new-3.tcl 23 Nov 2005 11:06:34 -0000 1.9
@@ -23,18 +23,20 @@
set user_id [ad_conn user_id]
# Display progress bar
-# ad_progress_bar_begin \
-# -title "[_ imsld.Uploading_IMS_LD]" \
-# -message_1 "[_ imsld.lt_Uploading_and_process]" \
-# -message_2 "[_ imsld.lt_We_will_continue_auto]"
+ad_progress_bar_begin \
+ -title "[_ imsld.Uploading_IMS_LD]" \
+ -message_1 "[_ imsld.lt_Uploading_and_process]" \
+ -message_2 "[_ imsld.lt_We_will_continue_auto]"
+ns_write "Uploading new IMS Learning Design
"
+set community_id [dotlrn_community::get_community_id]
# Atempting to create the new IMS LD.
# The proc imsld::parse::parse_and_create_imsld_manifest return a pair of values (manifest_id and a message)
set manifest_list [imsld::parse::parse_and_create_imsld_manifest -xmlfile $tmp_dir/imsmanifest.xml \
-manifest_id $manifest_id \
-tmp_dir $tmp_dir \
- -community_id [dotlrn_community::get_community_id]]
+ -community_id $community_id]
set manifest_id [lindex $manifest_list 0]
@@ -44,7 +46,17 @@
ad_script_abort
}
-set warnings [lindex $manifest_list 1]
# delete the tmpdir
imsld::parse::remove_dir -dir $tmp_dir
+set warnings "[lindex $manifest_list 1]"
+
+if { ![string eq "" $warnings] } {
+ ns_write "[_ imsld.lt_br__Warnings_ul_warni]"
+ ns_sleep 5
+}
+
+# jump to the front page
+ad_progress_bar_end -url [dotlrn_community::get_community_url $community_id]
+
+