Index: openacs-4/packages/assessment/www/asm-admin/item-add.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/asm-admin/item-add.tcl,v diff -u -N -r1.7 -r1.8 --- openacs-4/packages/assessment/www/asm-admin/item-add.tcl 15 Apr 2005 17:26:46 -0000 1.7 +++ openacs-4/packages/assessment/www/asm-admin/item-add.tcl 12 Jun 2006 02:49:51 -0000 1.8 @@ -29,6 +29,7 @@ set package_id [ad_conn package_id] set boolean_options [list [list "[_ assessment.yes]" t] [list "[_ assessment.no]" f]] +set type $assessment_data(type) set data_types [list] foreach data_type [list varchar text integer float date timestamp boolean content_type] { @@ -41,29 +42,60 @@ } -ad_form -name item_add -action item-add -export { assessment_id section_id after } -html {enctype multipart/form-data} -form { +ad_form -name item_add -action item-add -export { assessment_id section_id after type} -html {enctype multipart/form-data} -form { {as_item_id:key} {title:text(textarea) {label "[_ assessment.item_Title]"} {html {rows 3 cols 80 maxlength 1000}} {help_text "[_ assessment.item_Title_help]"}} - {description:text(textarea),optional {label "[_ assessment.Description]"} {html {rows 5 cols 80}} {help_text "[_ assessment.item_Description_help]"}} } +if { $type > 1} { + ad_form -extend -name item_add -form {{description:text(textarea),optional {label "[_ assessment.Description]"} {html {rows 5 cols 80}} {help_text "[_ assessment.item_Description_help]"}} + } +} if {![empty_string_p [category_tree::get_mapped_trees $package_id]]} { category::ad_form::add_widgets -container_object_id $package_id -categorized_object_id 0 -form_name item_add } +if { $type > 1} { ad_form -extend -name item_add -form { {content:file,optional {label "[_ assessment.item_Content]"} {help_text "[_ assessment.item_Content_help]"}} {subtext:text,optional {label "[_ assessment.Subtext]"} {html {size 80 maxlength 500}} {help_text "[_ assessment.item_Subtext_help]"}} {field_name:text,optional,nospell {label "[_ assessment.Field_Name]"} {html {size 80 maxlength 500}} {help_text "[_ assessment.Field_Name_help]"}} {field_code:text,optional,nospell {label "[_ assessment.Field_Code]"} {html {size 80 maxlength 500}} {help_text "[_ assessment.Field_Code_help]"}} - {required_p:text(select) {label "[_ assessment.Required]"} {options $boolean_options} {help_text "[_ assessment.item_Required_help]"}} +} +} +ad_form -extend -name item_add -form { {required_p:text(select) {label "[_ assessment.Required]"} {options $boolean_options} {help_text "[_ assessment.item_Required_help]"}} +} +if { $type > 1} { +ad_form -extend -name item_add -form { {feedback_right:text(textarea),optional {label "[_ assessment.Feedback_right]"} {html {rows 5 cols 80}} {help_text "[_ assessment.Feedback_right_help]"}} {feedback_wrong:text(textarea),optional {label "[_ assessment.Feedback_wrong]"} {html {rows 5 cols 80}} {help_text "[_ assessment.Feedback_wrong_help]"}} {max_time_to_complete:integer,optional,nospell {label "[_ assessment.time_for_completion]"} {html {size 10 maxlength 10}} {help_text "[_ assessment.item_time_help]"}} {points:integer,optional,nospell {label "[_ assessment.points_item]"} {html {size 10 maxlength 10}} {help_text "[_ assessment.points_item_help]"}} - {data_type:text(select) {label "[_ assessment.Data_Type]"} {options $data_types} {help_text "[_ assessment.Data_Type_help]"}} +} +} else { +ad_form -extend -name item_add -form { + {description:text(hidden) {value ""}} + {content:text(hidden) {value ""}} + {subtext:text(hidden) {value ""}} + {field_name:text,optional,nospell {label "[_ assessment.Field_Name]"} {html {size 80 maxlength 500}} {help_text "[_ assessment.Field_Name_help]"}} + {field_code:text(hidden) {value ""}} + {feedback_right:text(hidden) {value ""}} + {feedback_wrong:text(hidden) {value ""}} + {max_time_to_complete:text(hidden) {value ""}} + {points:text(hidden) {value ""}} + {data_type:text(hidden) {value ""}} + +} +} + +if { $type > 1} { +ad_form -extend -name item_add -form { + {data_type:text(select) {label "[_ assessment.Data_Type]"} {options $data_types} {help_text "[_ assessment.Data_Type_help]"}}} +} +ad_form -extend -name item_add -form { {item_type:text(select) {label "[_ assessment.Item_Type]"} {options $item_types} {help_text "[_ assessment.Item_Type_help]"}} {num_choices:integer,optional,nospell {label "[_ assessment.Num_Choices]"} {html {size 5 maxlength 3}} {help_text "[_ assessment.Num_Choices_help]"}} + {validate_block:text(textarea),optional {label "[_ assessment.Validation_Block]"} {help_text "[_ assessment.lt_This_field_is_used_to]"} {html {cols 70 rows 6}}} } -new_request { set name "" set title "" @@ -79,12 +111,25 @@ set data_type "varchar" set item_type "sa" set num_choices 10 + if { $type == 1} { + set num_choices 3 + } } -on_submit { set category_ids [category::ad_form::get_categories -container_object_id $package_id] if {[empty_string_p $points]} { set points 0 } } -new_data { + if {[string eq $item_type "sa"]} { + set data_type "varchar" + } elseif {[string eq $item_type "oq"]} { + set data_type "text" + } elseif {[string eq $item_type "mc"]} { + set data_type "varchar" + } elseif {[string eq $item_type "fu"]} { + set data_type "file" + } + db_transaction { if {![db_0or1row item_exists {}]} { set as_item_id [as::item::new \ @@ -99,7 +144,8 @@ -feedback_right $feedback_right \ -feedback_wrong $feedback_wrong \ -max_time_to_complete $max_time_to_complete \ - -points $points] + -points $points \ + -validate_block $validate_block] } else { set as_item_id [as::item::edit \ -as_item_id $as_item_id \ @@ -113,7 +159,8 @@ -feedback_right $feedback_right \ -feedback_wrong $feedback_wrong \ -max_time_to_complete $max_time_to_complete \ - -points $points] + -points $points \ + -validate_block $validate_block] db_dml delete_files {} } @@ -141,7 +188,7 @@ } set folder_id [as::assessment::folder_id -package_id $package_id] - 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]] as::item_rels::new -item_rev_id $as_item_id -target_rev_id $content_rev_id -type as_item_content_rel } }