• last updated 16 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Move functionality of xowiki::CSS to tempate::CSS

template CSS provides an abstraction for CSS class names and other

styling elements depending on user preferences or on the current theme

Backwards compatibility for xowiki::CSS was provided via a stub function

  1. … 22 more files in changeset.
merge from oacs-5-10

  1. … 8099 more files in changeset.
Ensure grading scheme is loaded before used

Quote URLs rendered inside of markup

  1. … 1 more file in changeset.
added a paramter to allow/disallow page transation for exams

Browsers support automatic translation of a page to multiple languages.

Sometimes, this is not desired, especially in certain exams.

The change makes it possible to specify that translation is not wanted.

  1. … 6 more files in changeset.
Added waiting for for inclass-exam

  1. … 4 more files in changeset.
use message key

Added improved support for viewing and downloading of exam results

When results are available, "Points and Grades" can be used.

Results are available,

- for autocorrected questions, when the exam protocol was rendered, or

- for all types of questions, when lecturers have added manual gradings/comments.

Depending on whether a grading scheme was defined for the exam,

it is possible to view/download grades and grade statistics, or to these

just with points. It is also possible to get the total results per student

(including grades) or results per question.

The results are available

- in tabular form, with the ability to sort on the columns,

- as charts, and

- as csv-files (for loading into spreadsheets).

The version number was bumped to 5.10.1d50

  1. … 5 more files in changeset.
Fix for updating the time window via configuration dialog

In cases, where no student submissions exists, updating the time

window via the configuration dialog was ignored.

Many thanks to Thomas Renner for finding the cause and providing a fix.

Handling of cases where exercises with 0 minutes (or empty minutes fields) are used,

or when the full exam has no minutes specifed

- Provide a hint on lecturers dashboard for questions with 0 minutes

- Don't provide timer on the lecturers dashboard

- Don't provide timer for the students

- Don't show timer for very short exams/quizzes (below 1 minute)

- Provide a hint on lecturers dashboard when no timer is displayed

- When the countdown timer has expired more than a minute, display the text

that the timer has expired, rather than counting to negative values.

Hints:

* It is recommended to set the end-time of the exam manually,

when a time window is specified and the total exam time is provided as 0.

* When there is no timer, the special autosaving semantics for the end of the exam

will not work (trying to get a snapshort short before the exam end).

* When there is no time-budget, the time budget control ("be able" exams) won't work

- bumping version to 5.10.1d47

  1. … 5 more files in changeset.
fix potential loss of statistics for autograded exams

when filtering by form objects (i.e. single question)

omit the grading table and therefore as well overwriting

of the statistics with partial values. Previously, only

the values of the show questions were displayed, until

the full exam protocol was rendered again

Give admins the possibility to deactivate pagination actions in the answer workflow of the inclass exam.

As default the pagination actions are shown in the answer workflow.

  1. … 5 more files in changeset.
fix links of last commit

improve support of inclass exam for bootstrap 5

add missing curly brackets

use csv icon, revert deterioration of appearance

  1. … 2 more files in changeset.
Port of downstream visual behavior: prefer a 3-columns layout when space is available

adaoption for bootstrap5

  1. … 2 more files in changeset.
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.
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.
make parameter name more self-expanatory to avoid misinterpretations

  1. … 2 more files in changeset.
user forwarder for answer manager AM similar to the question manager QM

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.
Improved configurability of inclass exam

- added modal window for showing all configuration options

- depending on the state of an exam (whether students have stated

working on the exam or not) different options can be

altered. E.g. the grading scheme can be adjusted at any time, since

it is not visible to students prior to exam review.

- improved configurability of form-fields:

. new feature: fc_repository for shared definitions

(can be reused in the same configuration on multiple occasions)

. when form-constraints are defined with an empty short-spec,

the system tries to look this up from the fc_repository.

- extended answer manager:

. new method: student_submissions_exist

. renamed methods

. "student_submissions" -> "submissions"

(since result my include as well test run results)

. "get_answers" -> "get_answer_attributes"

to better distinguish from "submissions"

- base "merge_constraints" on dicts

- prefer forwarder over instance variable for referring

the question manager(QM)

- extended Message keys with "Configuration"

- added missing German translations in message keys

- bump version to 5.10.1d17

  1. … 11 more files in changeset.
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. … 13 more files in changeset.
support grading passed in via property

Added option to download results on an exam

The download is in form of an CSV file and consists of one line per

question/sub-question and including comments. This feature can be

selected after the exam was evaluated once via running the

exam-protocol.

  1. … 4 more files in changeset.
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)

  1. … 6 more files in changeset.
added support for optionally turning off proctoring recodings

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

  1. … 10 more files in changeset.
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. … 10 more files in changeset.