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.40 -r1.41
--- openacs-4/packages/imsld/tcl/imsld-procs.tcl 13 Mar 2006 17:43:59 -0000 1.40
+++ openacs-4/packages/imsld/tcl/imsld-procs.tcl 17 Mar 2006 15:02:04 -0000 1.41
@@ -914,7 +914,7 @@
{-environment_list ""}
-imsld_id
-role_part_id
- {-structures_names ""}
+ {-structures_info ""}
} {
@return The next learning or support activity (and the type) in the activity structure. 0 if there are none (which should never happen), the next activity type and the list of the structure names of the activity structures in the path of the returned activity
} {
@@ -947,12 +947,13 @@
)
}
- lappend structures_names [db_string get_structure_name {
+ set structures_info [concat $structures_info [db_list_of_lists get_structure_info {
select
- coalesce(title,identifier) as structure_name
+ coalesce(title,identifier) as structure_name,
+ item_id
from imsld_activity_structuresi
where structure_id = :activity_structure_id
- }]
+ }]]
}
# get referenced activities
@@ -1014,13 +1015,13 @@
}
if { [string eq $next_activity_type structure] } {
- set next_activity_list [imsld::structure_next_activity -activity_structure_id $next_activity_id -environment_list $environment_list -imsld_id $imsld_id -role_part_id $role_part_id -structures_names $structures_names]
+ set next_activity_list [imsld::structure_next_activity -activity_structure_id $next_activity_id -environment_list $environment_list -imsld_id $imsld_id -role_part_id $role_part_id -structures_info $structures_info]
set next_activity_id [lindex $next_activity_list 0]
set next_activity_type [lindex $next_activity_list 1]
set environment_list [concat $environment_list [lindex $next_activity_list 2]]
- set structures_names [lindex $next_activity_list 3]
+ set structures_info [lindex $next_activity_list 3]
}
- return [list $next_activity_id $next_activity_type $environment_list $structures_names]
+ return [list $next_activity_id $next_activity_type $environment_list $structures_info]
}
ad_proc -public imsld::structure_finished_p {
@@ -1316,14 +1317,17 @@
}
set environment_learning_objects_list [list]
- if { [db_0or1row get_learning_object_info {
+ foreach learning_objects_list [db_list_of_lists get_learning_object_info {
select item_id as learning_object_item_id,
learning_object_id,
identifier
from imsld_learning_objectsi
where environment_id = :environment_item_id
and content_revision__is_live(learning_object_id) = 't'
- }] } {
+ }] {
+ set learning_object_item_id [lindex $learning_objects_list 0]
+ set learning_object_id [lindex $learning_objects_list 1]
+ set identifier [lindex $learning_objects_list 2]
# learning object item. get the files associated
set linear_item_list [db_list_of_lists item_linear_list { *SQL* }]
foreach imsld_item_id $linear_item_list {
@@ -1335,42 +1339,36 @@
lappend resource_item_list $resource_item_id
}
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 {
+ if { ![string eq "" $one_learning_object_list] } {
if { [string eq "t" $resource_mode] } {
set environment_learning_objects_list [concat $environment_learning_objects_list \
[list $one_learning_object_list] \
$resource_item_list ]
} else {
- if { ![string eq "" $environment_learning_objects_list] } {
- set environment_learning_objects_list [concat $environment_learning_objects_list \
- [list $one_learning_object_list]]
- } else {
- set environment_learning_objects_list $one_learning_object_list
- }
+ set environment_learning_objects_list [concat $environment_learning_objects_list \
+ [list $one_learning_object_list]]
}
}
}
}
}
# services
set environment_services_list [list]
- if { [db_0or1row get_service_info {
+ foreach services_list [db_list_of_lists get_service_info {
select service_id,
item_id as service_item_id,
identifier,
service_type
from imsld_servicesi
where environment_id = :environment_item_id
and content_revision__is_live(service_id) = 't'
- }] } {
- if { [string eq "" $environment_services_list] } {
- set environment_services_list [imsld::process_service -service_item_id $service_item_id -resource_mode $resource_mode]
- } else {
- set environment_services_list [concat $environment_services_list \
- [imsld::process_service -service_item_id $service_item_id -resource_mode $resource_mode]]
- }
+ }] {
+ set service_id [lindex $environment_services_list 0]
+ set service_item_id [lindex $environment_services_list 1]
+ set identifier [lindex $environment_services_list 2]
+ set service_type [lindex $environment_services_list 3]
+ set environment_services_list [concat $environment_services_list \
+ [list [imsld::process_service -service_item_id $service_item_id -resource_mode $resource_mode]]]
}
set nested_environment_list [list]
@@ -1379,11 +1377,13 @@
set one_nested_environment_list [imsld::process_environment -environment_item_id $nested_environment_item_id]
# the title is stored in [lindex $one_nested_environment_list 0], but is not returned for displaying porpouses
set nested_environment_list [concat $nested_environment_list \
- [list [lindex $one_nested_environment_list 1] \
- [lindex $one_nested_environment_list 2] \
- [lindex $one_nested_environment_list 3]]]
+ [lindex $one_nested_environment_list 1] \
+ [lindex $one_nested_environment_list 2] \
+ [lindex $one_nested_environment_list 3]]
+ regsub -all "{}" $nested_environment_list "" nested_environment_list
}
- return [list $environment_title $environment_learning_objects_list $environment_services_list $nested_environment_list]
+ set return_list [list $environment_title $environment_learning_objects_list $environment_services_list $nested_environment_list]
+ return $return_list
}
ad_proc -public imsld::process_learning_objective {
@@ -1956,7 +1956,7 @@
set associated_environments_list [db_list sa_associated_environments { *SQL* }]
foreach environment_item_id $associated_environments_list {
if { [llength $environments_list] } {
- set environments_list [concat [list $environments_list] \
+ set environments_list [concat $environments_list \
[list [imsld::process_environment -environment_item_id $environment_item_id -resource_mode $resource_mode]]]
} else {
set environments_list [imsld::process_environment -environment_item_id $environment_item_id -resource_mode $resource_mode]
@@ -1967,7 +1967,6 @@
set environments_ids [concat [lindex [lindex $environments_list 1] [expr [llength [lindex $environments_list 1] ] - 1 ]] \
[lindex [lindex $environments_list 2] [expr [llength [lindex $environments_list 2] ] - 1 ]]]
}
-
return $environments_list
}
@@ -2391,14 +2390,13 @@
}
set structure_envs [imsld::process_activity_structure -structure_item_id $structure_item_id]
set environments ""
- foreach structure_list $structure_envs {
- if { [llength [lindex $structure_list 0]] } {
- append environments "[lindex $structure_list 0]
"
- append environments "[join [lindex $structure_list 1] " "] "
- append environments "[join [lindex $structure_list 2] " "] "
- append environments "[join [lindex $structure_list 3] " "]
"
- }
+ if { [llength $structure_envs] } {
+ append environments "[lindex $structure_envs 0]
"
}
+ append environments "[join [lindex $structure_envs 1] " "] "
+ append environments "[join [lindex $structure_envs 2] " "] "
+ append environments "[join [lindex $structure_envs 3] " "]
"
+
if { [string eq $status "started"] } {
set structure_title "