Skip to contents

Class AssessmentTestOpenOlat is responsible for creating XML exam files according to the QTI 2.1 standard for LMS OpenOlat.

Details

Test consists of one or more sections. Each section can have one or more questions/tasks and/or one or more sub sections.

Slots

identifier

A character representing the unique identifier of the assessment test. By default, it is generated as 'id_test_dddd', where dddd represents random digits.

title

A character representing the title of the test. By default, it takes the value of the identifier.

points

Do not use directly; the maximum number of points for the exam/test. It is calculated automatically as a sum of points of included tasks.

test_part_identifier

A character representing the identifier of the test part.

navigation_mode

A character value, optional, determining the general paths that the candidate may have during the exam. Possible values:

  • "linear" - candidate is not allowed to return to the previous questions.

  • "nonlinear" - candidate is free to navigate. This is used by default.

submission_mode

A character value, optional, determining when the candidate's responses are submitted for response processing. Possible values:

  • "individual" - submit candidates' responses on an item-by-item basis. This is used by default.

  • "simultaneous" - candidates' responses are submitted all together by the end of the test.

section

A list containing one or more AssessmentSection objects.

time_limit

A numeric value, optional, controlling the amount of time in minutes which a candidate is allowed for this part of the test.

max_attempts

A numeric value, optional, enabling the maximum number of attempts that a candidate is allowed to pass.

allow_comment

A boolean value, optional, enabling to allow candidates to leave comments in each question.

rebuild_variables

A boolean value, optional, enabling to recalculate variables and reshuffle the order of choices for each item-attempt.

fallback_titles

A character value, optional, controlling how titles are assigned when no explicit title is provided. Possible values are "filename" (use filenames as titles) and "generic" (use generic labels such as "Section 1", "Section 1.2", or "Task 1.2.1"). Default is "generic".

academic_grading

A named numeric vector that defines the grade table shown to the candidate as feedback at the end of the test.

Each grade corresponds to the minimum percentage score required to achieve it. A helper function german_grading() is available to generate a common German grading scheme.

The default is NULL, which means that no grading table is shown. To display a grading table, provide a named numeric vector or use german_grading().

grade_label

A character value, optional, representing a short message to display with a grade in the final feedback. For multilingual usage, it hat to be a named vector with two-letter ISO language codes as names (e.g., c(en="Grade", de="Note")); during test creation, it takes the value for the language of the operating system. Default is c(en="Grade", de="Note").

table_label

A character value, optional, representing a concise message to display as the column title of the grading table in the final feedback. For multilingual usage, it hat to be a named vector with two-letter ISO language codes as names (e.g., c(en="Grade", de="Note")); during test creation, it takes the value for the language of the operating system. Default is c(en="Grade", de="Note").

stylesheet_path

A character value, optional, specifying the path to a custom CSS stylesheet. If provided, the stylesheet is included at the assessment test level and applied during rendering. When academic_grading is set, the default stylesheet styles/rqti.css is included automatically; a user-defined stylesheet is added in addition and may override default styles.

metadata

An object of class QtiMetadata that holds metadata information about the test.

cancel

A logical value, optional, indicating whether participants are allowed to cancel an exam after starting it. Default is FALSE.

suspend

A logical value, optional, indicating whether participants are allowed to suspend an exam after starting it and continue later. Default is FALSE.

scoreprogress

A logical value, optional, indicating whether the progress of the score achieved so far should be displayed during the exam. Default is FALSE.

questionprogress

A logical value, optional, indicating whether the number of solved questions should be displayed during the exam. Default is FALSE.

maxscoreitem

A logical value, optional, indicating whether the maximum score of an item should be displayed. Default is TRUE.

menu

A logical value, optional, indicating whether the menu should be displayed during the exam. Default is TRUE.

titles

A logical value, optional, indicating whether question titles should be displayed during the exam. Default is TRUE.

notes

A logical value, optional, indicating whether participants can take notes in OpenOlat during the exam. Default is FALSE.

hidelms

A logical value, optional, indicating whether access to the OpenOlat learning management system should be hidden during the exam. Default is TRUE.

hidefeedbacks

A logical value, optional, indicating whether feedback should be hidden. Default is FALSE.

blockaftersuccess

A logical value, optional, indicating whether the exam should be blocked after successful completion. Default is FALSE.

attempts

An integer value, optional, indicating how many attempts are allowed for the exam as a whole. Default is 1.

anonym

A logical value, optional, indicating whether anonymous users are allowed to take the exam. Default is FALSE.

manualcorrect

A logical value, optional, indicating whether points and pass/fail status should be evaluated manually. Default is FALSE.

Examples

# This example creates test 'exam' with one section 'exam_section' which
# consists of two questions/tasks: essay and single choice types
task1 <- new("Essay", prompt = "Test task", title = "Essay",
             identifier = "q1")
task2 <- new("SingleChoice", prompt = "Test task", title = "SingleChoice",
             choices = c("A", "B", "C"), identifier = "q2")
exam_section <- new("AssessmentSection", identifier = "sec_id",
                    title = "section", assessment_item = list(task1, task2))
exam <- new("AssessmentTestOpenOlat",
            identifier = "id_test_1234",
            title = "Example of Exam",
            navigation_mode = "linear",
            submission_mode = "individual",
            section = list(exam_section),
            time_limit = 90,
            max_attempts = 1,
            grade_label = "Preliminary grade")