• last updated 12 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
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
    /openacs-4/packages/xowiki/tcl/package-procs.tcl
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
    /openacs-4/packages/xowf/lib/inclass-exam.wf
remove obsolete statements

    • -1
    • +0
    /openacs-4/packages/xowf/lib/inclass-quiz.wf
    • -1
    • +0
    /openacs-4/packages/xowf/lib/online-exam.wf
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
    /openacs-4/packages/acs-tcl/tcl/apm-procs.tcl
reduce frequent small SQL queries and streamline code

    • -19
    • +28
    /openacs-4/packages/acs-tcl/tcl/apm-procs.tcl
removed deprecated call to db_quote

use ns_dbquotevalue instead

add possibility to filter for state

tighten edit rights for answer workflows

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

remove some obsolete files

    • -72
    • +0
    /openacs-4/bin/create-sql-drop-file.pl
    • -151
    • +0
    /openacs-4/bin/pg_7.2to7.3_upgrade_helper.pl
Fully qualify the parameter command to not conflict with the class having the same name in the ::xo namespace

tighten policy for viewing an exam

fix collateral damage on cleanup (never trust to much on watching files)

Make so that upon package deletion, also the leftover site nodes are deleted (if they do no have children nodes)

prefer standard OpenACS API for accessing parameters

    • -3
    • +4
    /openacs-4/packages/xowiki/tcl/package-procs.tcl
    • -2
    • +2
    /openacs-4/packages/xowiki/tcl/xowiki-procs.tcl
file TestItemPoolQuestion.form.page was initially added on branch oacs-5-10.

Support for pool questions in the test-item family

Features:

- select random questions from some folder

(Currently siblings, i.e., folders of the same package instance)

- one exam can have multiple pool questions, potentially from other pools

- pools can be links to other folders (which are no siblings)

- The current folder can be used as well as a pool folder. In this

case, other not-used items can be selected as replacement items

given these match the specified filter characteristics

- Question filtering

* filter by item type:

allow one to select from all/some/some item types

(mc, sc, short text, reordering, composite, ...):

use as replacement items only examples of these types

* filter by minutes and/or points:

use as replacement items only items with matching points/minutes

* filter by language:

use as replacement items only items in a certain language

* Filter per item name pattern:

use as replacement items only items matching a name.

When (short-) names are used systematically, one can e.g.

use the date in the name and specify only items from e.g.

one year ago, via "*2020*", or from some chapter "*ch01", ...

Certainly, it is also possible to use different item

folders for this

Potential further steps:

- Currently, exams containing pool questions are treated as

auto-correctable (which implies automated exam-review (Einsicht), when

from the question pools only question from strictly closed questions

are selected (MC, SC, Ordering). Depending on the detailed settings,

also other item types could be possible (via correct-when), but this

requires a deeper analysis of every question, which is so far not

performed.

- Categorized items: technically, the infrastructure is mostly here to

allow also filtering by categories. This would allow one to select

e.g. from technical questions, case examples, knowledge transfer

questions, research-oriented questions... which are orthogonal to

the filtering currently available. Every lecturer can define

own categories depending on their needs, we could provide

university-wide category-trees, etc. Of course, one could also

define separate pools for these purposes, but categorizing is

probably more convenient and more flexible.

- Performance: when question pools become large (500+ questions) and

the cohorts as well (500+), the current version might require more

tuning. The only critical time is the exam-start, where the random

question placeholders have to be resolved for every student. The

approach from this weekend uses basic caching, but maybe this has to

be extended.

- Protecting selected questions: Question pools are more detached from

an exam than single exercises, a lecturer might have in mind. One

should not allow one to delete questions/question pools when these are

in use. Probably deletion should be a move to a trash-can, which is

actually, an issue for all exams, but getting more important with

pool questions.

- Handling of potential duplicates: When items are pulled from a

question pool, a replacement item is selected by making sure that

this item does not occur already in the query selection. Therefore,

one can safely draw two questions from the same question pool

without fearing that a student gets the same question twice.

This duplicate checking might require some fine-tuning:

* the system checks for duplicates in an exam via POOL/NAME.

* if a lecturer uses two pool-questions in an exam pointing to the same pool,

the systems makes sure, the same question is not used twice.

* however, if a teacher adds a question q1 to pool1 and the same question to pool2,

these two instances have different item ids and are regarded as two different

questions. One could make a test for only checking NAME (without POOL),

but then it might be the case that certain questions are not accepted

although these are different, because they have the same name.

- Statistics: so far, i have not provided any special answer

statistics for treating pool questions.

    • -1
    • +11
    /openacs-4/packages/xowf/lib/inclass-exam.wf
    • -95
    • +698
    /openacs-4/packages/xowf/tcl/test-item-procs.tcl
    • -1
    • +10
    /openacs-4/packages/xowf/tcl/xowf-procs.tcl
    • -2
    • +2
    /openacs-4/packages/xowiki/xowiki.info
fix title of form-page (was probably a cut&paste leftover)