• last updated 13 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Added substitution values for short text answers

This change adds the possibility to provide randomized substitution values to short

text questions via value sets.

Value sets are a means for a content developer to provide multiple matching answers which are inserted into the text before an exercise is shown to the end user. One can e.g. provide for a calculation exercise several input and some output values, such that the students get different calculation exercises provided. These values can also be used for the correct-when clauses.

The content developer can use percent-code delimited elements when defining the exercise:

---

Assume, you want to download a %x.what% with the size of %x.size% over a %x.type% connection with a rate of %x.rate% from %univ%.

---

and also in "correct when"

---

%x.secs%

---

the value sets can be provided via an extra field for the short-text questions and have the form

of a Tcl dict:

---

univ {WU-Vienna TU-Vienna "University of Vienna"}

x {

{type "ADSL" rate "256 kbit/s" size "235 MB" secs 5300 what "Powerpoint file"}

{type "ADSL" rate "512 kbit/s" size "5.6 MB" secs 91 what "PDF file"}

{type "4G" rate "80 Mbit/s" size "270 MB" secs 27 what "PDF file"}

{type "4G" rate "40 Mbit/s" size "650 MB" secs 32 what "Lecturecast Video" }

{type "5G" rate "1 Gbit/s" size "520 MB" secs 4 what "Powerpoint file" }

{type "5G" rate "1 Gbit/s" size "1.5 GB" secs 12 what "Lecturecast Video" }

}

---

In this example, every student will get a randomly chosen value for the university (%univ%)

and matching elements containing the answer (e.g. download time of "270 MB" over "80 Mbit/s" is 27 seconds).

The download time is used in the correct when part, such that auto-correction can be applied.

When a student answers this exercise, the system provides random choices that are substituted in the text.

For every variable ("univ", "x", ..) different random values are used for the student.

Certainly, for other students, other numbers and results will be provided.

Note, that this value sets can be used for numeric an non-numeric exercises.

Current limitations:

- only defined for short-text questions (can be in general also for other question types)

- no elaborate user interface for entering value sets (or a thorough validator) is provided.

    • -14
    • +129
    /openacs-4/packages/xowf/tcl/test-item-procs.tcl
Mention covered api

Do not treat invalid integers as if they were the empty string

Provide an api to delete proctoring folders, extend regression tests

avoid call to deprecated function, simplify code

make procs public, since these have to be called from pages of other packages

provide default value for storage_type for in-memory created items

extend regression test: check, whether pages call deprecated code or private functions of other packages

make tcl_to_html public

Merge queries together

added function "xowiki::randomized_index"

extended regression test

bumped version to 5.10.0d75

    • -2
    • +2
    /openacs-4/packages/xowiki/xowiki.info
added instance variable storage_type

    • -2
    • +6
    /openacs-4/packages/xowiki/tcl/xowiki-procs.tcl
reduce font sizes

add debugging output for migration phase

    • -1
    • +8
    /openacs-4/packages/xowiki/tcl/package-procs.tcl
Check if the subscription exists before deletion

use test user_id instead of current user for running tests

added storage_type to xowiki_form_instance_item_view

    • -2
    • +2
    /openacs-4/packages/xowiki/xowiki.info
    • -2
    • +4
    /openacs-4/packages/xowiki/tcl/xowiki-procs.tcl
Added two types of grading schemes (in addition to "exact") to ordering exercises:

- "position": count elements as correct, when these are on the correct position

- "relative": count elements as correct, if the neighboring element is correctly before the actual element

The results are adjusted by the same guessing correction as in the "ggw" scheme for MC exercises.

Example:

- desired order: 1,2,3,4

- provided answer: 3,1,2,4

- scheme "exact": 0%

- scheme "position": 0 0 0 1

- scheme "relative": 0 1 1 (correctly ordered 1<2 and 2<4)

A minor refactoring was also performed to ease code reuse.

    • -10
    • +11
    /openacs-4/packages/xowf/tcl/test-item-procs.tcl
    • -54
    • +124
    /openacs-4/packages/xowiki/tcl/form-field-procs.tcl
include totals in test case listing, use proper thead and tfoot elements

Deal with 'search' input types, that are not in the 'form-control' class, in Bootstrap 3. See CSS comment for details.

Whitespace changes

Use input type 'search' in search widget

Add basic include contract

make "util_close_html_tags" public since it is called from public pages

make "dt_get_info" public since it is used from other packages

Remove extra url decoding, ns_parsequery embeds it already

Remove extra decoding ns_parsequery provides it already

Revert usage of builtin commands, as we need a specific decoding for oauth, not the urldecoding ns_parsequery embeds

Aolserver/Naviserver builtin ns-parsequery already embeds URL decoding

Add 'fs_create_folder_using_api' test case, covering the 'fs::get_root_folder', 'fs::new_folder', 'fs::get_folder', 'fs::folder_p', 'fs::delete_folder', 'fs::rename_folder' and 'fs_get_folder_name' procs