gustafn in OpenACS

Added support for manual grading and individual feedback

- Lecturers can provide points and feedback comments

directly via exam protocol

- Grading is allowed, when student has submitted the exam or

the exam is not open

- Composite questions are graded at the sub-question level

- Manual grading have a higher priority than automatic grades

- Manual grading/comments can be undone by clearingfield

(showing then missing points, automated computed points, ...)

- Grades and comments are included in the exam review for

students ("Einsicht").

- Grading interactions are implemented as AJAX calls

(no need for redrawing the exam protocol, immediate feedback)

    • -11
    • +56
    • -159
    • +669
reduce verbosity

    • -3
    • +4
reduce verbosity

fix broken util::word_diff and add regression test

The function was already broken before the change of today,

removing the needed for a pipe open.

added dropped "cd" command

reduce cases of tcl pipe open in acs-core

AFIKT, the semantics are the same.

For background, see:

remove pipe open (although this is just a fallback file, which is normally not called)

don't mangle navigational dots in item-refs

    • -5
    • +12
fix default values for short-text items

do not allow names containing only dots as wiki names

These names are now as well mapped via method normalize_name to underscores

    • -2
    • +5
fix dirty buffer of last commit

Added support for multiplicity in value constraints of "query_parameter"

Calls like e.g.

set id [:query_parameter some_id:int32]

are actually equivalent to

set id [:query_parameter some_id:int32 ""]

and accept therefore as result also an empty value. By being able to

specify an explicit multiplicity, we can force non-empty values:

set id [:query_parameter some_id:int32,1..1]

This means effectively that the default multiplicity is "0..1".

improve wording of message key

fix typo

added support for optionally turning off proctoring recodings

This options is useful e.g. for e.g. mock exams to avoid privacy issues.

    • -3
    • +6
remove obsolete statements

    • -1
    • +0
    • -1
    • +0
part 2 of parameter reform

unify xo::parameter handling with classical parameter handling (parameter::get).

This change implements calls for "::xo::parameter get" by parameter::get

and outputs deprecated log entries. In addition, the initialization

of all parameters is deactivated, such that startup time is slightly faster.

so far, the full code is kept but deactivated to allow to change

quickly back, in case early adaptors run into troubles.

At least in cases, where new naviserver versions are used, the implementaton

of parameter::get became sufficiently fast to beat the xo::parameter

implementation, which was at time of its introduction ~30x faster.

bump version number for force reload of message catalog for loading new keys

added title for "inclass-exam-submit"

add titles to first/next/previous quesion buttons

improve spelling

add titles for flag states

improve german message keys (spelling, comma, spaces, orthogonality)

added tailored title for "logout button, fixed typos in message catalog

reduce further redundancy

    • -25
    • +13
reduce frequent small SQL queries and streamline code

    • -19
    • +28
removed deprecated call to db_quote

use ns_dbquotevalue instead

tighten edit rights for answer workflows

VS: ----------------------------------------------------------------------

remove some obsolete files

    • -72
    • +0
    • -151
    • +0
fix collateral damage on cleanup (never trust to much on watching files)