Index: openacs-4/packages/assessment/www/asm-admin/item-add-mc-choices.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/asm-admin/item-add-mc-choices.tcl,v diff -u -r1.8.2.1 -r1.8.2.2 --- openacs-4/packages/assessment/www/asm-admin/item-add-mc-choices.tcl 31 May 2005 23:13:02 -0000 1.8.2.1 +++ openacs-4/packages/assessment/www/asm-admin/item-add-mc-choices.tcl 18 Jul 2005 18:01:01 -0000 1.8.2.2 @@ -15,6 +15,7 @@ answer_val:array,optional percent:array,optional selected:array,optional + {type ""} } -properties { context:onevalue page_title:onevalue @@ -33,9 +34,12 @@ } set package_id [ad_conn package_id] +set type $assessment_data(type) set page_title [_ assessment.add_item_type_mc_choices] set context [list [list index [_ assessment.admin]] [list [export_vars -base one-a {assessment_id}] $assessment_data(title)] $page_title] + + set selected_options [list [list "[_ assessment.yes]" t]] ad_form -name item_add_mc_choices -action item-add-mc-choices -export { assessment_id section_id after mc_id display_type } -html {enctype multipart/form-data} -form { @@ -45,6 +49,49 @@ # add form entries for each choice set ad_form_code "-form \{\n" set count_correct 0 + +if { $type == 1} { + set max_file_size 10000000 + # [ad_parameter MaxAttachmentSize] + set pretty_max_size [util_commify_number $max_file_size] + set folder_id [as::assessment::folder_id -package_id $package_id] + + db_transaction { + set count 0 + foreach choice_id [array names feedback] { + set feedback_text $feedback($choice_id) + set selected_p [ad_decode [info exists selected($choice_id)] 0 f t] + set percent_score $percent($choice_id) + set fixed_position $fixed_pos($choice_id) + set answer_value $answer_val($choice_id) + + eval set content "\$content_$choice_id" + if {![empty_string_p $content]} { + set filename [lindex $content 0] + set tmp_filename [lindex $content 1] + set file_mimetype [lindex $content 2] + set n_bytes [file size $tmp_filename] + + if { $n_bytes > $max_file_size && $max_file_size > 0 } { + ad_return_complaint 1 "[_ assessment.file_too_large]" + return + } + if { $n_bytes == 0 } { + ad_return_complaint 1 "[_ assessment.file_zero_size]" + return + } + set content_rev_id [cr_import_content -title $filename $folder_id $tmp_filename $n_bytes $file_mimetype [as::item::generate_unique_name]] + } else { + set content_rev_id "" + } + + db_dml update_choice_data {} + } + } + ad_returnredirect [export_vars -base "item-add-display-$display_type" {assessment_id section_id as_item_id after}] + ad_script_abort +} + db_foreach get_choices {} { if {$correct_answer_p == "t"} { append ad_form_code "\{infotxt.$choice_id:text(inform) \{label \"[_ assessment.Choice] $title\"\} \{value \"\"\}\}\n"