Index: openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl,v diff -u -r1.218 -r1.219 --- openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl 13 Feb 2009 22:42:23 -0000 1.218 +++ openacs-4/packages/xowiki/tcl/xowiki-www-procs.tcl 14 Feb 2009 13:39:07 -0000 1.219 @@ -913,25 +913,28 @@ _* { # instance attribute fields set varname [string range $att 1 end] - set preset "" - if {[my exists $varname]} {set preset [my set $varname]} - set v [$f value_if_nothing_is_returned_from_from $preset] + set default "" + if {[my exists $varname]} {set default [my set $varname]} + set v [$f value_if_nothing_is_returned_from_form $default] set value [$f value $v] - if {$v ne $preset} { + if {$v ne $default} { if {![string match *.* $att]} {my set $varname $value} } } default { # user form content fields - set preset "" - if {[info exists __ia($att)]} {set preset $__ia($att)} - set v [$f value_if_nothing_is_returned_from_from $preset] + set default "" + # The reason, why we set in the next line the default to + # the old value is due to "show-solution" in the qti + # use-case. Maybe one should alter this use-case to + # simplify the semantics here. + if {[info exists __ia($att)]} {set default $__ia($att)} + set v [$f value_if_nothing_is_returned_from_form $default] + #my msg "value_if_nothing_is_returned_from_form '$default' => '$v' (type=[$f info class])" set value [$f value $v] - if {$v ne $preset} { - if {![string match *.* $att]} {set __ia($att) $value} - } + if {![string match *.* $att]} {set __ia($att) $value} } - } + } } #