qti 0.7.7 → 0.7.8
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 +4 -4
- data/lib/qti/v1/models/interactions/choice_interaction.rb +1 -1
- data/lib/qti/v1/models/interactions/fill_blank_interaction.rb +1 -1
- data/spec/fixtures/test_with_comments/i6c88aaf29feba2ffa58a487a20665394/assessment_meta.xml +57 -0
- data/spec/fixtures/test_with_comments/i6c88aaf29feba2ffa58a487a20665394/i6c88aaf29feba2ffa58a487a20665394.xml +110 -0
- data/spec/fixtures/test_with_comments/imsmanifest.xml +39 -0
- data/spec/lib/qti/v1/models/interactions/choice_interaction_spec.rb +9 -0
- data/spec/lib/qti/v1/models/interactions/fill_blank_interaction_spec.rb +12 -0
- metadata +7 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1897287f2eb2b6af316a0f7c81112e50fe2e8d43
|
|
4
|
+
data.tar.gz: 41cc16c9d6928833b10c963a17f181eb9d5f2361
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f3a3945bbe3401cb3cfc512bbcefc301a3cd4983e9b2d6da4a9b9ac4e851bce71fa76e5c0be1c45f416eed89c196802e62794c9af5923f8194a5d28a6c3f9f2a
|
|
7
|
+
data.tar.gz: dca959a4115b19ab11172438045b8f973511b92b1fa7c19767887f004ff655bbba00b03b7ba4f22796bc123dd3aa5b45a8e2aa4133c0cb60698ba15ca9448e17
|
|
@@ -29,7 +29,7 @@ module Qti
|
|
|
29
29
|
answer_choices.children.filter('not').each(&:remove)
|
|
30
30
|
answer_choices.children.map { |value_node| ScoringData.new(value_node.content, rcardinality) }
|
|
31
31
|
else
|
|
32
|
-
set_var_nodes = choice_nodes.select { |choice_node| choice_node.at_xpath('.//xmlns:setvar')
|
|
32
|
+
set_var_nodes = choice_nodes.select { |choice_node| choice_node.at_xpath('.//xmlns:setvar')&.content&.to_f&.positive? }
|
|
33
33
|
set_var_nodes.map { |value_node| ScoringData.new(value_node.at_xpath('.//xmlns:varequal').content, rcardinality) }
|
|
34
34
|
end
|
|
35
35
|
end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<quiz identifier="i6c88aaf29feba2ffa58a487a20665394" xmlns="http://canvas.instructure.com/xsd/cccv1p0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://canvas.instructure.com/xsd/cccv1p0 http://canvas.instructure.com/xsd/cccv1p0.xsd">
|
|
3
|
+
<title>Canvas Quiz with 1 Comment</title>
|
|
4
|
+
<description><p>Canvas Quiz with 1 Comment</p></description>
|
|
5
|
+
<shuffle_answers>false</shuffle_answers>
|
|
6
|
+
<scoring_policy>keep_highest</scoring_policy>
|
|
7
|
+
<quiz_type>assignment</quiz_type>
|
|
8
|
+
<points_possible>4.0</points_possible>
|
|
9
|
+
<require_lockdown_browser>false</require_lockdown_browser>
|
|
10
|
+
<require_lockdown_browser_for_results>false</require_lockdown_browser_for_results>
|
|
11
|
+
<require_lockdown_browser_monitor>false</require_lockdown_browser_monitor>
|
|
12
|
+
<lockdown_browser_monitor_data/>
|
|
13
|
+
<show_correct_answers>true</show_correct_answers>
|
|
14
|
+
<anonymous_submissions>false</anonymous_submissions>
|
|
15
|
+
<could_be_locked>false</could_be_locked>
|
|
16
|
+
<allowed_attempts>1</allowed_attempts>
|
|
17
|
+
<one_question_at_a_time>false</one_question_at_a_time>
|
|
18
|
+
<cant_go_back>false</cant_go_back>
|
|
19
|
+
<available>true</available>
|
|
20
|
+
<one_time_results>false</one_time_results>
|
|
21
|
+
<show_correct_answers_last_attempt>false</show_correct_answers_last_attempt>
|
|
22
|
+
<only_visible_to_overrides>false</only_visible_to_overrides>
|
|
23
|
+
<module_locked>false</module_locked>
|
|
24
|
+
<assignment identifier="i586a23c8b847a4d66d640c9a6bff1a20">
|
|
25
|
+
<title>Canvas Quiz with 1 Comment</title>
|
|
26
|
+
<due_at/>
|
|
27
|
+
<lock_at/>
|
|
28
|
+
<unlock_at/>
|
|
29
|
+
<module_locked>false</module_locked>
|
|
30
|
+
<workflow_state>published</workflow_state>
|
|
31
|
+
<assignment_overrides>
|
|
32
|
+
</assignment_overrides>
|
|
33
|
+
<quiz_identifierref>i6c88aaf29feba2ffa58a487a20665394</quiz_identifierref>
|
|
34
|
+
<has_group_category>false</has_group_category>
|
|
35
|
+
<points_possible>4.0</points_possible>
|
|
36
|
+
<grading_type>points</grading_type>
|
|
37
|
+
<all_day>false</all_day>
|
|
38
|
+
<submission_types>online_quiz</submission_types>
|
|
39
|
+
<position>6</position>
|
|
40
|
+
<turnitin_enabled>false</turnitin_enabled>
|
|
41
|
+
<vericite_enabled>false</vericite_enabled>
|
|
42
|
+
<peer_review_count>0</peer_review_count>
|
|
43
|
+
<peer_reviews>false</peer_reviews>
|
|
44
|
+
<automatic_peer_reviews>false</automatic_peer_reviews>
|
|
45
|
+
<moderated_grading>false</moderated_grading>
|
|
46
|
+
<anonymous_peer_reviews>false</anonymous_peer_reviews>
|
|
47
|
+
<grade_group_students_individually>false</grade_group_students_individually>
|
|
48
|
+
<freeze_on_copy>false</freeze_on_copy>
|
|
49
|
+
<muted>false</muted>
|
|
50
|
+
<omit_from_final_grade>false</omit_from_final_grade>
|
|
51
|
+
<intra_group_peer_reviews>false</intra_group_peer_reviews>
|
|
52
|
+
<only_visible_to_overrides>false</only_visible_to_overrides>
|
|
53
|
+
</assignment>
|
|
54
|
+
<assignment_group_identifierref>i3e19faa4291bd43ebb8783c9f176b0ae</assignment_group_identifierref>
|
|
55
|
+
<assignment_overrides>
|
|
56
|
+
</assignment_overrides>
|
|
57
|
+
</quiz>
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<questestinterop xmlns="http://www.imsglobal.org/xsd/ims_qtiasiv1p2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.imsglobal.org/xsd/ims_qtiasiv1p2 http://www.imsglobal.org/xsd/ims_qtiasiv1p2p1.xsd">
|
|
3
|
+
<assessment ident="i6c88aaf29feba2ffa58a487a20665394" title="Canvas Quiz with 1 Comment">
|
|
4
|
+
<qtimetadata>
|
|
5
|
+
<qtimetadatafield>
|
|
6
|
+
<fieldlabel>cc_maxattempts</fieldlabel>
|
|
7
|
+
<fieldentry>1</fieldentry>
|
|
8
|
+
</qtimetadatafield>
|
|
9
|
+
</qtimetadata>
|
|
10
|
+
<section ident="root_section">
|
|
11
|
+
<item ident="iab6bb0c682429210e52f46c57fe4ffd0" title="Question">
|
|
12
|
+
<itemmetadata>
|
|
13
|
+
<qtimetadata>
|
|
14
|
+
<qtimetadatafield>
|
|
15
|
+
<fieldlabel>question_type</fieldlabel>
|
|
16
|
+
<fieldentry>multiple_choice_question</fieldentry>
|
|
17
|
+
</qtimetadatafield>
|
|
18
|
+
<qtimetadatafield>
|
|
19
|
+
<fieldlabel>points_possible</fieldlabel>
|
|
20
|
+
<fieldentry>1.0</fieldentry>
|
|
21
|
+
</qtimetadatafield>
|
|
22
|
+
<qtimetadatafield>
|
|
23
|
+
<fieldlabel>assessment_question_identifierref</fieldlabel>
|
|
24
|
+
<fieldentry>ia8e74b02eb98eca257ee09872f91abcd</fieldentry>
|
|
25
|
+
</qtimetadatafield>
|
|
26
|
+
</qtimetadata>
|
|
27
|
+
</itemmetadata>
|
|
28
|
+
<presentation>
|
|
29
|
+
<material>
|
|
30
|
+
<mattext texttype="text/html"><div><p>Multiple Choice With Comments</p></div></mattext>
|
|
31
|
+
</material>
|
|
32
|
+
<response_lid ident="response1" rcardinality="Single">
|
|
33
|
+
<render_choice>
|
|
34
|
+
<response_label ident="2310">
|
|
35
|
+
<material>
|
|
36
|
+
<mattext texttype="text/plain">Correct</mattext>
|
|
37
|
+
</material>
|
|
38
|
+
</response_label>
|
|
39
|
+
<response_label ident="3455">
|
|
40
|
+
<material>
|
|
41
|
+
<mattext texttype="text/plain">Wrong</mattext>
|
|
42
|
+
</material>
|
|
43
|
+
</response_label>
|
|
44
|
+
<response_label ident="5376">
|
|
45
|
+
<material>
|
|
46
|
+
<mattext texttype="text/plain">Super Wrong</mattext>
|
|
47
|
+
</material>
|
|
48
|
+
</response_label>
|
|
49
|
+
<response_label ident="1830">
|
|
50
|
+
<material>
|
|
51
|
+
<mattext texttype="text/plain"></mattext>
|
|
52
|
+
</material>
|
|
53
|
+
</response_label>
|
|
54
|
+
<response_label ident="5977">
|
|
55
|
+
<material>
|
|
56
|
+
<mattext texttype="text/plain"></mattext>
|
|
57
|
+
</material>
|
|
58
|
+
</response_label>
|
|
59
|
+
</render_choice>
|
|
60
|
+
</response_lid>
|
|
61
|
+
</presentation>
|
|
62
|
+
<resprocessing>
|
|
63
|
+
<outcomes>
|
|
64
|
+
<decvar maxvalue="100" minvalue="0" varname="SCORE" vartype="Decimal"/>
|
|
65
|
+
</outcomes>
|
|
66
|
+
<respcondition continue="Yes">
|
|
67
|
+
<conditionvar>
|
|
68
|
+
<other/>
|
|
69
|
+
</conditionvar>
|
|
70
|
+
<displayfeedback feedbacktype="Response" linkrefid="general_fb"/>
|
|
71
|
+
</respcondition>
|
|
72
|
+
<respcondition continue="No">
|
|
73
|
+
<conditionvar>
|
|
74
|
+
<varequal respident="response1">2310</varequal>
|
|
75
|
+
</conditionvar>
|
|
76
|
+
<setvar action="Set" varname="SCORE">100</setvar>
|
|
77
|
+
<displayfeedback feedbacktype="Response" linkrefid="correct_fb"/>
|
|
78
|
+
</respcondition>
|
|
79
|
+
<respcondition continue="Yes">
|
|
80
|
+
<conditionvar>
|
|
81
|
+
<other/>
|
|
82
|
+
</conditionvar>
|
|
83
|
+
<displayfeedback feedbacktype="Response" linkrefid="general_incorrect_fb"/>
|
|
84
|
+
</respcondition>
|
|
85
|
+
</resprocessing>
|
|
86
|
+
<itemfeedback ident="general_fb">
|
|
87
|
+
<flow_mat>
|
|
88
|
+
<material>
|
|
89
|
+
<mattext texttype="text/html"><p>General Answer Comments</p></mattext>
|
|
90
|
+
</material>
|
|
91
|
+
</flow_mat>
|
|
92
|
+
</itemfeedback>
|
|
93
|
+
<itemfeedback ident="correct_fb">
|
|
94
|
+
<flow_mat>
|
|
95
|
+
<material>
|
|
96
|
+
<mattext texttype="text/html"><p>GREAT!~</p></mattext>
|
|
97
|
+
</material>
|
|
98
|
+
</flow_mat>
|
|
99
|
+
</itemfeedback>
|
|
100
|
+
<itemfeedback ident="general_incorrect_fb">
|
|
101
|
+
<flow_mat>
|
|
102
|
+
<material>
|
|
103
|
+
<mattext texttype="text/html"><p>BAD!</p></mattext>
|
|
104
|
+
</material>
|
|
105
|
+
</flow_mat>
|
|
106
|
+
</itemfeedback>
|
|
107
|
+
</item>
|
|
108
|
+
</section>
|
|
109
|
+
</assessment>
|
|
110
|
+
</questestinterop>
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<manifest identifier="i0eca35dafa7480dfe690bbd94fecff5f" xmlns="http://www.imsglobal.org/xsd/imsccv1p1/imscp_v1p1" xmlns:lom="http://ltsc.ieee.org/xsd/imsccv1p1/LOM/resource" xmlns:imsmd="http://www.imsglobal.org/xsd/imsmd_v1p2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.imsglobal.org/xsd/imsccv1p1/imscp_v1p1 http://www.imsglobal.org/xsd/imscp_v1p1.xsd http://ltsc.ieee.org/xsd/imsccv1p1/LOM/resource http://www.imsglobal.org/profile/cc/ccv1p1/LOM/ccv1p1_lomresource_v1p0.xsd http://www.imsglobal.org/xsd/imsmd_v1p2 http://www.imsglobal.org/xsd/imsmd_v1p2p2.xsd">
|
|
3
|
+
<metadata>
|
|
4
|
+
<schema>IMS Content</schema>
|
|
5
|
+
<schemaversion>1.1.3</schemaversion>
|
|
6
|
+
<imsmd:lom>
|
|
7
|
+
<imsmd:general>
|
|
8
|
+
<imsmd:title>
|
|
9
|
+
<imsmd:string>QTI Quiz Export for course "quizzes2"</imsmd:string>
|
|
10
|
+
</imsmd:title>
|
|
11
|
+
</imsmd:general>
|
|
12
|
+
<imsmd:lifeCycle>
|
|
13
|
+
<imsmd:contribute>
|
|
14
|
+
<imsmd:date>
|
|
15
|
+
<imsmd:dateTime>2017-07-18</imsmd:dateTime>
|
|
16
|
+
</imsmd:date>
|
|
17
|
+
</imsmd:contribute>
|
|
18
|
+
</imsmd:lifeCycle>
|
|
19
|
+
<imsmd:rights>
|
|
20
|
+
<imsmd:copyrightAndOtherRestrictions>
|
|
21
|
+
<imsmd:value>yes</imsmd:value>
|
|
22
|
+
</imsmd:copyrightAndOtherRestrictions>
|
|
23
|
+
<imsmd:description>
|
|
24
|
+
<imsmd:string>Private (Copyrighted) - http://en.wikipedia.org/wiki/Copyright</imsmd:string>
|
|
25
|
+
</imsmd:description>
|
|
26
|
+
</imsmd:rights>
|
|
27
|
+
</imsmd:lom>
|
|
28
|
+
</metadata>
|
|
29
|
+
<organizations/>
|
|
30
|
+
<resources>
|
|
31
|
+
<resource identifier="i6c88aaf29feba2ffa58a487a20665394" type="imsqti_xmlv1p2">
|
|
32
|
+
<file href="i6c88aaf29feba2ffa58a487a20665394/i6c88aaf29feba2ffa58a487a20665394.xml"/>
|
|
33
|
+
<dependency identifierref="i77eeb4cba7b69f032838c53a50bb9a31"/>
|
|
34
|
+
</resource>
|
|
35
|
+
<resource identifier="i77eeb4cba7b69f032838c53a50bb9a31" type="associatedcontent/imscc_xmlv1p1/learning-application-resource" href="i6c88aaf29feba2ffa58a487a20665394/assessment_meta.xml">
|
|
36
|
+
<file href="i6c88aaf29feba2ffa58a487a20665394/assessment_meta.xml"/>
|
|
37
|
+
</resource>
|
|
38
|
+
</resources>
|
|
39
|
+
</manifest>
|
|
@@ -51,4 +51,13 @@ describe Qti::V1::Models::Interactions::ChoiceInteraction do
|
|
|
51
51
|
|
|
52
52
|
include_examples 'shuffled?'
|
|
53
53
|
end
|
|
54
|
+
|
|
55
|
+
context 'multiple respconditions with empty setvars' do
|
|
56
|
+
let(:fixtures_path) { File.join('spec', 'fixtures', 'test_with_comments') }
|
|
57
|
+
let(:file_path) { File.join(fixtures_path, 'i6c88aaf29feba2ffa58a487a20665394', 'i6c88aaf29feba2ffa58a487a20665394.xml') }
|
|
58
|
+
|
|
59
|
+
it 'loads the items' do
|
|
60
|
+
expect(loaded_class.scoring_data_structs.count).to eq 1
|
|
61
|
+
end
|
|
62
|
+
end
|
|
54
63
|
end
|
|
@@ -61,4 +61,16 @@ describe Qti::V1::Models::Interactions::FillBlankInteraction do
|
|
|
61
61
|
include_examples 'scoring_data_structs'
|
|
62
62
|
include_examples 'stem_items'
|
|
63
63
|
end
|
|
64
|
+
|
|
65
|
+
describe '#scoring_data_structs' do
|
|
66
|
+
let(:nodexml) { double }
|
|
67
|
+
subject { described_class.new(nodexml) }
|
|
68
|
+
|
|
69
|
+
it "returns 'no' as case default value" do
|
|
70
|
+
allow(nodexml).to receive(:at_xpath)
|
|
71
|
+
node = double(content: 'content', attributes: { 'respident' => double(value: 'a') })
|
|
72
|
+
allow(subject).to receive(:answer_nodes).and_return([node])
|
|
73
|
+
expect(subject.scoring_data_structs.first.case).to eq 'no'
|
|
74
|
+
end
|
|
75
|
+
end
|
|
64
76
|
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: 0.7.
|
|
4
|
+
version: 0.7.8
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Hannah Bottalla
|
|
@@ -383,6 +383,9 @@ files:
|
|
|
383
383
|
- spec/fixtures/test_qti_2.2/multiple-choice/multiple-choice.xml
|
|
384
384
|
- spec/fixtures/test_qti_2.2/text-entry/text-entry.xml
|
|
385
385
|
- spec/fixtures/test_qti_2.2/true-false/true-false.xml
|
|
386
|
+
- spec/fixtures/test_with_comments/i6c88aaf29feba2ffa58a487a20665394/assessment_meta.xml
|
|
387
|
+
- spec/fixtures/test_with_comments/i6c88aaf29feba2ffa58a487a20665394/i6c88aaf29feba2ffa58a487a20665394.xml
|
|
388
|
+
- spec/fixtures/test_with_comments/imsmanifest.xml
|
|
386
389
|
- spec/fixtures/tests/feedbackTest/assessment.xml
|
|
387
390
|
- spec/fixtures/tests/feedbackTest/id-38d47747fb30/Example02-feedbackInline.xml
|
|
388
391
|
- spec/fixtures/tests/feedbackTest/id-5e216df10030/Example03-feedbackBlock-solution.xml
|
|
@@ -626,6 +629,9 @@ test_files:
|
|
|
626
629
|
- spec/fixtures/test_qti_2.2/multiple-choice/multiple-choice.xml
|
|
627
630
|
- spec/fixtures/test_qti_2.2/text-entry/text-entry.xml
|
|
628
631
|
- spec/fixtures/test_qti_2.2/true-false/true-false.xml
|
|
632
|
+
- spec/fixtures/test_with_comments/i6c88aaf29feba2ffa58a487a20665394/assessment_meta.xml
|
|
633
|
+
- spec/fixtures/test_with_comments/i6c88aaf29feba2ffa58a487a20665394/i6c88aaf29feba2ffa58a487a20665394.xml
|
|
634
|
+
- spec/fixtures/test_with_comments/imsmanifest.xml
|
|
629
635
|
- spec/fixtures/tests/feedbackTest/assessment.xml
|
|
630
636
|
- spec/fixtures/tests/feedbackTest/id-38d47747fb30/Example02-feedbackInline.xml
|
|
631
637
|
- spec/fixtures/tests/feedbackTest/id-5e216df10030/Example03-feedbackBlock-solution.xml
|