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 -N -r1.30 -r1.31 --- openacs-4/packages/imsld/tcl/imsld-parse-procs.tcl 6 Feb 2006 17:07:44 -0000 1.30 +++ openacs-4/packages/imsld/tcl/imsld-parse-procs.tcl 7 Feb 2006 13:51:39 -0000 1.31 @@ -563,7 +563,11 @@ set resource_href [imsld::parse::get_attribute -node $resource_node -attr_name href] set community_id [dotlrn_community::get_community_id] - set acs_object_id [callback -catch imsld::import -res_type $resource_type -res_href $resource_href -tmp_dir $tmp_dir -community_id $community_id] + if { ![string eq $resource_type forum] } { + set acs_object_id [callback -catch imsld::import -res_type $resource_type -res_href $resource_href -tmp_dir $tmp_dir -community_id $community_id] + } else { + set acs_object_id [imsld::parse::parse_and_create_forum -name Forum] + } # Integration with other packages # This callback gets the href of the imported content (if some package imported it) @@ -1498,6 +1502,30 @@ return $learning_object_id } +ad_proc -public imsld::parse::parse_and_create_forum { + -name +} { + Create a forum with the given name. + + @param name Forum's name +} { + + set community_id [dotlrn_community::get_community_id] + 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 acs_object_id [forum::new -name $name -package_id $forums_package_id] + #revoke read permissions until first usage + if {[info exist acs_object_id]} { + permission::set_not_inherit -object_id $acs_object_id + set party_id [db_list get_allowed_parties {}] + foreach parti $party_id { + permission::revoke -party_id $parti -object_id $acs_object_id -privilege "read" + } + } + return $acs_object_id +} + ad_proc -public imsld::parse::parse_and_create_service { -service_node -environment_id @@ -1655,20 +1683,7 @@ -parent_id $parent_id] if { [string eq $conference_type "asynchronous"] } { - set community_id [dotlrn_community::get_community_id] - 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 acs_object_id [forum::new -name $title -package_id $forums_package_id] -#revoke read permissions until first usage - if {[info exist acs_object_id]} { - permission::set_not_inherit -object_id $acs_object_id - set party_id [db_list get_allowed_parties {}] - foreach parti $party_id { - permission::revoke -party_id $parti -object_id $acs_object_id -privilege "read" - } - } - + set acs_object_id [imsld::parse::parse_and_create_forum -name $title] set resource_id [imsld::cp::resource_new -manifest_id $manifest_id \ -identifier "forumresource-$service_id" \ -type "forum" \ Index: openacs-4/packages/imsld/tcl/imsld-parse-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/imsld/tcl/imsld-parse-procs.xql,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/imsld/tcl/imsld-parse-procs.xql 6 Feb 2006 17:07:44 -0000 1.2 +++ openacs-4/packages/imsld/tcl/imsld-parse-procs.xql 7 Feb 2006 13:51:39 -0000 1.3 @@ -13,7 +13,7 @@ - + select aopp.party_id from acs_object_party_privilege_map aopp, 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.30 -r1.31 --- openacs-4/packages/imsld/tcl/imsld-procs.tcl 6 Feb 2006 18:12:50 -0000 1.30 +++ openacs-4/packages/imsld/tcl/imsld-procs.tcl 7 Feb 2006 13:51:39 -0000 1.31 @@ -445,8 +445,9 @@ #grant permissions for newly appeared resources foreach the_resource_id [join $resources_activities_list] { if {![db_0or1row get_object_from_resource {}]} { - db_1row get_cr_item_from_resource {} - permission::grant -party_id $user_id -object_id $the_object_id -privilege "read" + if { [db_0or1row get_cr_item_from_resource {}] } { + permission::grant -party_id $user_id -object_id $the_object_id -privilege "read" + } } else { permission::grant -party_id $user_id -object_id $the_object_id -privilege "read" } @@ -1998,8 +1999,9 @@ foreach the_resource_id [join [list $prerequisites_list_ids $objectives_list_ids]] { if {![db_0or1row get_object_from_resource {}]} { - db_1row get_cr_item_from_resource {} - permission::grant -party_id $user_id -object_id $the_object_id -privilege "read" + if { [db_0or1row get_cr_item_from_resource {}] } { + permission::grant -party_id $user_id -object_id $the_object_id -privilege "read" + } } else { permission::grant -party_id $user_id -object_id $the_object_id -privilege "read" } @@ -2108,7 +2110,7 @@ $environments \ $activities \ $feedbacks \ - finished + {} } support { db_1row get_support_activity_info_from_isa { @@ -2138,7 +2140,7 @@ $environments \ $activities \ $feedbacks \ - finished + {} } structure { db_1row get_support_activity_info_from_ias { @@ -2157,7 +2159,7 @@ append environments "[join [lindex $structure_list 3] " "]
" } } - template::multirow append imsld_multirow {} {} $environments $activity_title {} finished + template::multirow append imsld_multirow {} {} $environments $activity_title {} {} } } } @@ -2306,9 +2308,9 @@ #grant permissions for newly appeared resources foreach the_resource_id [join $resources_activities_list] { if {![db_0or1row get_object_from_resource {}]} { - db_1row get_cr_item_from_resource {} - - permission::grant -party_id $user_id -object_id $the_object_id -privilege "read" + if { [db_0or1row get_cr_item_from_resource {}] } { + permission::grant -party_id $user_id -object_id $the_object_id -privilege "read" + } } else { permission::grant -party_id $user_id -object_id $the_object_id -privilege "read" @@ -2341,7 +2343,8 @@ $environments \ $activities \ {} \ - "finish" + {not completed} + #"finish" } # support activity @@ -2371,9 +2374,10 @@ $environments \ $activities \ {} \ - "finish" + {not completed} + #"finish" } - + # this should never happen, but in case the next activiy is already finished, let's throw an error # instead of doing nothing if { [db_string verify_not_completed {