Index: openacs-4/packages/xowiki/tcl/repeat-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/repeat-procs.tcl,v diff -u -r1.7 -r1.8 --- openacs-4/packages/xowiki/tcl/repeat-procs.tcl 21 Oct 2017 16:49:45 -0000 1.7 +++ openacs-4/packages/xowiki/tcl/repeat-procs.tcl 15 Dec 2017 16:08:14 -0000 1.8 @@ -160,16 +160,19 @@ set neededComponents [expr {[llength $value] / 2}] set availableComponents [llength ${:components}] #ns_log notice "[self] repeatContainer set_compound_value <$value> have $availableComponents needed $neededComponents" + :check_nr_components $neededComponents $availableComponents + next + } + + repeatContainer instproc check_nr_components {neededComponents availableComponents} { if {$neededComponents > $availableComponents} { lassign [:item_spec] isRequired itemSpec for {set i $availableComponents} {$i < $neededComponents} {incr i} { :require_component $i } } - - next } - + repeatContainer instproc convert_to_internal {} { set values [:value] :trim_values @@ -285,7 +288,12 @@ # set ff [dict create {*}$v] set html "
    \n" - foreach c [lrange [:components] 1 [:count_values [:value]]] { + + set neededComponents [expr {[llength $v] / 2}] + set availableComponents [llength ${:components}] + :check_nr_components $neededComponents $availableComponents + + foreach c [lrange ${:components} 1 [:count_values $v]] { if {[dict exists $ff [$c set name]]} { append html "
  1. [$c pretty_value [dict get $ff [$c set name]]]
  2. \n" }