%3 ::xowiki::formfield::text_fields ::xowiki::formfield::text_fields ::xowiki::formfield::ShuffleField ::xowiki::formfield::ShuffleField ::xowiki::formfield::text_fields->::xowiki::formfield::ShuffleField ::xowiki::formfield::CompoundField ::xowiki::formfield::CompoundField ::xowiki::formfield::text_fields->::xowiki::formfield::CompoundField ::xowiki::formfield::enumeration ::xowiki::formfield::enumeration scores ::xowiki::formfield::enumeration->::xowiki::formfield::ShuffleField ::xowiki::formfield::FormField ::xowiki::formfield::FormField ::xowiki::formfield::ShuffleField->::xowiki::formfield::FormField ::xowiki::formfield::checkbox ::xowiki::formfield::checkbox ::xowiki::formfield::checkbox->::xowiki::formfield::enumeration ::xowiki::formfield::select ::xowiki::formfield::select ::xowiki::formfield::select->::xowiki::formfield::enumeration ::xowiki::formfield::radio ::xowiki::formfield::radio ::xowiki::formfield::radio->::xowiki::formfield::enumeration ::xowiki::formfield::boolean_checkbox ::xowiki::formfield::boolean_checkbox ::xowiki::formfield::boolean_checkbox->::xowiki::formfield::checkbox ::xowiki::formfield::month ::xowiki::formfield::month ::xowiki::formfield::month->::xowiki::formfield::select ::xowiki::formfield::HH24 ::xowiki::formfield::HH24 ::xowiki::formfield::HH24->::xowiki::formfield::select ::xowiki::formfield::iprange ::xowiki::formfield::iprange ::xowiki::formfield::iprange->::xowiki::formfield::select ::xowiki::formfield::candidate_box_select ::xowiki::formfield::candidate_box_select ::xowiki::formfield::candidate_box_select->::xowiki::formfield::select ::xowiki::formfield::security_policy ::xowiki::formfield::security_policy ::xowiki::formfield::security_policy->::xowiki::formfield::select ::xowiki::formfield::MM ::xowiki::formfield::MM ::xowiki::formfield::MM->::xowiki::formfield::select ::xowiki::formfield::MI ::xowiki::formfield::MI ::xowiki::formfield::MI->::xowiki::formfield::select ::xowiki::formfield::DD ::xowiki::formfield::DD ::xowiki::formfield::DD->::xowiki::formfield::select ::xowiki::formfield::bootstrap-select ::xowiki::formfield::bootstrap-select ::xowiki::formfield::bootstrap-select->::xowiki::formfield::select ::xowiki::formfield::grading_scheme ::xowiki::formfield::grading_scheme ::xowiki::formfield::grading_scheme->::xowiki::formfield::select ::xowiki::formfield::reorder_box ::xowiki::formfield::reorder_box ::xowiki::formfield::reorder_box->::xowiki::formfield::select ::xowiki::formfield::class ::xowiki::formfield::class ::xowiki::formfield::class->::xowiki::formfield::select ::xowiki::formfield::mon ::xowiki::formfield::mon ::xowiki::formfield::mon->::xowiki::formfield::select ::xowiki::formfield::boolean ::xowiki::formfield::boolean ::xowiki::formfield::boolean->::xowiki::formfield::radio ::xowiki::formfield::scale ::xowiki::formfield::scale ::xowiki::formfield::scale->::xowiki::formfield::radio

Class ::xowiki::formfield::enumeration

::xowiki::formfield::enumeration[i] create ... \
           [ -category_tree category_tree ] \
           [ -descriptions (default "") ]

Defined in

Class Relations

  • class: ::xotcl::Class[i]
  • superclass: ::xowiki::formfield::ShuffleField[i]
  • subclass: ::xowiki::formfield::checkbox[i], ::xowiki::formfield::select[i], ::xowiki::formfield::radio[i]
::xotcl::Class create ::xowiki::formfield::enumeration \
     -superclass ::xowiki::formfield::ShuffleField

Methods (to be applied on instances)

  • scores (scripted, public)

     <instance of xowiki::formfield::enumeration[i]> scores [ -r r ] \
        [ -f f ] [ -rk rk ] [ -fk fk ] [ -R R ] [ -W W ]
    Switches:
    -r (optional, defaults to "0")
    number of answers which are true
    -f (optional, defaults to "0")
    number of answers which are false
    -rk (optional, defaults to "0")
    number checkmarks to a true answer
    -fk (optional, defaults to "0")
    number checkmarks to a false answer
    -R (optional)
    number correct answered
    -W (optional)
    number incorrect answered

    Testcases:
    create_test_items
    #
    # Now calculate the scores of different scoring schemes.
    #
    if {$r > 0} {
      #
      # Certain correction schemes divide by $r. We cannot use
      # these schemes in such cases.
      #
      if {$f == 0} {
        #
        # No penalty for marking a wrong solution, when there is
        # no wrong solution.
        #
        set wi1 [expr {max((100.0/$r) * $rk, 0)}]
        set wi2 [expr {max((100.0/$r) * $rk, 0)}]
      } else {
        set wi1 [expr {max((100.0/$r) * $rk - (100.0/$f) * $fk, 0)}]
        if {$f == 1} {
          #
          # Special rule when there is just one wrong solution.
          #
          set wi2 [expr {max((100.0/$r) * $rk - min(50.0, (100.0/$f)) * $fk, 0)}]
        } else {
          set wi2 $wi1
        }
      }
      set canvas [expr {max(($rk * 100.0/$r) - ($fk * 100.0/$r), 0)}]
      set etk    [expr {100.0 * (($r*1.0+$f) /$r) * ($rk - $fk) / ($R + $W) }]
    } else {
      set wi1 0.0
      set wi2 0.0
      set etk 0.0
      set canvas 0.0
    }
    
    set s1   [expr {100.0 * $R / ($R + $W) }]
    set s2   [expr {100.0 * ($R - $W/2.0) / ($R + $W) }]
    
    set ggw0 [expr {100.0 * ($R - $W) / ($R + $W) }]
    set ggw  [:ggw $R $W]
    
    return [list wi1 $wi1 wi2 $wi2 s1 $s1 s2 $s2 etk $etk ggw0 $ggw0 ggw $ggw canvas $canvas]