Index: openacs-4/packages/courses/www/cc-admin/add-edit-course.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/courses/www/cc-admin/Attic/add-edit-course.tcl,v diff -u -r1.3 -r1.4 --- openacs-4/packages/courses/www/cc-admin/add-edit-course.tcl 3 Feb 2005 22:41:28 -0000 1.3 +++ openacs-4/packages/courses/www/cc-admin/add-edit-course.tcl 7 Feb 2005 16:25:06 -0000 1.4 @@ -15,13 +15,14 @@ set return_url "/courses/cc-admin" } -set user_id [auth::get_user_id] set page_title "" set context "" +set user_id [ad_conn user_id] + if { [info exists mode] } { # Check if users has admin permission to edit course_catalog - permission::require_permission -party_id $user_id -object_id $course_id -privilege "admin" + permission::require_permission -object_id $course_id -privilege "admin" # To disable the element course_key set mode display } else { @@ -32,7 +33,7 @@ set asm_package_id [apm_package_id_from_key assessment] set asm_list [list [list "[_ courses.not_associate]" "-1"]] db_foreach assessment { } { - if { [permission::permission_p -party_id $user_id -object_id $assessment_id -privilege "admin"] == 1 } { + if { [permission::permission_p -object_id $assessment_id -privilege "admin"] == 1 } { lappend asm_list [list $title $assessment_id] } } @@ -43,70 +44,62 @@ # Creates the elements to show with ad_form -set i 0 + foreach attribute $attribute_list { - set element "{[lindex $attribute 2]:[lindex $attribute 4](text) {label \"[lindex $attribute 3]\"}}" - if { [string equal [lindex $attribute 2] "course_key"]} { - set element "{[lindex $attribute 2]:[lindex $attribute 4](text) {label \"[lindex $attribute 3]\"} {mode $mode}}" - } else { - set element "{[lindex $attribute 2]:[lindex $attribute 4](text) {label \"[lindex $attribute 3]\"}}" + set element_mode "" + set aditional_type "" + set aditional_elements "" + switch [lindex $attribute 4] { + string { + if { [string equal [lindex $attribute 2] "assessment_id"]} { + set aditional_type "(select)" + set aditional_elements [list options $asm_list] + } else { + if { [string equal [lindex $attribute 2] "course_key"]} { + set element_mode [list mode $mode] + } + } + } + text { + set aditional_type "(textarea)" + set aditional_elements "{html {rows 7 cols 35}}" + } + integer { + if { [string equal [lindex $attribute 2] "assessment_id"]} { + set aditional_type "(select)" + set aditional_elements [list options $asm_list] + } + } } - if { [string equal [lindex $attribute 2] "assessment_id"]} { - set asm_num $i - } - if { [string equal [lindex $attribute 2] "course_info"]} { - set info_num $i - } + set element [list [lindex $attribute 2]:text${aditional_type} [list label [lindex $attribute 3]] $aditional_elements $element_mode] + lappend elements $element - incr i + } + # Create the form ad_form -name add_course -export {return_url $return_url} -form { course_id:key } -# Create the element of the form -set i 0 -foreach item $elements { - if {[string equal $i $asm_num]} { - ad_form -extend -name add_course -form { - { assessment_id:text(select) - {label "[_ courses.asm]"} - {options $asm_list} - } - } - incr i - } else { - if {[string equal $i $info_num]} { - ad_form -extend -name add_course -form { - { course_info:text(textarea) - {label "[_ courses.course_info]"} - {html {rows 7 cols 35}} - } - } - } else { - ad_form -extend -name add_course -form [lindex $elements $i] - } - incr i - } -} +ad_form -extend -name add_course -form $elements ad_form -extend -name add_course -new_data { # New item and revision in the CR set folder_id [course_catalog::get_folder_id] + set attribute_list [package_object_attribute_list -start_with course_catalog course_catalog] + set form_attributes [list] + foreach attribute $attribute_list { + set attr_name [lindex $attribute 2] + lappend form_attributes [list $attr_name [set $attr_name]] + } + set item_id [content::item::new -name $course_key -parent_id $folder_id \ - -content_type "course_catalog" -creation_user $user_id] - set course_id [content::revision::new -item_id $item_id -title $course_key \ - -description "$course_name: $course_info"] + -content_type "course_catalog" -creation_user $user_id \ + -attributes $form_attributes] - # Fill the table with other info - db_transaction { - db_dml update_course_info { } - } - # Set the new revision live - course_catalog::set_live -name $course_key -revision_id $course_id # Grant admin privileges to the user over the item in the CR permission::grant -party_id $user_id -object_id $item_id -privilege "admin" @@ -115,17 +108,14 @@ # New revision in the CR set folder_id [course_catalog::get_folder_id] set item_id [course_catalog::get_item_id -name $course_key -parent_id $folder_id] - set course_id [content::revision::new -item_id $item_id -title $course_key \ - -description "$course_name: $course_info"] - - # Fill the table with other info - db_transaction { - db_dml update_course_info { } + set attribute_list [package_object_attribute_list -start_with course_catalog course_catalog] + set form_attributes [list] + foreach attribute $attribute_list { + set attr_name [lindex $attribute 2] + lappend form_attributes [list $attr_name [set $attr_name]] } - # Set the new revision live - course_catalog::set_live -name $course_key -revision_id $course_id - # Grant admin privileges to the user over the item in the CR - # permission::grant -party_id $user_id -object_id $course_id -privilege "admin" + set course_id [content::revision::new -item_id $item_id \ + -attributes $form_attributes -is_live t] } -new_request { set context [list "[_ courses.add_course]"]