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 -N -r1.80 -r1.81 --- openacs-4/packages/imsld/tcl/imsld-procs.tcl 20 Jul 2006 08:48:53 -0000 1.80 +++ openacs-4/packages/imsld/tcl/imsld-procs.tcl 26 Jul 2006 14:37:27 -0000 1.81 @@ -182,6 +182,22 @@ -play_id $play_id \ -user_id $user_id } + foreach condition_xml [db_list search_related_conditions { + select ici.condition_xml + from imsld_conditionsi ici, + acs_rels ar, + imsld_playsi ilai + where ilai.item_id=ar.object_id_one + and ar.rel_type='imsld_ilm_cond_rel' + and ilai.play_id=:play_id + and ici.item_id=ar.object_id_two + }] { + dom parse $condition_xml document + $document documentElement condition_node + imsld::condition::execute -run_id $run_id -condition $condition_node + } + #role conditions, time conditions... + imsld::condition::execute_time_role_conditions -run_id $run_id } } ns_log notice "imsld::sweep_expired_activities Sweeping acts..." @@ -205,6 +221,22 @@ -act_id $act_id \ -user_id $user_id } + foreach condition_xml [db_list search_related_conditions { + select ici.condition_xml + from imsld_conditionsi ici, + acs_rels ar, + imsld_actsi ilai + where ilai.item_id=ar.object_id_one + and ar.rel_type='imsld_ilm_cond_rel' + and ilai.act_id=:act_id + and ici.item_id=ar.object_id_two + }] { + dom parse $condition_xml document + $document documentElement condition_node + imsld::condition::execute -run_id $run_id -condition $condition_node + } + #role conditions, time conditions... + imsld::condition::execute_time_role_conditions -run_id $run_id } } ns_log notice "imsld::sweep_expired_activities Sweeping support activities..." @@ -241,6 +273,22 @@ -user_id $user_id \ -code_call } + foreach condition_xml [db_list search_related_conditions { + select ici.condition_xml + from imsld_conditionsi ici, + acs_rels ar, + imsld_support_activitiesi ilai + where ilai.item_id=ar.object_id_one + and ar.rel_type='imsld_ilm_cond_rel' + and ilai.activity_id=:activity_id + and ici.item_id=ar.object_id_two + }] { + dom parse $condition_xml document + $document documentElement condition_node + imsld::condition::execute -run_id $run_id -condition $condition_node + } + #role conditions, time conditions... + imsld::condition::execute_time_role_conditions -run_id $run_id } } } @@ -279,6 +327,22 @@ -user_id $user_id \ -code_call } + foreach condition_xml [db_list search_related_conditions { + select ici.condition_xml + from imsld_conditionsi ici, + acs_rels ar, + imsld_learning_activitiesi ilai + where ilai.item_id=ar.object_id_one + and ar.rel_type='imsld_ilm_cond_rel' + and ilai.activity_id=:activity_id + and ici.item_id=ar.object_id_two + }] { + dom parse $condition_xml document + $document documentElement condition_node + imsld::condition::execute -run_id $run_id -condition $condition_node + } + #role conditions, time conditions... + imsld::condition::execute_time_role_conditions -run_id $run_id } } } @@ -644,7 +708,16 @@ set element_name "act_id" } } + if { [info exists table_name] } { + foreach condition_xml [db_list search_related_conditions ""] { + dom parse $condition_xml document + $document documentElement condition_node + imsld::condition::execute -run_id $run_id -condition $condition_node + } + #role conditions, time conditions... + imsld::condition::execute_time_role_conditions -run_id $run_id + #grant permissions to resources in activity if { [db_0or1row get_related_on_completion_id ""] } { if { [db_0or1row get_related_resource_id { *SQL* }] } { @@ -3046,9 +3119,10 @@ } } -ad_proc -public imsld::get_property_id { +ad_proc -public imsld::get_property_item_id { -identifier:required - -imsld_id:required + -imsld_id + -play_id } {

Get the property_id from the property_identifier in a imsld_id

@@ -3057,7 +3131,7 @@ if {[info exist play_id] & ![info exist imsld_id]} { set imsld_id [db_string get_imsld_id_from_play { - select iii.imsld_id + select iii.item_id from imsld_imsldsi iii, imsld_methodsi imi, imsld_plays ip @@ -3066,14 +3140,15 @@ and ip.play_id=:play_id }] } + return [db_string get_property_id { - select ip.property_id - from imsld_properties ip, + select ip.item_id + from imsld_propertiesi ip, imsld_componentsi ici, imsld_imsldsi iii where ip.component_id=ici.item_id and ici.imsld_id=iii.item_id - and iii.imsld_id=:imsld_id + and iii.item_id=:imsld_id and ip.identifier=:identifier }] }