test-item-procs.tcl

  • last updated 10 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Document public api

Added support for restricting access to exams based on IP addresses.

In order to avoid the problem that students might participate on exams

intended to be held e.g. on campus from at home, one can now restrict

the access based on IP ranges. It is possible to restrict the access

via multiple range blocks that can be predefined by the sysadmins. One

could predefine e.g. IP range blocks for "Campus LAN", "On Site",

"VPN", etc., which can be selected by lecturers for individual exams.

Every IP range block can be defined via multiple entries of disallowed

and allowed IP ranges, where the addresses can be specified via IPv4

or IPv6 CIDR blocks (e.g. 127.208.0.0/16), or with wild cards or

individual IP addresses. The usage of CIDR blocks requires an update

to the updated version of NaviServer.

The IP restriction is used in the current implementation for

restricting the regular start of the exam (proctored or

non-proctored). Lecturers can still perform test runs for exams with

restricted access.

Bump version number to 5.10.1d31

  1. … 8 more files in changeset.
increase default value of number of potential alternatives to 25

relax regexp for timestamp of proctored images to support time fractions

allow fractional minutes (useful for short quizzes)

guarantee uniqueness of IDs when multiple aggregated forms are used in one page (e.g. exam protocol)

simplify logic

Fix variable name

switch from xo::db::sql to acs::dc interface

  1. … 12 more files in changeset.
Added support for www-toggle-publish-status

This is needed to avoid a bad interaction with [ad_return_url] as it

is used in www-toggle-publish-status in xowiki, since the workflow

definition unsets the actual return_url, which causes ad_return_url to

use the URL leading to this call (m=toggle-publish-status), causing a

redirection loop.

Version number bumped to 5.10.1d28

  1. … 2 more files in changeset.
ensure html markup is well formed

"::xowiki::includelet::personal-notification-messages modal_message_dialog"

is returning the html link with an open a-tag, which has to be closed from the caller

display notification link while the exam is published

Document public api

make grading dialog draggable

make parameter name more self-expanatory to avoid misinterpretations

  1. … 2 more files in changeset.
Store statistics in a separate page instead of the workflow itself

- advantages:

* smaller workflow instance

- no danger that page is too large for caching, even for large exams.

- smaller objects mean also better performance

* modification date in exam is not modified when statistics

are updated

* easier extensible

- New function WorkflowPage->childpage

easy to use interface for creating child pages

- render_submission=exam_protocol: changed name of

parameter "-form_objs" to "-filter_form_ids", since

form_objs are used typically to keep objects, not ids

- Still to do: policy for inclass-exam-statistics.wf

- Bumped version number to 5.10.1d25

  1. … 5 more files in changeset.
Port downstream change: adding label for question selection box

Many thanks to Felix Mödritscher

  1. … 3 more files in changeset.
avoid unneccesary warnings (and unneccessary work)

In case the exam-protocol is shown filtered (e.g. only selected questions)

there is distinction between the available answer attributes and the

answer attributes, which is shown. Earlier versions tried to lookup

all available answer attributes, now we restrict the lookup to only

the shown answer attributes, and therefore avaiding running into

warnings of the form "No form field with name ... found"

do not allow to edit unresolve links during the exam, but allow this in the preview mode

  1. … 1 more file in changeset.
Port edit-new policy rule from original policy1 object, so that unresolved links can be rendered correctly

Fixes xowf create_composite_test_item automated test

Disallow "create-from-prototype" to non-admins in exam-answering workflows.

take out for the time being the pool question as parts of the composite question

describe_form: describe components of a copound test item rather than the container

improve robustness for partial exams

Added question_ids to "details" in grading info and to the "__results" property

All of test-items is name-based to support input/export from different

OpenACS instances. In some situations, it is still necessary to pinpoint

the origin of questions, e.g. when importing pool-questions to an external

gradebook, where e.g. one wants to associate a replacement questions with

the original pool question.

Now we keep an additional question id, which will point to the pool question

or the simple question together with the question names. The instance

attribute "__results" is set once the exam-protocol was rendered

completely.

__results {

UID1 {

QN1 {achieved 4 achievable 6 question_id 187610}

QN2 {achieved 0.0 achievable 1 question_id 163716}

QN3 (achieved 0.0 achievable 2 question_id 163714}

}

UID2 ...

}

Remove unopened tag

remove statement used for testing

use the same idiom everywhere ("create_components" can now handle empty lists)

  1. … 1 more file in changeset.
change default to per-user-shuffling

re-introduce check for empty string to avoid an empty list entry in the spec