Index: openacs-4/packages/assessment/www/asm-admin/item-add-display-rb.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/asm-admin/item-add-display-rb.tcl,v diff -u -r1.5 -r1.6 --- openacs-4/packages/assessment/www/asm-admin/item-add-display-rb.tcl 7 Apr 2005 22:36:19 -0000 1.5 +++ openacs-4/packages/assessment/www/asm-admin/item-add-display-rb.tcl 12 Jun 2006 02:49:51 -0000 1.6 @@ -8,6 +8,7 @@ section_id:integer as_item_id:integer after:integer + {type ""} } -properties { context:onevalue page_title:onevalue @@ -20,15 +21,72 @@ # 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_rb] set context [list [list index [_ assessment.admin]] [list [export_vars -base one-a {assessment_id}] $assessment_data(title)] $page_title] +set type $assessment_data(type) +if { $type == 1} { + set html_options "" + set choice_orientation "vertical" + set label_orientation "top" + set order_type "order_of_entry" + set answer_alignment "besideright" + 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_rb"} { + set as_item_display_id [as::item_display_rb::new \ + -html_display_options $html_options \ + -choice_orientation $choice_orientation \ + -choice_label_orientation $label_orientation \ + -sort_order_type $order_type \ + -item_answer_alignment $answer_alignment] + + 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 rb 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_rb::edit \ + -as_item_display_id $as_item_display_id \ + -html_display_options $html_options \ + -choice_orientation $choice_orientation \ + -choice_label_orientation $label_orientation \ + -sort_order_type $order_type \ + -item_answer_alignment $answer_alignment] + } + + 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 {} + } + } + ad_returnredirect [export_vars -base one-a {assessment_id}]\#$as_item_id + ad_script_abort +} + set choice_or_types [list] foreach choice_or_type [list horizontal vertical] { lappend choice_or_types [list "[_ assessment.$choice_or_type]" $choice_or_type] @@ -112,7 +170,7 @@ } } -after_submit { # now go to assessment-page - ad_returnredirect [export_vars -base one-a {assessment_id}] + ad_returnredirect [export_vars -base one-a {assessment_id}]&\#$as_item_id ad_script_abort }