qti 0.7.5 → 0.7.6
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6686af9d58d90589b2baea3b71df64c5756f0005
|
4
|
+
data.tar.gz: ca77e3ec61770d76abc97f2845c20be2691c4bb2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 27ed10aecd6266e80bcec275f339e7efda8297342ff4f99bf7c9552f5d5f6e821be8e3a33d63ad97e2f8c17ee455bca69eddf382f720b7a8c18d1e94af20377c
|
7
|
+
data.tar.gz: 4c117a998c662c7220304991de3524b50f8c75de05e7461c48eadbd514a74147035958a5bf2d9495dff687405bdf8aa8bb2f4d09d2514e6097373ca650346661
|
@@ -47,11 +47,16 @@ module Qti
|
|
47
47
|
points_possible_label = qti_metadata_children.children.find {|node| node.text == "points_possible"}
|
48
48
|
points_possible_node = points_possible_label.next.text
|
49
49
|
else
|
50
|
-
|
50
|
+
decvar_maxvalue
|
51
51
|
end
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
55
|
+
def decvar_maxvalue
|
56
|
+
@doc.at_xpath('.//xmlns:decvar/@maxvalue')&.value&.to_i ||
|
57
|
+
@doc.at_xpath('.//xmlns:decvar/@defaultval')&.value&.to_i || 0
|
58
|
+
end
|
59
|
+
|
55
60
|
def rcardinality
|
56
61
|
@rcardinality ||= @doc.at_xpath('.//xmlns:response_lid/@rcardinality').value
|
57
62
|
end
|
@@ -1,105 +1,100 @@
|
|
1
1
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
2
|
-
|
3
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">
|
4
|
-
|
5
|
-
<
|
6
|
-
<
|
7
|
-
|
8
|
-
<
|
9
|
-
<
|
10
|
-
|
11
|
-
<
|
12
|
-
|
13
|
-
<
|
14
|
-
<
|
15
|
-
<
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
<
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
<
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
<
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
<
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
<
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
<
|
46
|
-
|
47
|
-
|
48
|
-
</
|
49
|
-
</
|
50
|
-
</
|
51
|
-
|
52
|
-
|
53
|
-
<
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
<
|
58
|
-
|
59
|
-
|
60
|
-
</
|
61
|
-
<
|
62
|
-
|
63
|
-
<
|
64
|
-
|
65
|
-
|
66
|
-
</
|
67
|
-
<
|
68
|
-
|
69
|
-
<
|
70
|
-
|
71
|
-
|
72
|
-
</
|
73
|
-
<
|
74
|
-
|
75
|
-
<
|
76
|
-
|
77
|
-
|
78
|
-
</
|
79
|
-
<
|
80
|
-
|
81
|
-
<
|
82
|
-
|
83
|
-
|
84
|
-
</
|
85
|
-
<
|
86
|
-
|
87
|
-
<
|
88
|
-
|
89
|
-
|
90
|
-
</
|
91
|
-
<
|
92
|
-
|
93
|
-
<
|
94
|
-
|
95
|
-
|
96
|
-
</
|
97
|
-
|
98
|
-
</
|
99
|
-
</
|
100
|
-
</
|
101
|
-
|
102
|
-
</section>
|
103
|
-
</assessment>
|
104
|
-
|
3
|
+
<assessment title="Quiz" ident="A1001">
|
4
|
+
<section title="Main" ident="S1002">
|
5
|
+
<item title="Discussion - content." ident="QUE_1022">
|
6
|
+
<presentation>
|
7
|
+
<material>
|
8
|
+
<mattext texttype="text/html"><![CDATA[A good discussion posting includes which of the following (select all that apply):]]></mattext>
|
9
|
+
</material>
|
10
|
+
<response_lid ident="QUE_1023_RL" rcardinality="Multiple" rtiming="No">
|
11
|
+
<render_choice>
|
12
|
+
<response_label ident="QUE_1024_A1">
|
13
|
+
<material>
|
14
|
+
<mattext texttype="text/html"><![CDATA[Poses a question or invites additional comment from others]]></mattext>
|
15
|
+
</material>
|
16
|
+
</response_label>
|
17
|
+
<response_label ident="QUE_1025_A2">
|
18
|
+
<material>
|
19
|
+
<mattext texttype="text/html"><![CDATA[Attacks another's post to generate controversy]]></mattext>
|
20
|
+
</material>
|
21
|
+
</response_label>
|
22
|
+
<response_label ident="QUE_1026_A3">
|
23
|
+
<material>
|
24
|
+
<mattext texttype="text/html"><![CDATA[Expresses an opinion which may be controversial so that others can agree or disagree]]></mattext>
|
25
|
+
</material>
|
26
|
+
</response_label>
|
27
|
+
<response_label ident="QUE_1027_A4">
|
28
|
+
<material>
|
29
|
+
<mattext texttype="text/html"><![CDATA[Adds information, ideas or suggestions that expand everyone's thinking about the topic]]></mattext>
|
30
|
+
</material>
|
31
|
+
</response_label>
|
32
|
+
<response_label ident="QUE_1028_A5">
|
33
|
+
<material>
|
34
|
+
<mattext texttype="text/html"><![CDATA[Reiterates the consensus or restates the ideas of others without adding independent thought]]></mattext>
|
35
|
+
</material>
|
36
|
+
</response_label>
|
37
|
+
<response_label ident="QUE_1029_A6">
|
38
|
+
<material>
|
39
|
+
<mattext texttype="text/html"><![CDATA[Provides non-specific praise for fellow learners like "good job" or "I loved your idea"]]></mattext>
|
40
|
+
</material>
|
41
|
+
</response_label>
|
42
|
+
<response_label ident="QUE_1030_A7">
|
43
|
+
<material>
|
44
|
+
<mattext texttype="text/html"><![CDATA[Responds positively to a person's comment and includes their name or quote from the original posting that supports your expanded idea]]></mattext>
|
45
|
+
</material>
|
46
|
+
</response_label>
|
47
|
+
</render_choice>
|
48
|
+
</response_lid>
|
49
|
+
</presentation>
|
50
|
+
<resprocessing>
|
51
|
+
<outcomes>
|
52
|
+
<decvar vartype="Decimal" defaultval="0" varname="que_score" minvalue="0"/>
|
53
|
+
</outcomes>
|
54
|
+
<respcondition>
|
55
|
+
<conditionvar>
|
56
|
+
<varequal respident="QUE_1023_RL">QUE_1024_A1</varequal>
|
57
|
+
</conditionvar>
|
58
|
+
<setvar varname="que_score" action="Add">25.00</setvar>
|
59
|
+
</respcondition>
|
60
|
+
<respcondition>
|
61
|
+
<conditionvar>
|
62
|
+
<varequal respident="QUE_1023_RL">QUE_1025_A2</varequal>
|
63
|
+
</conditionvar>
|
64
|
+
<setvar varname="que_score" action="Add">-10.00</setvar>
|
65
|
+
</respcondition>
|
66
|
+
<respcondition>
|
67
|
+
<conditionvar>
|
68
|
+
<varequal respident="QUE_1023_RL">QUE_1026_A3</varequal>
|
69
|
+
</conditionvar>
|
70
|
+
<setvar varname="que_score" action="Add">25.00</setvar>
|
71
|
+
</respcondition>
|
72
|
+
<respcondition>
|
73
|
+
<conditionvar>
|
74
|
+
<varequal respident="QUE_1023_RL">QUE_1027_A4</varequal>
|
75
|
+
</conditionvar>
|
76
|
+
<setvar varname="que_score" action="Add">25.00</setvar>
|
77
|
+
</respcondition>
|
78
|
+
<respcondition>
|
79
|
+
<conditionvar>
|
80
|
+
<varequal respident="QUE_1023_RL">QUE_1028_A5</varequal>
|
81
|
+
</conditionvar>
|
82
|
+
<setvar varname="que_score" action="Add">-10.00</setvar>
|
83
|
+
</respcondition>
|
84
|
+
<respcondition>
|
85
|
+
<conditionvar>
|
86
|
+
<varequal respident="QUE_1023_RL">QUE_1029_A6</varequal>
|
87
|
+
</conditionvar>
|
88
|
+
<setvar varname="que_score" action="Add">-10.00</setvar>
|
89
|
+
</respcondition>
|
90
|
+
<respcondition>
|
91
|
+
<conditionvar>
|
92
|
+
<varequal respident="QUE_1023_RL">QUE_1030_A7</varequal>
|
93
|
+
</conditionvar>
|
94
|
+
<setvar varname="que_score" action="Add">25.00</setvar>
|
95
|
+
</respcondition>
|
96
|
+
</resprocessing>
|
97
|
+
</item>
|
98
|
+
</section>
|
99
|
+
</assessment>
|
105
100
|
</questestinterop>
|
@@ -1,50 +1,45 @@
|
|
1
1
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
2
|
-
|
3
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">
|
4
|
-
|
5
|
-
<
|
6
|
-
<
|
7
|
-
|
8
|
-
<
|
9
|
-
<
|
10
|
-
|
11
|
-
<
|
12
|
-
|
13
|
-
<
|
14
|
-
<
|
15
|
-
<
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
<
|
21
|
-
|
22
|
-
|
23
|
-
</
|
24
|
-
</
|
25
|
-
</
|
26
|
-
|
27
|
-
|
28
|
-
<
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
<
|
33
|
-
|
34
|
-
|
35
|
-
</
|
36
|
-
<
|
37
|
-
|
38
|
-
<
|
39
|
-
|
40
|
-
|
41
|
-
</
|
42
|
-
|
43
|
-
</
|
44
|
-
</
|
45
|
-
</
|
46
|
-
|
47
|
-
</section>
|
48
|
-
</assessment>
|
49
|
-
|
3
|
+
<assessment title="1.2 Import Quiz" ident="A1001">
|
4
|
+
<section title="Main" ident="S1002">
|
5
|
+
<item title="Grading - specific - 3 pt score" ident="QUE_1003">
|
6
|
+
<presentation>
|
7
|
+
<material>
|
8
|
+
<mattext texttype="text/html"><![CDATA[If I get a 3, I must have done something wrong. <img align="bottom" alt="image.png" src="org0/images/image.png" border="0"/>]]></mattext>
|
9
|
+
</material>
|
10
|
+
<response_lid ident="QUE_1004_RL" rcardinality="Single" rtiming="No">
|
11
|
+
<render_choice shuffle="Yes">
|
12
|
+
<response_label ident="QUE_1005_A1">
|
13
|
+
<material>
|
14
|
+
<mattext texttype="text/html"><![CDATA[True]]></mattext>
|
15
|
+
</material>
|
16
|
+
</response_label>
|
17
|
+
<response_label ident="QUE_1006_A2">
|
18
|
+
<material>
|
19
|
+
<mattext texttype="text/html"><![CDATA[False]]></mattext>
|
20
|
+
</material>
|
21
|
+
</response_label>
|
22
|
+
</render_choice>
|
23
|
+
</response_lid>
|
24
|
+
</presentation>
|
25
|
+
<resprocessing>
|
26
|
+
<outcomes>
|
27
|
+
<decvar vartype="Decimal" defaultval="0" varname="que_score"/>
|
28
|
+
</outcomes>
|
29
|
+
<respcondition>
|
30
|
+
<conditionvar>
|
31
|
+
<varequal respident="QUE_1004_RL">QUE_1005_A1</varequal>
|
32
|
+
</conditionvar>
|
33
|
+
<setvar varname="que_score" action="Add">0</setvar>
|
34
|
+
</respcondition>
|
35
|
+
<respcondition>
|
36
|
+
<conditionvar>
|
37
|
+
<varequal respident="QUE_1004_RL">QUE_1006_A2</varequal>
|
38
|
+
</conditionvar>
|
39
|
+
<setvar varname="que_score" action="Set">10.00</setvar>
|
40
|
+
</respcondition>
|
41
|
+
</resprocessing>
|
42
|
+
</item>
|
43
|
+
</section>
|
44
|
+
</assessment>
|
50
45
|
</questestinterop>
|
@@ -22,8 +22,25 @@ describe Qti::V1::Models::AssessmentItem do
|
|
22
22
|
expect(loaded_class.item_body).to include 'If I get a 3, I must have done something wrong.'
|
23
23
|
end
|
24
24
|
|
25
|
-
|
26
|
-
|
25
|
+
describe '#points_possible' do
|
26
|
+
it 'grabs the points possible' do
|
27
|
+
expect(loaded_class.points_possible).to eq 0
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'returns 0 by default' do
|
31
|
+
doc =
|
32
|
+
<<-XML.strip_heredoc
|
33
|
+
<?xml version="1.0" encoding="ISO-8859-1"?>
|
34
|
+
<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">
|
35
|
+
<outcomes>
|
36
|
+
<decvar vartype="Decimal" varname="que_score"/>
|
37
|
+
</outcomes>
|
38
|
+
</questestinterop>
|
39
|
+
XML
|
40
|
+
node = Nokogiri.XML(doc, &:noblanks)
|
41
|
+
assessment_item = described_class.new(node)
|
42
|
+
expect(assessment_item.points_possible). to eq 0
|
43
|
+
end
|
27
44
|
end
|
28
45
|
|
29
46
|
describe '#scoring_data_structs' do
|
@@ -59,7 +76,7 @@ describe Qti::V1::Models::AssessmentItem do
|
|
59
76
|
it 'collects all the correct answers' do
|
60
77
|
struct = loaded_class.scoring_data_structs
|
61
78
|
expect(struct.size).to eq 3
|
62
|
-
expect(struct.map(&:values)).to eq [
|
79
|
+
expect(struct.map(&:values)).to eq %w[4155 6991 1939]
|
63
80
|
end
|
64
81
|
end
|
65
82
|
|
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.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hannah Bottalla
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-08-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -483,7 +483,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
483
483
|
version: '0'
|
484
484
|
requirements: []
|
485
485
|
rubyforge_project:
|
486
|
-
rubygems_version: 2.
|
486
|
+
rubygems_version: 2.6.11
|
487
487
|
signing_key:
|
488
488
|
specification_version: 4
|
489
489
|
summary: QTI 1.2 and 2.1 import and export models
|