• last updated 14 hours ago
Constraints: committers
Constraints: files
Constraints: dates
use per-request cache for relatively expensive operation, which is called potentially often per request

We might consider in the future a longer lasting cache for "global" form pages.

use same idom for loading named forms as on other places

improve styling in exam protocol

use "throw" in exception handling with "try"

Fail with the actual error message when parsing the value fails, rather than because of "result" variable not being set

Added support for user-supplied grading schemes

Grading schemes provide a means to map achieved percentages to a numeric grade.

In the current versions, a fixed number of 5 grades is supported.

A grading scheme consists of a grounding scheme and grading boundaries.

- A grading scheme can be selected at exam definition time

- Lecturers can define their own grading schemes and reuse these between exams

- Available grounding schemes:

* no rounding (recommended for small exams, e.g. 5 minutes or 2 points)

* by percent (the calculated percentages are rounded to the provided number of digits)

* by points (the calculated points are rounded to the provided number of digits)

- The grounding precision can be defined by the user (e.g. to 2 digits)

- The grading boundaries represent percentages boundaries necessary for a certain grade

- When selecting no grading scheme, no grading information is provided in the exam protocol

(just percentages)

More changes:

- allow grading also, when student has not submitted the exam

- added percentage information in the grading-box (esp. useful for composite questions)

- renamed predefined grading schemes to more neutral terms

- provide easy-to-type names for question-manager, answer-manager and form-loader

- new utility for more robust list-comparions

- defined validating form-field type for grading boundaries

    • -1
    • +1
    • -0
    • +370
    • -370
    • +258
file edit-grading-scheme.wf was initially added on branch oacs-5-10.

    • -0
    • +0
file grading-procs.tcl was initially added on branch oacs-5-10.

    • -0
    • +0
file edit-grading-scheme.wf.page was initially added on branch oacs-5-10.

Replace reference to long-missing message key

reduce verbosity

    • -1
    • +1
support grading passed in via property

    • -2
    • +3
still initialize array

    • -1
    • +6
improve comment.

    • -3
    • +4
since "nsv_get $array $member varname" returns 0, when the array does not exist, we do not need the extra value for initialization

    • -2
    • +1
cache parsed form_constraints via nsv instead of via global variable

    • -14
    • +21
- Define converters as procs

- Register these procs as aliases where convenient

- this effects:

dict_to_fc, dict_to_spec, spec_to_dict, fc_to_dict, dict_value

- extended regression test

- bumped version number to 5.10.1d9

    • -2
    • +2
    • -38
    • +140
minor editing changes

improve location of comment

prefer "Package require" over "Package initialize" when possible

    • -8
    • +8
adjust code with regression test, which performs literal comparison of rendered content

performance improvements for "::xo::db::Class proc get_instance_from_db"

when the object exists already, the text for existance is made earlier

to void useless operations. This change improves the performance by a factor of 3

when the object was already loaded.

OLD {4.544836 microseconds per iteration}

NEW {1.310991 microseconds per iteration}

Smartify idioms

Fix typo

reduce verbosity

    • -3
    • +5
Similar to the folder-create script, complain if the filename turns out empty after sanitizing

Allow the maximum size permitted by the datamodel in the UI, but then validate it before saving

When deleting, make sure supplied id is actually a room id

    • -1
    • +10
    • -1
    • +9
Trap the attempt to retrieve a non-existing forum and return a 404 in this case

this might need to happen in other places and/or be refined

Make error consistent with the already existing check in the content-repository