qti 2.20.0 → 2.20.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 86c46f8f8cc44f5462d95d93455aefd56aae83e8f6291a492459ba9da425c510
|
4
|
+
data.tar.gz: 63429e02991279043a3a0380e720fee6bb27b36132cfcb97837a68ddec0dd0cc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2f628da6521093b39fa707d8305431e5282f4a5c9bae5f386f8e91b59d56be873f3705844b146a220a97e6ca1d8eb7f7b822e22d37c162499b4e418b2aebe5e3
|
7
|
+
data.tar.gz: 232035507f0adfe737d0271c9e2d4200330e0921205c4ae2f5800564d755ed82630ad58955615102e6e3c40392f4270fb0a9167e70f769c29e701b96eb6acf40
|
@@ -1,5 +1,6 @@
|
|
1
1
|
module Qti
|
2
2
|
module Models
|
3
|
+
# rubocop:disable Metrics/ClassLength
|
3
4
|
class AssessmentMeta < Qti::Models::Base
|
4
5
|
def title
|
5
6
|
sanitize_content!(tag_under_quiz('title'))
|
@@ -9,6 +10,14 @@ module Qti
|
|
9
10
|
sanitize_content!(tag_under_quiz('description'))
|
10
11
|
end
|
11
12
|
|
13
|
+
def shuffle_questions
|
14
|
+
tag_under_quiz('shuffle_questions')
|
15
|
+
end
|
16
|
+
|
17
|
+
def shuffle_questions?
|
18
|
+
string_true?(shuffle_questions)
|
19
|
+
end
|
20
|
+
|
12
21
|
def shuffle_answers
|
13
22
|
tag_under_quiz('shuffle_answers')
|
14
23
|
end
|
@@ -17,6 +26,10 @@ module Qti
|
|
17
26
|
string_true?(shuffle_answers)
|
18
27
|
end
|
19
28
|
|
29
|
+
def calculator_type
|
30
|
+
tag_under_quiz('calculator_type')
|
31
|
+
end
|
32
|
+
|
20
33
|
def hide_results
|
21
34
|
tag_under_quiz('hide_results')
|
22
35
|
end
|
@@ -25,6 +38,14 @@ module Qti
|
|
25
38
|
tag_under_quiz('scoring_policy')
|
26
39
|
end
|
27
40
|
|
41
|
+
def cooling_period_seconds_raw
|
42
|
+
tag_under_quiz('cooling_period_seconds')
|
43
|
+
end
|
44
|
+
|
45
|
+
def cooling_period_seconds
|
46
|
+
cooling_period_seconds_raw&.to_i
|
47
|
+
end
|
48
|
+
|
28
49
|
def quiz_type
|
29
50
|
tag_under_quiz('quiz_type')
|
30
51
|
end
|
@@ -168,6 +189,14 @@ module Qti
|
|
168
189
|
tag_under_quiz('hide_correct_answers_at')
|
169
190
|
end
|
170
191
|
|
192
|
+
def allow_clear_mc_selection
|
193
|
+
tag_under_quiz('allow_clear_mc_selection')
|
194
|
+
end
|
195
|
+
|
196
|
+
def allow_clear_mc_selection?
|
197
|
+
string_true?(allow_clear_mc_selection)
|
198
|
+
end
|
199
|
+
|
171
200
|
def require_lockdown_browser
|
172
201
|
tag_under_quiz('require_lockdown_browser')
|
173
202
|
end
|
@@ -196,6 +225,80 @@ module Qti
|
|
196
225
|
tag_under_quiz('lockdown_browser_monitor_data')
|
197
226
|
end
|
198
227
|
|
228
|
+
def nq_ip_filters
|
229
|
+
@doc.xpath('//xmlns:quiz/xmlns:nq_ip_filter').map do |ip_filter|
|
230
|
+
[ip_filter.attributes['from']&.value, ip_filter.attributes['to']&.value]
|
231
|
+
end
|
232
|
+
end
|
233
|
+
|
234
|
+
def nq_ip_filters_enabled?
|
235
|
+
nq_ip_filters.any?
|
236
|
+
end
|
237
|
+
|
238
|
+
def result_view_restricted
|
239
|
+
tag_under_quiz('result_view_restricted')
|
240
|
+
end
|
241
|
+
|
242
|
+
def result_view_restricted?
|
243
|
+
string_true?(result_view_restricted)
|
244
|
+
end
|
245
|
+
|
246
|
+
def display_items
|
247
|
+
tag_under_quiz('display_items')
|
248
|
+
end
|
249
|
+
|
250
|
+
def display_items?
|
251
|
+
string_true?(display_items)
|
252
|
+
end
|
253
|
+
|
254
|
+
def display_item_feedback
|
255
|
+
tag_under_quiz('display_item_feedback')
|
256
|
+
end
|
257
|
+
|
258
|
+
def display_item_feedback?
|
259
|
+
string_true?(display_item_feedback)
|
260
|
+
end
|
261
|
+
|
262
|
+
def display_item_response
|
263
|
+
tag_under_quiz('display_item_response')
|
264
|
+
end
|
265
|
+
|
266
|
+
def display_item_response?
|
267
|
+
string_true?(display_item_response)
|
268
|
+
end
|
269
|
+
|
270
|
+
def display_points_awarded
|
271
|
+
tag_under_quiz('display_points_awarded')
|
272
|
+
end
|
273
|
+
|
274
|
+
def display_points_awarded?
|
275
|
+
string_true?(display_points_awarded)
|
276
|
+
end
|
277
|
+
|
278
|
+
def display_points_possible
|
279
|
+
tag_under_quiz('display_points_possible')
|
280
|
+
end
|
281
|
+
|
282
|
+
def display_points_possible?
|
283
|
+
string_true?(display_points_possible)
|
284
|
+
end
|
285
|
+
|
286
|
+
def display_item_correct_answer
|
287
|
+
tag_under_quiz('display_item_correct_answer')
|
288
|
+
end
|
289
|
+
|
290
|
+
def display_item_correct_answer?
|
291
|
+
string_true?(display_item_correct_answer)
|
292
|
+
end
|
293
|
+
|
294
|
+
def display_item_response_correctness
|
295
|
+
tag_under_quiz('display_item_response_correctness')
|
296
|
+
end
|
297
|
+
|
298
|
+
def display_item_response_correctness?
|
299
|
+
string_true?(display_item_response_correctness)
|
300
|
+
end
|
301
|
+
|
199
302
|
private
|
200
303
|
|
201
304
|
def tag_under_quiz(tag)
|
@@ -209,10 +312,12 @@ module Qti
|
|
209
312
|
value&.casecmp('true')&.zero? || false
|
210
313
|
end
|
211
314
|
end
|
315
|
+
# rubocop:enable Metrics/ClassLength
|
212
316
|
|
213
317
|
module AssessmentMetaBase
|
214
|
-
delegate :title, :description,
|
215
|
-
:shuffle_answers?, :
|
318
|
+
delegate :title, :description, :shuffle_questions?,
|
319
|
+
:shuffle_answers?, :calculator_type, :scoring_policy,
|
320
|
+
:cooling_period_seconds, :points_possible,
|
216
321
|
:hide_results, :quiz_type, :anonymous_submissions?,
|
217
322
|
:could_be_locked?, :allowed_attempts, :one_question_at_a_time?,
|
218
323
|
:cant_go_back?, :available?, :one_time_results?,
|
@@ -222,7 +327,11 @@ module Qti
|
|
222
327
|
:lock_at, :unlock_at, :due_at, :require_lockdown_browser?,
|
223
328
|
:require_lockdown_browser_for_results?,
|
224
329
|
:require_lockdown_browser_monitor?, :show_correct_answers?,
|
225
|
-
:lockdown_browser_monitor_data,
|
330
|
+
:allow_clear_mc_selection?, :lockdown_browser_monitor_data,
|
331
|
+
:nq_ip_filters, :nq_ip_filters_enabled?,
|
332
|
+
:result_view_restricted?, :display_items?, :display_item_feedback?,
|
333
|
+
:display_item_response?, :display_points_awarded?, :display_points_possible?,
|
334
|
+
:display_item_correct_answer?, :display_item_response_correctness?,
|
226
335
|
to: :@canvas_meta_data, prefix: :canvas, allow_nil: true
|
227
336
|
|
228
337
|
alias canvas_instructions canvas_description
|
data/lib/qti/version.rb
CHANGED
@@ -5,8 +5,11 @@
|
|
5
5
|
<lock_at>2020-07-10T04:59:59</lock_at>
|
6
6
|
<unlock_at>2020-04-16T05:00:00</unlock_at>
|
7
7
|
<due_at>2020-05-23T04:59:59</due_at>
|
8
|
+
<shuffle_questions>true</shuffle_questions>
|
8
9
|
<shuffle_answers>true</shuffle_answers>
|
10
|
+
<calculator_type>basic</calculator_type>
|
9
11
|
<scoring_policy>keep_average</scoring_policy>
|
12
|
+
<cooling_period_seconds>86400</cooling_period_seconds>
|
10
13
|
<hide_results></hide_results>
|
11
14
|
<quiz_type>assignment</quiz_type>
|
12
15
|
<points_possible/>
|
@@ -28,8 +31,19 @@
|
|
28
31
|
<available>false</available>
|
29
32
|
<one_time_results>false</one_time_results>
|
30
33
|
<show_correct_answers_last_attempt>false</show_correct_answers_last_attempt>
|
34
|
+
<allow_clear_mc_selection>true</allow_clear_mc_selection>
|
31
35
|
<only_visible_to_overrides>false</only_visible_to_overrides>
|
32
36
|
<module_locked>false</module_locked>
|
37
|
+
<nq_ip_filter from="255.255.0.0" to="255.255.0.255"/>
|
38
|
+
<nq_ip_filter from="255.255.0.255" to="255.255.255.255"/>
|
39
|
+
<result_view_restricted>true</result_view_restricted>
|
40
|
+
<display_items>true</display_items>
|
41
|
+
<display_item_feedback>true</display_item_feedback>
|
42
|
+
<display_item_response>true</display_item_response>
|
43
|
+
<display_points_awarded>true</display_points_awarded>
|
44
|
+
<display_points_possible>true</display_points_possible>
|
45
|
+
<display_item_correct_answer>true</display_item_correct_answer>
|
46
|
+
<display_item_response_correctness>true</display_item_response_correctness>
|
33
47
|
<assignment identifier="g390e22b33353b658bb23abbce000414f">
|
34
48
|
<title>asd09sdfaxsdflj</title>
|
35
49
|
<due_at>2020-05-23T04:59:59</due_at>
|
@@ -20,7 +20,10 @@ context 'Canvas Assessment Meta Data' do
|
|
20
20
|
expect(assessment.canvas_available?).to eq(available)
|
21
21
|
expect(assessment.canvas_one_time_results?).to eq(one_time_results)
|
22
22
|
expect(assessment.canvas_scoring_policy).to eq(scoring_policy)
|
23
|
+
expect(assessment.canvas_cooling_period_seconds).to eq(cooling_period_seconds)
|
24
|
+
expect(assessment.canvas_shuffle_questions?).to eq(shuffle_questions)
|
23
25
|
expect(assessment.canvas_shuffle_answers?).to eq(shuffle_answers)
|
26
|
+
expect(assessment.canvas_calculator_type).to eq(calculator_type)
|
24
27
|
expect(assessment.canvas_lock_at).to eq(lock_at)
|
25
28
|
expect(assessment.canvas_unlock_at).to eq(unlock_at)
|
26
29
|
expect(assessment.canvas_due_at).to eq(due_at)
|
@@ -30,10 +33,21 @@ context 'Canvas Assessment Meta Data' do
|
|
30
33
|
expect(assessment.canvas_show_correct_answers?).to eq(show_answers)
|
31
34
|
expect(assessment.canvas_show_correct_answers_at).to eq(show_answers_at)
|
32
35
|
expect(assessment.canvas_hide_correct_answers_at).to eq(hide_answers_at)
|
36
|
+
expect(assessment.canvas_allow_clear_mc_selection?).to eq(allow_clear_mc_selection)
|
33
37
|
expect(assessment.canvas_require_lockdown_browser?).to eq(rlb)
|
34
38
|
expect(assessment.canvas_require_lockdown_browser_for_results?).to eq(rlb_results)
|
35
39
|
expect(assessment.canvas_require_lockdown_browser_monitor?).to eq(rlb_monitor)
|
36
40
|
expect(assessment.canvas_lockdown_browser_monitor_data).to eq(lb_monitor_data)
|
41
|
+
expect(assessment.canvas_nq_ip_filters_enabled?).to eq(nq_ip_filters_enabled)
|
42
|
+
expect(assessment.canvas_nq_ip_filters).to eq(nq_ip_filters)
|
43
|
+
expect(assessment.canvas_result_view_restricted?).to eq(result_view_restricted)
|
44
|
+
expect(assessment.canvas_display_items?).to eq(display_items)
|
45
|
+
expect(assessment.canvas_display_item_response?).to eq(display_item_response)
|
46
|
+
expect(assessment.canvas_display_item_feedback?).to eq(display_item_feedback)
|
47
|
+
expect(assessment.canvas_display_points_awarded?).to eq(display_points_awarded)
|
48
|
+
expect(assessment.canvas_display_points_possible?).to eq(display_points_possible)
|
49
|
+
expect(assessment.canvas_display_item_correct_answer?).to eq(display_item_correct_answer)
|
50
|
+
expect(assessment.canvas_display_item_response_correctness?).to eq(display_item_response_correctness)
|
37
51
|
end
|
38
52
|
end
|
39
53
|
|
@@ -53,7 +67,10 @@ context 'Canvas Assessment Meta Data' do
|
|
53
67
|
let(:available) { true }
|
54
68
|
let(:one_time_results) { false }
|
55
69
|
let(:scoring_policy) { 'keep_highest' }
|
70
|
+
let(:cooling_period_seconds) { nil }
|
71
|
+
let(:shuffle_questions) { false }
|
56
72
|
let(:shuffle_answers) { false }
|
73
|
+
let(:calculator_type) { nil }
|
57
74
|
let(:lock_at) { nil }
|
58
75
|
let(:unlock_at) { nil }
|
59
76
|
let(:due_at) { nil }
|
@@ -63,10 +80,21 @@ context 'Canvas Assessment Meta Data' do
|
|
63
80
|
let(:show_answers) { true }
|
64
81
|
let(:show_answers_at) { nil }
|
65
82
|
let(:hide_answers_at) { nil }
|
83
|
+
let(:allow_clear_mc_selection) { false }
|
66
84
|
let(:rlb) { false }
|
67
85
|
let(:rlb_results) { false }
|
68
86
|
let(:rlb_monitor) { false }
|
69
87
|
let(:lb_monitor_data) { nil }
|
88
|
+
let(:nq_ip_filters_enabled) { false }
|
89
|
+
let(:nq_ip_filters) { [] }
|
90
|
+
let(:result_view_restricted) { false }
|
91
|
+
let(:display_items) { false }
|
92
|
+
let(:display_item_response) { false }
|
93
|
+
let(:display_item_feedback) { false }
|
94
|
+
let(:display_points_awarded) { false }
|
95
|
+
let(:display_points_possible) { false }
|
96
|
+
let(:display_item_correct_answer) { false }
|
97
|
+
let(:display_item_response_correctness) { false }
|
70
98
|
|
71
99
|
include_examples('loads canvas meta data')
|
72
100
|
end
|
@@ -87,7 +115,10 @@ context 'Canvas Assessment Meta Data' do
|
|
87
115
|
let(:available) { false }
|
88
116
|
let(:one_time_results) { false }
|
89
117
|
let(:scoring_policy) { 'keep_average' }
|
118
|
+
let(:shuffle_questions) { true }
|
119
|
+
let(:cooling_period_seconds) { 86_400 }
|
90
120
|
let(:shuffle_answers) { true }
|
121
|
+
let(:calculator_type) { 'basic' }
|
91
122
|
let(:lock_at) { '2020-07-10T04:59:59' }
|
92
123
|
let(:unlock_at) { '2020-04-16T05:00:00' }
|
93
124
|
let(:due_at) { '2020-05-23T04:59:59' }
|
@@ -97,10 +128,26 @@ context 'Canvas Assessment Meta Data' do
|
|
97
128
|
let(:show_answers) { true }
|
98
129
|
let(:show_answers_at) { '2041-02-17 06:00:00 UTC' }
|
99
130
|
let(:hide_answers_at) { '2042-12-26 06:00:00 UTC' }
|
131
|
+
let(:allow_clear_mc_selection) { true }
|
100
132
|
let(:rlb) { false }
|
101
133
|
let(:rlb_results) { false }
|
102
134
|
let(:rlb_monitor) { false }
|
103
135
|
let(:lb_monitor_data) { nil }
|
136
|
+
let(:nq_ip_filters_enabled) { true }
|
137
|
+
let(:nq_ip_filters) do
|
138
|
+
[
|
139
|
+
['255.255.0.0', '255.255.0.255'],
|
140
|
+
['255.255.0.255', '255.255.255.255']
|
141
|
+
]
|
142
|
+
end
|
143
|
+
let(:result_view_restricted) { true }
|
144
|
+
let(:display_items) { true }
|
145
|
+
let(:display_item_response) { true }
|
146
|
+
let(:display_item_feedback) { true }
|
147
|
+
let(:display_points_awarded) { true }
|
148
|
+
let(:display_points_possible) { true }
|
149
|
+
let(:display_item_correct_answer) { true }
|
150
|
+
let(:display_item_response_correctness) { true }
|
104
151
|
|
105
152
|
include_examples('loads canvas meta data')
|
106
153
|
end
|
@@ -121,7 +168,10 @@ context 'Canvas Assessment Meta Data' do
|
|
121
168
|
let(:available) { false }
|
122
169
|
let(:one_time_results) { false }
|
123
170
|
let(:scoring_policy) { nil }
|
171
|
+
let(:cooling_period_seconds) { nil }
|
172
|
+
let(:shuffle_questions) { false }
|
124
173
|
let(:shuffle_answers) { false }
|
174
|
+
let(:calculator_type) { nil }
|
125
175
|
let(:lock_at) { nil }
|
126
176
|
let(:unlock_at) { nil }
|
127
177
|
let(:due_at) { nil }
|
@@ -131,10 +181,21 @@ context 'Canvas Assessment Meta Data' do
|
|
131
181
|
let(:show_answers) { false }
|
132
182
|
let(:show_answers_at) { nil }
|
133
183
|
let(:hide_answers_at) { nil }
|
184
|
+
let(:allow_clear_mc_selection) { false }
|
134
185
|
let(:rlb) { false }
|
135
186
|
let(:rlb_results) { false }
|
136
187
|
let(:rlb_monitor) { false }
|
137
188
|
let(:lb_monitor_data) { nil }
|
189
|
+
let(:nq_ip_filters_enabled) { false }
|
190
|
+
let(:nq_ip_filters) { [] }
|
191
|
+
let(:result_view_restricted) { false }
|
192
|
+
let(:display_items) { false }
|
193
|
+
let(:display_item_response) { false }
|
194
|
+
let(:display_item_feedback) { false }
|
195
|
+
let(:display_points_awarded) { false }
|
196
|
+
let(:display_points_possible) { false }
|
197
|
+
let(:display_item_correct_answer) { false }
|
198
|
+
let(:display_item_response_correctness) { false }
|
138
199
|
|
139
200
|
include_examples('loads canvas meta data')
|
140
201
|
end
|
@@ -155,7 +216,10 @@ context 'Canvas Assessment Meta Data' do
|
|
155
216
|
let(:available) { true }
|
156
217
|
let(:one_time_results) { false }
|
157
218
|
let(:scoring_policy) { 'keep_highest' }
|
219
|
+
let(:cooling_period_seconds) { nil }
|
220
|
+
let(:shuffle_questions) { false }
|
158
221
|
let(:shuffle_answers) { false }
|
222
|
+
let(:calculator_type) { nil }
|
159
223
|
let(:lock_at) { nil }
|
160
224
|
let(:unlock_at) { nil }
|
161
225
|
let(:due_at) { nil }
|
@@ -165,10 +229,21 @@ context 'Canvas Assessment Meta Data' do
|
|
165
229
|
let(:show_answers) { true }
|
166
230
|
let(:show_answers_at) { nil }
|
167
231
|
let(:hide_answers_at) { nil }
|
232
|
+
let(:allow_clear_mc_selection) { false }
|
168
233
|
let(:rlb) { false }
|
169
234
|
let(:rlb_results) { false }
|
170
235
|
let(:rlb_monitor) { false }
|
171
236
|
let(:lb_monitor_data) { nil }
|
237
|
+
let(:nq_ip_filters_enabled) { false }
|
238
|
+
let(:nq_ip_filters) { [] }
|
239
|
+
let(:result_view_restricted) { false }
|
240
|
+
let(:display_items) { false }
|
241
|
+
let(:display_item_response) { false }
|
242
|
+
let(:display_item_feedback) { false }
|
243
|
+
let(:display_points_awarded) { false }
|
244
|
+
let(:display_points_possible) { false }
|
245
|
+
let(:display_item_correct_answer) { false }
|
246
|
+
let(:display_item_response_correctness) { false }
|
172
247
|
|
173
248
|
include_examples('loads canvas meta data')
|
174
249
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qti
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.20.
|
4
|
+
version: 2.20.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adrian Diaz
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2023-08-
|
15
|
+
date: 2023-08-11 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: actionview
|