• last updated 15 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Cleanup redundant definition

added test case for SELF referemce

improve spelling

extended regression test

- show difference between [[image:...]] and [[.SELF./image ...]]

- cleanup test

    • -133
    • +142
    ./test/test-item-procs.tcl
Extend xowiki.create_test_items automated test:

in the content of questions, use .SELF. references which should point to images stored underneath the question itself. Show that when the questions are used inside of exams, the .SELF. reference will currently not be resolved to the question and result in an unresolved link.

added a test for checking the results of the preview of test-items

Since the preview workflow requires a multiple redirects, xowiki::test::edit_form_page

requires a new flag refetch to actually turn off automatic refetching of the result

page, since this does not give us access to the redirect location returned by

the edit command.

  1. … 3 more files in changeset.
added test case for composite test item

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

Test ::xowf::Package proc create_new_workflow_page

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

- added anchor title for configuration button

- reduced verbosity

  1. … 3 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. … 9 more files in changeset.
use same idom for loading named forms as on other places

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. … 11 more files in changeset.
file grading-procs.tcl was initially added on branch oacs-5-10.

reduce verbosity

improve spelling

  1. … 1 more file in changeset.
Document public api

added input validation for points in modal dialog

  1. … 2 more files in changeset.
fix spurious colons

  1. … 3 more files in changeset.
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.
Limit display of questions in exam-protocol to max-items, when this is specified

revert change, since it is not clear from the description what it was for

Rename domNode argument to dom_node

tDOM defines a ::domNode command in the global namespace, which might potentially conflict with the argument name. Also, in certain configurations the api-doc machinery will treat the argument as a command usage and try to enforce e.g. the naming convention on it in acs-tcl.naming__proc_naming automated test.

added required argument to calc_grade (many thanks to Markus Moser for noting)

improve robustness when processing legacy questions