Index: openacs-4/packages/assessment/lib/item-show-display-f.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/lib/item-show-display-f.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/assessment/lib/item-show-display-f.adp 4 Jul 2005 15:02:23 -0000 1.1.2.1 @@ -0,0 +1,3 @@ +
+ +
Index: openacs-4/packages/assessment/lib/item-show-display-f.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/lib/item-show-display-f.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/assessment/lib/item-show-display-f.tcl 4 Jul 2005 15:02:23 -0000 1.1.2.1 @@ -0,0 +1,10 @@ +# Display shortanswer type data. +# author Timo Hentschel (timo@timohentschel.de) + +db_1row display_type_data {} + +ad_form -name item_show_display_f -mode display -action item-edit-display-f -export { assessment_id section_id as_item_id } -form { + {html_options:text,optional {label "[_ assessment.Html_Options]"} {html {size 80 maxlength 1000}} {value $html_display_options} {help_text "[_ assessment.Html_Options_help]"}} + {abs_size:text {label "[_ assessment.Absolute_Size]"} {html {size 5 maxlength 5}} {value $abs_size} {help_text "[_ assessment.Absolute_Size_help]"}} + {box_orientation:text {label "[_ assessment.Box_Orientation]"} {value "[_ assessment.$box_orientation]"} {help_text "[_ assessment.Box_Orientation_help]"}} +} Index: openacs-4/packages/assessment/lib/item-show-display-f.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/lib/item-show-display-f.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/assessment/lib/item-show-display-f.xql 4 Jul 2005 15:02:23 -0000 1.1.2.1 @@ -0,0 +1,16 @@ + + + + + + + select d.html_display_options, d.abs_size, d.box_orientation + from as_item_display_f d, as_item_rels r + where d.as_item_display_id = r.target_rev_id + and r.item_rev_id = :as_item_id + and r.rel_type = 'as_item_display_rel' + + + + + Index: openacs-4/packages/assessment/lib/item-show-display-fu.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/lib/item-show-display-fu.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/assessment/lib/item-show-display-fu.adp 4 Jul 2005 15:02:23 -0000 1.1.2.1 @@ -0,0 +1,3 @@ +
+ +
Index: openacs-4/packages/assessment/lib/item-show-display-fu.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/lib/item-show-display-fu.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/assessment/lib/item-show-display-fu.tcl 4 Jul 2005 15:02:23 -0000 1.1.2.1 @@ -0,0 +1,10 @@ +# Display shortanswer type data. +# author Timo Hentschel (timo@timohentschel.de) + +db_1row display_type_data {} + +ad_form -name item_show_display_sb -mode display -action item-edit-display-sb -export { assessment_id section_id as_item_id } -form { + {html_options:text,optional {label "[_ assessment.Html_Options]"} {html {size 80 maxlength 1000}} {value $html_display_options} {help_text "[_ assessment.Html_Options_help]"}} + {abs_size:text {label "[_ assessment.Absolute_Size]"} {html {size 5 maxlength 5}} {value $abs_size} {help_text "[_ assessment.Absolute_Size_help]"}} + {box_orientation:text {label "[_ assessment.Box_Orientation]"} {value "[_ assessment.$box_orientation]"} {help_text "[_ assessment.Box_Orientation_help]"}} +} Index: openacs-4/packages/assessment/lib/item-show-display-fu.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/lib/item-show-display-fu.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/assessment/lib/item-show-display-fu.xql 4 Jul 2005 15:02:23 -0000 1.1.2.1 @@ -0,0 +1,16 @@ + + + + + + + select d.html_display_options, d.abs_size, d.box_orientation + from as_item_display_sa d, as_item_rels r + where d.as_item_display_id = r.target_rev_id + and r.item_rev_id = :as_item_id + and r.rel_type = 'as_item_display_rel' + + + + + Index: openacs-4/packages/assessment/lib/item-show-fu.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/lib/item-show-fu.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/assessment/lib/item-show-fu.adp 4 Jul 2005 15:02:23 -0000 1.1.2.1 @@ -0,0 +1,3 @@ +
+ +
Index: openacs-4/packages/assessment/lib/item-show-fu.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/lib/item-show-fu.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/assessment/lib/item-show-fu.tcl 4 Jul 2005 15:02:23 -0000 1.1.2.1 @@ -0,0 +1,9 @@ +# Display short answer type data. +# author Timo Hentschel (timo@timohentschel.de) + +db_1row item_type_data {} +set boolean_options [list [list "[_ assessment.yes]" t] [list "[_ assessment.no]" f]] + +ad_form -name item_show_fu -mode display -action item-edit-fu -export { assessment_id section_id as_item_id } -form { + {title:text {label "[_ assessment.Title]"} {html {size 80 maxlength 1000}} {value $title} {help_text "[_ assessment.oq_Title_help]"}} +} Index: openacs-4/packages/assessment/lib/item-show-fu.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/lib/item-show-fu.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/assessment/lib/item-show-fu.xql 4 Jul 2005 15:02:23 -0000 1.1.2.1 @@ -0,0 +1,17 @@ + + + + + + + select c.title + from as_item_type_fu t, cr_revisions c, as_item_rels r + where t.as_item_type_id = r.target_rev_id + and r.item_rev_id = :as_item_id + and r.rel_type = 'as_item_type_rel' + and c.revision_id = t.as_item_type_id + + + + + Index: openacs-4/packages/assessment/lib/item-show-mc.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/lib/item-show-mc.tcl,v diff -u -N -r1.7.2.1 -r1.7.2.2 --- openacs-4/packages/assessment/lib/item-show-mc.tcl 31 May 2005 23:13:00 -0000 1.7.2.1 +++ openacs-4/packages/assessment/lib/item-show-mc.tcl 4 Jul 2005 15:02:23 -0000 1.7.2.2 @@ -24,7 +24,7 @@ incr count set options "" if {$count < $total} { - append options " \\\"[_" + append options " \\\"[_" } if {$count > 1} { append options " \\\"[_" Index: openacs-4/packages/assessment/lib/session-items.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/lib/session-items.adp,v diff -u -N -r1.7 -r1.7.2.1 --- openacs-4/packages/assessment/lib/session-items.adp 15 Mar 2005 22:46:15 -0000 1.7 +++ openacs-4/packages/assessment/lib/session-items.adp 4 Jul 2005 15:02:23 -0000 1.7.2.1 @@ -77,7 +77,7 @@
#assessment.not_answered#
#assessment.Edit# - + @@ -101,8 +101,11 @@ - @items.html;noquote@ + @items.html;noquote@ + + + Index: openacs-4/packages/assessment/lib/session-items.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/lib/session-items.tcl,v diff -u -N -r1.7 -r1.7.2.1 --- openacs-4/packages/assessment/lib/session-items.tcl 15 Apr 2005 17:26:45 -0000 1.7 +++ openacs-4/packages/assessment/lib/session-items.tcl 4 Jul 2005 15:02:23 -0000 1.7.2.1 @@ -7,14 +7,19 @@ } # todo: display feedback text -db_multirow -extend { presentation_type html result_points feedback answered_p choice_orientation next_title num } items session_items {} { +db_multirow -extend { presentation_type html result_points feedback answered_p choice_orientation next_title num view} items session_items {} { set default_value [as::item_data::get -subject_id $subject_id -as_item_id $as_item_id -session_id $session_id] set presentation_type [as::item_form::add_item_to_form -name session_results_$section_id -section_id $section_id -item_id $as_item_id -session_id $session_id -default_value $default_value -show_feedback $show_feedback] + if {$presentation_type == "fitb"} { regsub -all -line -nocase -- { + + + + + + select item_id + from cr_revisions + where revision_id = :as_item_display_id + + + + + + + + select i.html_display_options, i.abs_size, i.box_orientation + from cr_revisions cr, as_item_display_f i + where cr.revision_id = :type_id + and i.as_item_display_id = cr.revision_id + + + + + + + + select html_display_options, abs_size, box_orientation + from as_item_display_f + where as_item_display_id = :type_id + + + + + + + select file_id + from as_item_data + where as_item_id=:item_id + and session_id=:session_id + and section_id=:section_id + + + + + Index: openacs-4/packages/assessment/tcl/as-item-form-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/tcl/as-item-form-procs.xql,v diff -u -N -r1.8 -r1.8.2.1 --- openacs-4/packages/assessment/tcl/as-item-form-procs.xql 13 Apr 2005 18:51:54 -0000 1.8 +++ openacs-4/packages/assessment/tcl/as-item-form-procs.xql 4 Jul 2005 15:02:23 -0000 1.8.2.1 @@ -1,4 +1,3 @@ - Index: openacs-4/packages/assessment/tcl/as-item-type-fu-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/tcl/as-item-type-fu-procs.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/assessment/tcl/as-item-type-fu-procs.tcl 4 Jul 2005 15:02:23 -0000 1.1.2.1 @@ -0,0 +1,136 @@ +ad_library { + file upload item procs + @author Anny Flores (annyflores@viaro.net) Viaro Networks (www.viaro.net) + @creation-date 2005-06-24 +} + +namespace eval as::item_type_fu {} + +ad_proc -public as::item_type_fu::new { + {-title ""} +} { + + New File Upload Answers item to the data database +} { + set package_id [ad_conn package_id] + set folder_id [as::assessment::folder_id -package_id $package_id] + + # Insert as_item_type_fu in the CR (and as_item_type_fu table) getting the revision_id (as_item_type_id) + db_transaction { + set item_item_type_fu_id [content::item::new -parent_id $folder_id -content_type {as_item_type_fu} -name [as::item::generate_unique_name]] + set as_item_type_fu_id [content::revision::new -item_id $item_item_type_fu_id -content_type {as_item_type_fu} -title $title ] + + } + return $as_item_type_fu_id +} + +ad_proc -public as::item_type_fu::edit { + -as_item_type_id:required + {-title ""} +} { + + Edit File Upload Answers item to the data database +} { + # Update as_item_type_fu in the CR (and as_item_type_fu table) getting the revision_id (as_item_type_id) + db_transaction { + set type_item_id [db_string type_item_id {}] + set new_item_type_id [content::revision::new \ + -item_id $type_item_id \ + -content_type {as_item_type_fu} \ + -title $title] + } + + return $new_item_type_id +} + +ad_proc -public as::item_type_fu::copy { + -type_id:required +} { + + Copy a File Upload Type +} { + set package_id [ad_conn package_id] + set folder_id [as::assessment::folder_id -package_id $package_id] + + # Insert as_item_type_fu in the CR (and as_item_type_fu table) getting the revision_id (as_item_type_id) + db_transaction { + db_1row item_type_data {} + + set new_item_type_id [new -title $title ] + } + + return $new_item_type_id +} + +ad_proc -public as::item_type_fu::render { + -type_id:required + -section_id:required + -as_item_id:required + {-default_value ""} + {-session_id ""} + {-show_feedback ""} +} { + + Render a File Upload Type +} { + if {![empty_string_p $default_value]} { + array set values $default_value + set default $values(text_answer) + } else { + set default "" + } + + return [list $default ""] +} + +ad_proc -public as::item_type_fu::process { + -type_id:required + -session_id:required + -as_item_id:required + -section_id:required + -subject_id:required + {-staff_id ""} + {-response "" } + {-max_points 0} + {-allow_overwrite_p t} +} { + Process a Response to a File Upload Type +} { + + set package_id [ad_conn package_id] + set folder_id [as::assessment::folder_id -package_id $package_id] + + # Insert the file in the CR + db_transaction { + set file_item_id [content::item::new -parent_id $folder_id -name "[lindex $response 0]$session_id"] + set file_revision_id [content::revision::new -item_id $file_item_id -title [lindex $response 0]] + set content_file [cr_create_content_file $file_item_id $file_revision_id [lindex $response 1]] + set mime_type [cr_filename_to_mime_type -create [lindex $response 0]] + set tmp_size [file size [lindex $response 1]] + + db_dml update_revision {} + + set as_item_data_id [as::item_data::new -session_id $session_id -subject_id $subject_id -staff_id $staff_id -as_item_id $as_item_id -section_id $section_id -text_answer [lindex $response 0] -points "" -allow_overwrite_p $allow_overwrite_p] + } + db_dml update_item_data { } + +} + +ad_proc -public as::item_type_fu::results { + -as_item_item_id:required + -section_item_id:required + -data_type:required + -sessions:required +} { + Return the results of a given item in a given list of sessions as an array +} { + db_foreach get_results {} { + set results($session_id) $text_answer + } + + if {[array exists results]} { + return [array get results] + } else { + return + } +} Index: openacs-4/packages/assessment/tcl/as-item-type-fu-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/tcl/as-item-type-fu-procs.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/assessment/tcl/as-item-type-fu-procs.xql 4 Jul 2005 15:02:23 -0000 1.1.2.1 @@ -0,0 +1,59 @@ + + + + + + + select item_id + from cr_revisions + where revision_id = :as_item_type_id + + + + + + + + select cr.title, i.increasing_p, i.allow_negative_p + from cr_revisions cr, as_item_type_fu i + where cr.revision_id = :type_id + and i.as_item_type_id = cr.revision_id + + + + + + + + select d.session_id, d.text_answer + from as_item_data d, as_session_item_map m, cr_revisions ri, cr_revisions rs + where d.session_id in ([join $sessions ,]) + and d.as_item_id = ri.revision_id + and ri.item_id = :as_item_item_id + and d.section_id = rs.revision_id + and rs.item_id = :section_item_id + and m.session_id = d.session_id + and m.item_data_id = d.item_data_id + + + + + + + + update cr_revisions + set content=:content_file, mime_type =:mime_type,content_length=:tmp_size + where revision_id = :file_revision_id + + + + + + update as_item_data + set file_id = :file_revision_id + where item_data_id=:as_item_data_id + + + + + Index: openacs-4/packages/assessment/www/assessment.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/assessment.tcl,v diff -u -N -r1.47.2.3 -r1.47.2.4 --- openacs-4/packages/assessment/www/assessment.tcl 27 Jun 2005 14:50:16 -0000 1.47.2.3 +++ openacs-4/packages/assessment/www/assessment.tcl 4 Jul 2005 15:02:24 -0000 1.47.2.4 @@ -15,6 +15,7 @@ {return_url:optional} response_to_item:array,optional,multiple,html {next_asm:optional} + {response:multiple,optional} } -properties { context:onevalue page_title:onevalue @@ -312,6 +313,7 @@ # save answer set response_item_id \$item_id + db_1row process_item_type {} set item_type \[string range \$item_type end-1 end\] if {!\[info exists response_to_item(\$response_item_id)\]} { @@ -325,7 +327,14 @@ } set points \[ad_decode \$points \"\" 0 \$points\] - as::item_type_\$item_type\\::process -type_id \$item_type_id -session_id \$session_id -as_item_id \$response_item_id -section_id \$section_id -subject_id \$user_id -response \$response_to_item(\$response_item_id) -max_points \$points -allow_overwrite_p \$display(back_button_p) + + set response \$response_to_item(\$response_item_id) + + if { \$item_type == \"fu\" } { + set response \[list \$response_to_item(\$response_item_id) \$response_to_item(\${response_item_id}.tmpfile) \$response_to_item(\${response_item_id}.content-type)\] + } + + as::item_type_\$item_type\\::process -type_id \$item_type_id -session_id \$session_id -as_item_id \$response_item_id -section_id \$section_id -subject_id \$user_id -response \$response -max_points \$points -allow_overwrite_p \$display(back_button_p) } }" set after_submit "{ @@ -391,7 +400,13 @@ } set points \[ad_decode \$points \"\" 0 \$points\] - as::item_type_\$item_type\\::process -type_id \$item_type_id -session_id \$session_id -as_item_id \$response_item_id -section_id \$section_id -subject_id \$user_id -response \$response_to_item(\$response_item_id) -max_points \$points -allow_overwrite_p \$display(back_button_p) + set response \$response_to_item(\$response_item_id) + + if { \$item_type == \"fu\" } { + set response \[list \$response_to_item(\$response_item_id) \$response_to_item(\${response_item_id}.tmpfile) \$response_to_item(\${response_item_id}.content-type)\] + } + + as::item_type_\$item_type\\::process -type_id \$item_type_id -session_id \$session_id -as_item_id \$response_item_id -section_id \$section_id -subject_id \$user_id -response \$response -max_points \$points -allow_overwrite_p \$display(back_button_p) } if {\$section_order != \$new_section_order} { @@ -451,7 +466,14 @@ set item_type [string range $item_type end-1 end] set points [ad_decode $points "" 0 $points] - as::item_type_$item_type\::process -type_id $item_type_id -session_id $session_id -as_item_id $response_item_id -section_id $section_id -subject_id $user_id -response "" -max_points $points -allow_overwrite_p $display(back_button_p) + set response \$response_to_item(\$response_item_id)\ + + if { \$item_type == \"fu\" } { + set response \[list \$response_to_item(\$response_item_id) \$response_to_item(\${response_item_id}.tmpfile) \$response_to_item(\${response_item_id}.content-type)\] + } + + as::item_type_\$item_type\\::process -type_id \$item_type_id -session_id \$session_id -as_item_id \$response_item_id -section_id \$section_id -subject_id \$user_id -response \$response -max_points \$points -allow_overwrite_p \$display(back_button_p) + } if {$section_order != $new_section_order} { Index: openacs-4/packages/assessment/www/asm-admin/item-add-display-f.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/asm-admin/item-add-display-f.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/assessment/www/asm-admin/item-add-display-f.adp 4 Jul 2005 15:02:24 -0000 1.1.2.1 @@ -0,0 +1,7 @@ + +@page_title;noquote@ +@context;noquote@ + +
+ +
Index: openacs-4/packages/assessment/www/asm-admin/item-add-display-f.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/asm-admin/item-add-display-f.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/assessment/www/asm-admin/item-add-display-f.tcl 4 Jul 2005 15:02:24 -0000 1.1.2.1 @@ -0,0 +1,97 @@ +ad_page_contract { + Form to add an item with shortanswer display. + + @author Anny Flores (annyflores@viaro.net) Viaro Networks (www.viaro.net) + +} { + assessment_id:integer + section_id:integer + as_item_id:integer + after:integer +} -properties { + context:onevalue + page_title:onevalue +} + +set package_id [ad_conn package_id] +permission::require_permission -object_id $package_id -privilege create +permission::require_permission -object_id $assessment_id -privilege admin + +# Get the assessment data +as::assessment::data -assessment_id $assessment_id + +if {![info exists assessment_data(assessment_id)]} { + ad_return_complaint 1 "[_ assessment.Requested_assess_does]" + ad_script_abort +} + +set page_title [_ assessment.add_item_display_f] +set context [list [list index [_ assessment.admin]] [list [export_vars -base one-a {assessment_id}] $assessment_data(title)] $page_title] + + +set orientation_types [list] +foreach orientation_type [list horizontal vertical] { + lappend orientation_types [list "[_ assessment.$orientation_type]" $orientation_type] +} + + +ad_form -name item_add_display_f -action item-add-display-f -export { assessment_id section_id after } -form { + {as_item_id:key} + {html_options:text,optional,nospell {label "[_ assessment.Html_Options]"} {html {size 80 maxlength 1000}} {help_text "[_ assessment.Html_Options_help]"}} + {abs_size:text,nospell {label "[_ assessment.Absolute_Size]"} {html {size 5 maxlength 5}} {help_text "[_ assessment.Absolute_Size_help]"}} + {box_orientation:text(select) {label "[_ assessment.Box_Orientation]"} {options $orientation_types} {help_text "[_ assessment.Box_Orientation_help]"}} +} -edit_request { + set html_options "" + set abs_size "" + set box_orientation "vertical" +} -validate { + {html_options {[as::assessment::check_html_options -options $html_options]} "[_ assessment.error_html_options]"} +} -edit_data { + db_transaction { + set new_assessment_rev_id [as::assessment::new_revision -assessment_id $assessment_id] + set section_id [as::section::latest -section_id $section_id -assessment_rev_id $new_assessment_rev_id] + set new_section_id [as::section::new_revision -section_id $section_id -assessment_id $assessment_id] + db_dml update_section_in_assessment {} + set old_item_id $as_item_id + + if {![db_0or1row item_display {}] || $object_type != "as_item_display_f"} { + set as_item_display_id [as::item_display_f::new \ + -html_display_options $html_options \ + -abs_size $abs_size \ + -box_orientation $box_orientation] + + if {![info exists object_type]} { + # first item display mapped + as::item_rels::new -item_rev_id $as_item_id -target_rev_id $as_item_display_id -type as_item_display_rel + } else { + # old item display existing + set as_item_id [as::item::new_revision -as_item_id $as_item_id] + } + } else { + # old f item display existing + set as_item_id [as::item::new_revision -as_item_id $as_item_id] + set as_item_display_id [as::item_display_f::edit \ + -as_item_display_id $as_item_display_id \ + -html_display_options $html_options \ + -abs_size $abs_size \ + -box_orientation $box_orientation] + } + + set old_item_id [as::item::latest -as_item_id $old_item_id -section_id $new_section_id -default 0] + if {$old_item_id == 0} { + db_dml move_down_items {} + incr after + db_dml insert_new_item {} + } else { + db_dml update_item_display {} + db_1row item_data {} + db_dml update_item {} + } + } +} -after_submit { + # now go to assessment-page + ad_returnredirect [export_vars -base one-a {assessment_id}] + ad_script_abort +} + +ad_return_template Index: openacs-4/packages/assessment/www/asm-admin/item-add-display-f.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/asm-admin/item-add-display-f.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/assessment/www/asm-admin/item-add-display-f.xql 4 Jul 2005 15:02:24 -0000 1.1.2.1 @@ -0,0 +1,88 @@ + + + + + + + select r.target_rev_id as as_item_display_id, o.object_type + from as_item_rels r, acs_objects o + where r.item_rev_id = :as_item_id + and r.rel_type = 'as_item_display_rel' + and o.object_id = r.target_rev_id + + + + + + + + update as_assessment_section_map + set section_id = :new_section_id + where assessment_id = :new_assessment_rev_id + and section_id = :section_id + + + + + + + + update as_item_section_map + set sort_order = sort_order+1 + where section_id = :new_section_id + and sort_order > :after + + + + + + + + insert into as_item_section_map + (as_item_id, section_id, required_p, sort_order, max_time_to_complete, + fixed_position, points) + (select :as_item_id as as_item_id, :new_section_id as section_id, + required_p, :after as sort_order, max_time_to_complete, + 0 as fixed_position, points + from as_items + where as_item_id = :as_item_id) + + + + + + + + update as_item_rels + set target_rev_id = :as_item_display_id + where item_rev_id = :as_item_id + and rel_type = 'as_item_display_rel' + + + + + + + + select required_p, max_time_to_complete, points + from as_items + where as_item_id = :as_item_id + + + + + + + + update as_item_section_map + set as_item_id = :as_item_id, + required_p = :required_p, + max_time_to_complete = :max_time_to_complete, + points = :points + where as_item_id = :old_item_id + and section_id = :new_section_id + + + + + Index: openacs-4/packages/assessment/www/asm-admin/item-add-fu.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/asm-admin/item-add-fu.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/assessment/www/asm-admin/item-add-fu.adp 4 Jul 2005 15:02:24 -0000 1.1.2.1 @@ -0,0 +1,7 @@ + +@page_title;noquote@ +@context;noquote@ + +
+ +
Index: openacs-4/packages/assessment/www/asm-admin/item-add-fu.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/asm-admin/item-add-fu.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/assessment/www/asm-admin/item-add-fu.tcl 4 Jul 2005 15:02:24 -0000 1.1.2.1 @@ -0,0 +1,76 @@ +ad_page_contract { + Form to add a short answer item. + + @author Anny Flores (annyflores@viaro.net) Viaro Networks (www.viaro.net) + @creation date 2005-06-23 +} { + assessment_id:integer + section_id:integer + as_item_id:integer + after:integer +} -properties { + context:onevalue + page_title:onevalue +} + +set package_id [ad_conn package_id] +permission::require_permission -object_id $package_id -privilege create +permission::require_permission -object_id $assessment_id -privilege admin + +# Get the assessment data +as::assessment::data -assessment_id $assessment_id + +if {![info exists assessment_data(assessment_id)]} { + ad_return_complaint 1 "[_ assessment.Requested_assess_does]" + ad_script_abort +} + +set page_title [_ assessment.add_item_type_fu] +set context [list [list index [_ assessment.admin]] [list [export_vars -base one-a {assessment_id}] $assessment_data(title)] $page_title] + + +set display_types [list] +foreach display_type [db_list display_types {}] { + lappend display_types [list "[_ assessment.item_display_$display_type]" $display_type] +} + + +ad_form -name item_add_fu -action item-add-fu -export { assessment_id section_id after } -form { + {as_item_id:key} + {title:text {label "[_ assessment.Title]"} {html {size 80 maxlength 1000}} {help_text "[_ assessment.fu_Title_help]"}} + {display_type:text(select) {label "[_ assessment.Display_Type]"} {options $display_types} {help_text "[_ assessment.Display_Type_help]"}} +} -edit_request { + set title "" + set display_type "f" +} -edit_data { + db_transaction { + if {![db_0or1row item_type {}] || $object_type != "as_item_type_fu"} { + set as_item_type_id [as::item_type_fu::new -title $title ] + + if {![info exists object_type]} { + # first item type mapped + as::item_rels::new -item_rev_id $as_item_id -target_rev_id $as_item_type_id -type as_item_type_rel + } else { + # old item type existing + set as_item_id [as::item::new_revision -as_item_id $as_item_id] + db_dml update_item_type {} + } + } else { + # old fu item type existing + set as_item_id [as::item::new_revision -as_item_id $as_item_id] + set as_item_type_id [as::item_type_fu::edit \ + -as_item_type_id $as_item_type_id \ + -title $title \ + -increasing_p $increasing_p \ + -allow_negative_p $allow_negative_p] + + db_dml update_item_type {} + } + } +} -after_submit { + # now go to display-type specific form (i.e. textbox) + ad_returnredirect [export_vars -base "item-add-display-$display_type" {assessment_id section_id as_item_id after}] + ad_script_abort +} + +ad_return_template Index: openacs-4/packages/assessment/www/asm-admin/item-add-fu.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/asm-admin/item-add-fu.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/assessment/www/asm-admin/item-add-fu.xql 4 Jul 2005 15:02:24 -0000 1.1.2.1 @@ -0,0 +1,37 @@ + + + + + + + select display_type + from as_item_types_map + where item_type = 'fu' + + + + + + + + select r.target_rev_id as as_item_type_id, o.object_type + from as_item_rels r, acs_objects o + where r.item_rev_id = :as_item_id + and r.rel_type = 'as_item_type_rel' + and o.object_id = r.target_rev_id + + + + + + + + update as_item_rels + set target_rev_id = :as_item_type_id + where item_rev_id = :as_item_id + and rel_type = 'as_item_type_rel' + + + + + Index: openacs-4/packages/assessment/www/asm-admin/item-edit-display-f.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/asm-admin/item-edit-display-f.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/assessment/www/asm-admin/item-edit-display-f.adp 4 Jul 2005 15:02:24 -0000 1.1.2.1 @@ -0,0 +1,7 @@ + +@page_title;noquote@ +@context_bar;noquote@ + +
+ +
Index: openacs-4/packages/assessment/www/asm-admin/item-edit-display-f.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/asm-admin/item-edit-display-f.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/assessment/www/asm-admin/item-edit-display-f.tcl 4 Jul 2005 15:02:24 -0000 1.1.2.1 @@ -0,0 +1,89 @@ +ad_page_contract { + Form to edit an item with shortanswer display. + + @author Anny Flores (annyflores@viaro.net) Viaro Networks (www.viaro.net) + @cvs-id $Id: +} { + assessment_id:integer + section_id:integer + as_item_id:integer +} -properties { + context_bar:onevalue + page_title:onevalue +} + +set package_id [ad_conn package_id] +permission::require_permission -object_id $package_id -privilege create +permission::require_permission -object_id $assessment_id -privilege admin + +# Get the assessment data +as::assessment::data -assessment_id $assessment_id + +if {![info exists assessment_data(assessment_id)]} { + ad_return_complaint 1 "[_ assessment.Requested_assess_does]" + ad_script_abort +} + +set page_title [_ assessment.edit_item_display_f] +set context_bar [ad_context_bar [list [export_vars -base one-a {assessment_id}] $assessment_data(title)] [list [export_vars -base item-edit {assessment_id section_id as_item_id}] [_ assessment.edit_item]] $page_title] + +set orientation_types [list] +foreach orientation_type [list horizontal vertical] { + lappend orientation_types [list "[_ assessment.$orientation_type]" $orientation_type] +} + + +ad_form -name item_edit_display_f -action item-edit-display-f -export { assessment_id section_id } -form { + {as_item_id:key} + {html_display_options:text,optional,nospell {label "[_ assessment.Html_Options]"} {html {size 80 maxlength 1000}} {help_text "[_ assessment.Html_Options_help]"}} + {abs_size:text,nospell {label "[_ assessment.Absolute_Size]"} {html {size 5 maxlength 5}} {help_text "[_ assessment.Absolute_Size_help]"}} + {box_orientation:text(select) {label "[_ assessment.Box_Orientation]"} {options $orientation_types} {help_text "[_ assessment.Box_Orientation_help]"}} + {as_item_display_id:text(hidden)} +} -edit_request { + db_1row last_used_display_type {} + if {![empty_string_p $as_item_display_id]} { + db_1row display_type_data {} + } else { + # default data if display newly mapped + set html_display_options "" + set abs_size 5 + set box_orientation "vertical" + set as_item_display_id 0 + } +} -validate { + {html_display_options {[as::assessment::check_html_options -options $html_display_options]} "[_ assessment.error_html_options]"} +} -edit_data { + db_transaction { + set new_item_id [as::item::new_revision -as_item_id $as_item_id] + + if {$as_item_display_id} { + # edit existing display type + set new_item_display_id [as::item_display_f::edit \ + -as_item_display_id $as_item_display_id \ + -html_display_options $html_display_options \ + -abs_size $abs_size \ + -box_orientation $box_orientation] + } else { + # create new display type + set new_item_display_id [as::item_display_f::new \ + -html_display_options $html_display_options \ + -abs_size $abs_size \ + -box_orientation $box_orientation] + } + + set new_assessment_rev_id [as::assessment::new_revision -assessment_id $assessment_id] + set section_id [as::section::latest -section_id $section_id -assessment_rev_id $new_assessment_rev_id] + set new_section_id [as::section::new_revision -section_id $section_id -assessment_id $assessment_id] + set as_item_id [as::item::latest -as_item_id $as_item_id -section_id $new_section_id] + db_dml update_section_in_assessment {} + db_dml update_item_in_section {} + db_dml update_display_of_item {} + } + set as_item_id $new_item_id + set section_id $new_section_id +} -after_submit { + ad_returnredirect [export_vars -base "item-edit" {assessment_id section_id as_item_id}] + ad_script_abort +} + +ad_return_template Index: openacs-4/packages/assessment/www/asm-admin/item-edit-display-f.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/asm-admin/item-edit-display-f.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/assessment/www/asm-admin/item-edit-display-f.xql 4 Jul 2005 15:02:24 -0000 1.1.2.1 @@ -0,0 +1,62 @@ + + + + + + + select max(d.as_item_display_id) as as_item_display_id + from cr_revisions r, as_item_rels ir, cr_revisions r2, as_item_display_f d + where r.revision_id = :as_item_id + and r2.item_id = r.item_id + and ir.item_rev_id = r2.revision_id + and ir.rel_type = 'as_item_display_rel' + and d.as_item_display_id = ir.target_rev_id + + + + + + + + select d.html_display_options, d.abs_size, d.box_orientation + from cr_revisions r, as_item_display_f d + where r.revision_id = d.as_item_display_id + and d.as_item_display_id = :as_item_display_id + + + + + + + + update as_assessment_section_map + set section_id = :new_section_id + where assessment_id = :new_assessment_rev_id + and section_id = :section_id + + + + + + + + update as_item_section_map + set as_item_id = :new_item_id + where section_id = :new_section_id + and as_item_id = :as_item_id + + + + + + + + update as_item_rels + set target_rev_id = :new_item_display_id + where item_rev_id = :new_item_id + and rel_type = 'as_item_display_rel' + + + + + Index: openacs-4/packages/assessment/www/asm-admin/item-edit-fu.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/asm-admin/item-edit-fu.adp,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/assessment/www/asm-admin/item-edit-fu.adp 4 Jul 2005 15:02:24 -0000 1.1.2.1 @@ -0,0 +1,7 @@ + +@page_title;noquote@ +@context;noquote@ + +
+ +
Index: openacs-4/packages/assessment/www/asm-admin/item-edit-fu.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/asm-admin/item-edit-fu.tcl,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/assessment/www/asm-admin/item-edit-fu.tcl 4 Jul 2005 15:02:24 -0000 1.1.2.1 @@ -0,0 +1,61 @@ +ad_page_contract { + Form to edit a short answer item. + + @author Anny Flores (annyflores@viaro.net) Viaro Networks (www.viaro.net) + +} { + assessment_id:integer + section_id:integer + as_item_id:integer +} -properties { + context:onevalue + page_title:onevalue +} + +set package_id [ad_conn package_id] +permission::require_permission -object_id $package_id -privilege create +permission::require_permission -object_id $assessment_id -privilege admin + +# Get the assessment data +as::assessment::data -assessment_id $assessment_id + +if {![info exists assessment_data(assessment_id)]} { + ad_return_complaint 1 "[_ assessment.Requested_assess_does]" + ad_script_abort +} + +set page_title [_ assessment.edit_item_type_fu] +set context [list [list index [_ assessment.admin]] [list [export_vars -base one-a {assessment_id}] $assessment_data(title)] [list [export_vars -base item-edit {assessment_id section_id as_item_id}] [_ assessment.edit_item]] $page_title] + +set boolean_options [list [list "[_ assessment.yes]" t] [list "[_ assessment.no]" f]] + + +ad_form -name item_edit_fu -action item-edit-fu -export { assessment_id section_id } -form { + {as_item_id:key} + {title:text {label "[_ assessment.Title]"} {html {size 80 maxlength 1000}} {help_text "[_ assessment.oq_Title_help]"}} +} -edit_request { + db_1row item_type_data {} +} -edit_data { + db_transaction { + set new_item_id [as::item::new_revision -as_item_id $as_item_id] + set as_item_type_id [db_string item_type_id {}] + set new_item_type_id [as::item_type_fu::edit \ + -as_item_type_id $as_item_type_id \ + -title $title] + + set new_assessment_rev_id [as::assessment::new_revision -assessment_id $assessment_id] + set section_id [as::section::latest -section_id $section_id -assessment_rev_id $new_assessment_rev_id] + set new_section_id [as::section::new_revision -section_id $section_id -assessment_id $assessment_id] + set as_item_id [as::item::latest -as_item_id $as_item_id -section_id $new_section_id] + db_dml update_section_in_assessment {} + db_dml update_item_in_section {} + db_dml update_item_type {} + } + set as_item_id $new_item_id + set section_id $new_section_id +} -after_submit { + ad_returnredirect [export_vars -base "item-edit" {assessment_id section_id as_item_id}] + ad_script_abort +} + +ad_return_template Index: openacs-4/packages/assessment/www/asm-admin/item-edit-fu.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/asm-admin/item-edit-fu.xql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/assessment/www/asm-admin/item-edit-fu.xql 4 Jul 2005 15:03:11 -0000 1.1.2.1 @@ -0,0 +1,61 @@ + + + + + + + select r.title + from cr_revisions r, as_item_rels ir, as_item_type_fu i + where r.revision_id = i.as_item_type_id + and i.as_item_type_id = ir.target_rev_id + and ir.item_rev_id = :as_item_id + and ir.rel_type = 'as_item_type_rel' + + + + + + + + select target_rev_id + from as_item_rels + where item_rev_id = :new_item_id + and rel_type = 'as_item_type_rel' + + + + + + + + update as_assessment_section_map + set section_id = :new_section_id + where assessment_id = :new_assessment_rev_id + and section_id = :section_id + + + + + + + + update as_item_section_map + set as_item_id = :new_item_id + where section_id = :new_section_id + and as_item_id = :as_item_id + + + + + + + + update as_item_rels + set target_rev_id = :new_item_type_id + where item_rev_id = :new_item_id + and rel_type = 'as_item_type_rel' + + + + + Index: openacs-4/packages/assessment/www/asm-admin/item-edit-mc.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/asm-admin/item-edit-mc.tcl,v diff -u -N -r1.8.2.1 -r1.8.2.2 --- openacs-4/packages/assessment/www/asm-admin/item-edit-mc.tcl 31 May 2005 23:13:02 -0000 1.8.2.1 +++ openacs-4/packages/assessment/www/asm-admin/item-edit-mc.tcl 4 Jul 2005 15:02:24 -0000 1.8.2.2 @@ -149,7 +149,7 @@ -numeric_value \"\" \\ -text_value \"\" \\ -content_value \"\" \\ - -feedback_text \"\" + -feedback_text \"\" \\ -selected_p \"\" \\ -correct_answer_p \[ad_decode \[info exists correct(\$i)\] 0 f t\] \\ -sort_order \$count \\ Index: openacs-4/packages/assessment/www/asm-admin/item-edit.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/asm-admin/item-edit.tcl,v diff -u -N -r1.6 -r1.6.2.1 --- openacs-4/packages/assessment/www/asm-admin/item-edit.tcl 15 Apr 2005 17:26:46 -0000 1.6 +++ openacs-4/packages/assessment/www/asm-admin/item-edit.tcl 4 Jul 2005 15:02:24 -0000 1.6.2.1 @@ -33,6 +33,9 @@ set item_type [string range [db_string item_type {}] end-1 end] set display_type [string range [db_string display_type {}] end-1 end] +if {[string eq $display_type "_f"]} { + set display_type f +} ad_form -name item_edit -mode display -action item-edit-general -export { assessment_id section_id as_item_id } -form { {title:text(textarea) {label "[_ assessment.Title]"} {html {rows 3 cols 80}} {value $title} {help_text "[_ assessment.item_Title_help]"}}