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 -r1.9
--- openacs-4/packages/assessment/www/asm-admin/item-add-mc-choices.tcl 7 Apr 2005 22:42:48 -0000 1.8
+++ openacs-4/packages/assessment/www/asm-admin/item-add-mc-choices.tcl 12 Jun 2006 02:49:51 -0000 1.9
@@ -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,11 +49,54 @@
# 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"
+ append ad_form_code "\{infotxt.$choice_id:text(inform) \{label \"[_ assessment.Choice] \$title\"\} \{value \"\"\}\}\n"
} else {
- append ad_form_code "\{infotxt.$choice_id:text(inform) \{label \"[_ assessment.Choice] $title\"\} \{value \"\"\}\}\n"
+ append ad_form_code "\{infotxt.$choice_id:text(inform) \{label \"[_ assessment.Choice] \$title\"\} \{value \"\"\}\}\n"
}
append ad_form_code "\{selected.$choice_id:text(checkbox),optional \{label \"[_ assessment.Default_Selected]\"\} \{options \$selected_options\} \{help_text \"[_ assessment.Default_Selected_help]\"\}\}\n"
append ad_form_code "\{fixed_pos.$choice_id:text,optional,nospell \{label \"[_ assessment.Fixed_Position]\"\} \{html \{size 5 maxlength 5\}\} \{help_text \"[_ assessment.choice_Fixed_Position_help]\"\}\}\n"
@@ -109,7 +156,7 @@
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 [exec uuidgen]]
+ 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 ""
}