Index: openacs-4/packages/imsld/tcl/imsld-condition-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/imsld/tcl/imsld-condition-procs.tcl,v diff -u -r1.12 -r1.13 --- openacs-4/packages/imsld/tcl/imsld-condition-procs.tcl 19 Jul 2006 13:50:49 -0000 1.12 +++ openacs-4/packages/imsld/tcl/imsld-condition-procs.tcl 19 Jul 2006 15:06:10 -0000 1.13 @@ -38,7 +38,6 @@ set ifNodes [$condition selectNodes {*[local-name()='if']}] set thenNodes [$condition selectNodes {*[local-name()='then']}] set elseNodes [$condition selectNodes {*[local-name()='else']}] - foreach ifNode $ifNodes { if {[imsld::expression::eval -run_id $run_id -expression [$ifNode childNodes]]} { foreach thenNode $thenNodes { @@ -66,17 +65,15 @@ if {![info exist user_id]} { set user_id [ad_conn user_id] } - foreach expressionNode $expression { switch -- [$expressionNode localName] { {complete} { - set activityNode [$expressionNode childNodes] switch -- [$activityNode localName] { {learning-activity-ref} { set la_ref [$activityNode getAttribute {ref}] db_1row get_la_id { - select ila.activity_id as la_id + select ila.activity_id as la_id, iii.imsld_id as imsld_id from imsld_learning_activities ila, imsld_imsldsi iii, @@ -88,7 +85,7 @@ ici.item_id=ila.component_id and ila.identifier=:la_ref } - set return_value [db0or1row la_finished_p { + set return_value [db_0or1row la_finished_p { select 1 from imsld_status_user where status='finished' @@ -100,8 +97,8 @@ {support-activity-ref} { set sa_ref [$activityNode getAttribute {ref}] db_1row get_sa_id { - select isa.activity_id as sa_id - iii.imsld_id as imsld_id + select isa.activity_id as sa_id, + iii.imsld_id as imsld_id, ir.run_id as run_id from imsld_support_activities isa, imsld_imsldsi iii, @@ -113,7 +110,7 @@ ici.item_id=isa.component_id and isa.identifier=:sa_ref } - set return_value [db0or1row la_finished_p { + set return_value [db_0or1row la_finished_p { select 1 from imsld_status_user where status='finished' @@ -144,9 +141,9 @@ {act-ref} { set actref [$activityNode getAttribute {ref}] db_1row get_act_id { - select iai.act_id as act_id - imi.imsld_id as imsld_id - ipi.play_id as play_id + select iai.act_id as act_id, + imi.imsld_id as imsld_id, + ipi.play_id as play_id, from imsld_acts iai, imsld_imsldsi iii, imsld_playsi ipi, @@ -165,7 +162,7 @@ set playref [$activityNode getAttribute {ref}] db_1row get_play_id { select ipi.play_id as play_id - iii.imsld_id as imsld_id + iii.imsld_id as imsld_id, from imsld_imsldsi iii, imsld_plays ipi, imsld_methodsi imi, @@ -182,7 +179,7 @@ return $return_value } {not} { - return [expr ![imsld::expression::eval -run_id $run_id -expression $expressionNode]] + return [expr ![imsld::expression::eval -run_id $run_id -expression [$expressionNode childNodes]]] } {current-datetime} { return [clock format [clock seconds] -format "%Y-%m-%dT%H:%M:%S"] -gmt 1 } {datetime-activity-started} { Index: openacs-4/packages/imsld/tcl/imsld-instance-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/imsld/tcl/imsld-instance-procs.tcl,v diff -u -r1.7 -r1.8 --- openacs-4/packages/imsld/tcl/imsld-instance-procs.tcl 13 Jul 2006 13:11:43 -0000 1.7 +++ openacs-4/packages/imsld/tcl/imsld-instance-procs.tcl 19 Jul 2006 15:06:10 -0000 1.8 @@ -421,7 +421,7 @@ and type = 'class' and identifier = :class }] } { - set instance_id [package_exec_plsql -var_list [list [list instance_id ""] [list owner_id ""] [list type "class"] [list identifier $class] [list run_id $run_id] [list is_visible_p "f"] [list title ""] [list with_control_p ""]] imsld_attribute_instance new] + set instance_id [package_exec_plsql -var_list [list [list instance_id ""] [list owner_id ""] [list type "class"] [list identifier $class] [list run_id $run_id] [list is_visible_p "t"] [list title ""] [list with_control_p ""]] imsld_attribute_instance new] } } @@ -451,7 +451,7 @@ and type = 'class' and identifier = :class }] } { - set instance_id [package_exec_plsql -var_list [list [list instance_id ""] [list owner_id ""] [list type "class"] [list identifier $class] [list run_id $run_id] [list is_visible_p "f"] [list title ""] [list with_control_p ""]] imsld_attribute_instance new] + set instance_id [package_exec_plsql -var_list [list [list instance_id ""] [list owner_id ""] [list type "class"] [list identifier $class] [list run_id $run_id] [list is_visible_p "t"] [list title ""] [list with_control_p ""]] imsld_attribute_instance new] } } @@ -488,7 +488,7 @@ where identifier = :identifier and run_id = :run_id }] } { - set instance_id [package_exec_plsql -var_list [list [list instance_id ""] [list owner_id ""] [list type "class"] [list identifier $identifier] [list run_id $run_id] [list is_visible_p "f"] [list title ""] [list with_control_p ""]] imsld_attribute_instance new] + set instance_id [package_exec_plsql -var_list [list [list instance_id ""] [list owner_id ""] [list type "class"] [list identifier $identifier] [list run_id $run_id] [list is_visible_p "t"] [list title ""] [list with_control_p ""]] imsld_attribute_instance new] } } 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.52 -r1.53 --- openacs-4/packages/imsld/tcl/imsld-parse-procs.tcl 13 Jul 2006 13:11:43 -0000 1.52 +++ openacs-4/packages/imsld/tcl/imsld-parse-procs.tcl 19 Jul 2006 15:06:10 -0000 1.53 @@ -3535,7 +3535,6 @@ @param manifest_id Manifest ID or the manifest being parsed @param parent_id Parent folder ID } { - set temporal_doc [dom createDocument condition] set temporal_node [$temporal_doc documentElement] @@ -3549,7 +3548,7 @@ set then_temporal_node [$then_node cloneNode -deep] $temporal_node appendChild $then_temporal_node - set else_node [$condition_node selectNodes { following-sibling::*[local-name()='else' and position()=1] } ] + set else_node [$condition_node selectNodes { following-sibling::*[local-name()='else' and position()=2] } ] if { [llength $else_node] == 1 } { set else_temporal_node [$else_node cloneNode -deep] $temporal_node appendChild $else_temporal_node @@ -4014,7 +4013,7 @@ foreach conditions $conditions_list { if {[llength $conditions]} { set imsld_ifs_list [$conditions selectNodes { *[local-name()='if'] } ] - + foreach imsld_if $imsld_ifs_list { set condition_id [imsld::parse::parse_and_create_if_then_else -condition_node $imsld_if \ Index: openacs-4/packages/imsld/www/admin/imsld-confirm-finish.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/imsld/www/admin/imsld-confirm-finish.tcl,v diff -u -r1.3 -r1.4 --- openacs-4/packages/imsld/www/admin/imsld-confirm-finish.tcl 22 Jun 2006 10:56:54 -0000 1.3 +++ openacs-4/packages/imsld/www/admin/imsld-confirm-finish.tcl 19 Jul 2006 15:06:10 -0000 1.4 @@ -23,4 +23,7 @@ } } +# excecute all conditions +imsld::condition::execute_all -run_id $run_id + ad_returnredirect ..