3.3.4. Interactions¶
-
class
pyslet.qtiv2.interactions.Interaction(parent)¶ Bases:
pyslet.qtiv2.content.BodyElementInteractions allow the candidate to interact with the item. Through an interaction, the candidate selects or constructs a response:
<xsd:attributeGroup name="interaction.AttrGroup"> <xsd:attributeGroup ref="bodyElement.AttrGroup"/> <xsd:attribute name="responseIdentifier" type="identifier.Type" use="required"/> </xsd:attributeGroup>
-
class
pyslet.qtiv2.interactions.InlineInteraction(parent)¶ Bases:
pyslet.html401.InlineMixin,pyslet.qtiv2.interactions.InteractionAbstract class for interactions that appear inline.
-
class
pyslet.qtiv2.interactions.BlockInteraction(parent)¶ Bases:
pyslet.html401.BlockMixin,pyslet.qtiv2.interactions.InteractionAn interaction that behaves like a block in the content model. Most interactions are of this type:
<xsd:group name="blockInteraction.ContentGroup"> <xsd:sequence> <xsd:element ref="prompt" minOccurs="0" maxOccurs="1"/> </xsd:sequence> </xsd:group>
-
class
pyslet.qtiv2.interactions.Prompt(parent)¶ Bases:
pyslet.qtiv2.content.BodyElementThe prompt used in block interactions
<xsd:group name="prompt.ContentGroup"> <xsd:sequence> <xsd:group ref="inlineStatic.ElementGroup" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:group>
-
class
pyslet.qtiv2.interactions.Choice(parent)¶ Bases:
pyslet.qtiv2.content.BodyElementMany of the interactions involve choosing one or more predefined choices
<xsd:attributeGroup name="choice.AttrGroup"> <xsd:attributeGroup ref="bodyElement.AttrGroup"/> <xsd:attribute name="identifier" type="identifier.Type" use="required"/> <xsd:attribute name="fixed" type="boolean.Type" use="optional"/> <xsd:attribute name="templateIdentifier" type="identifier.Type" use="optional"/> <xsd:attribute name="showHide" type="showHide.Type" use="optional"/> </xsd:attributeGroup>
-
class
pyslet.qtiv2.interactions.AssociableChoice(parent)¶ Bases:
pyslet.qtiv2.interactions.ChoiceOther interactions involve associating pairs of predefined choices
<xsd:attributeGroup name="associableChoice.AttrGroup"> <xsd:attributeGroup ref="choice.AttrGroup"/> <xsd:attribute name="matchGroup" use="optional"> <xsd:simpleType> <xsd:list itemType="identifier.Type"/> </xsd:simpleType> </xsd:attribute> </xsd:attributeGroup>
3.3.4.1. Simple Interactions¶
-
class
pyslet.qtiv2.interactions.ChoiceInteraction(parent)¶ Bases:
pyslet.qtiv2.interactions.BlockInteractionThe choice interaction presents a set of choices to the candidate. The candidate’s task is to select one or more of the choices, up to a maximum of maxChoices:
<xsd:attributeGroup name="choiceInteraction.AttrGroup"> <xsd:attributeGroup ref="blockInteraction.AttrGroup"/> <xsd:attribute name="shuffle" type="boolean.Type" use="required"/> <xsd:attribute name="maxChoices" type="integer.Type" use="required"/> <xsd:attribute name="minChoices" type="integer.Type" use="optional"/> </xsd:attributeGroup> <xsd:group name="choiceInteraction.ContentGroup"> <xsd:sequence> <xsd:group ref="blockInteraction.ContentGroup"/> <xsd:element ref="simpleChoice" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> </xsd:group>
-
class
pyslet.qtiv2.interactions.OrderInteraction(parent)¶ Bases:
pyslet.qtiv2.interactions.BlockInteractionIn an order interaction the candidate’s task is to reorder the choices, the order in which the choices are displayed initially is significant:
<xsd:attributeGroup name="orderInteraction.AttrGroup"> <xsd:attributeGroup ref="blockInteraction.AttrGroup"/> <xsd:attribute name="shuffle" type="boolean.Type" use="required"/> <xsd:attribute name="minChoices" type="integer.Type" use="optional"/> <xsd:attribute name="maxChoices" type="integer.Type" use="optional"/> <xsd:attribute name="orientation" type="orientation.Type" use="optional"/> </xsd:attributeGroup> <xsd:group name="orderInteraction.ContentGroup"> <xsd:sequence> <xsd:group ref="blockInteraction.ContentGroup"/> <xsd:element ref="simpleChoice" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> </xsd:group>
-
class
pyslet.qtiv2.interactions.SimpleChoice(parent)¶ Bases:
pyslet.qtiv2.content.FlowContainerMixin,pyslet.qtiv2.interactions.ChoiceA SimpleChoice is a choice that contains flow objects; it must not contain any nested interactions:
<xsd:group name="simpleChoice.ContentGroup"> <xsd:sequence> <xsd:group ref="flowStatic.ElementGroup" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:group>
-
class
pyslet.qtiv2.interactions.AssociateInteraction(parent)¶ Bases:
pyslet.qtiv2.interactions.BlockInteractionAn associate interaction is a blockInteraction that presents candidates with a number of choices and allows them to create associations between them:
<xsd:attributeGroup name="associateInteraction.AttrGroup"> <xsd:attributeGroup ref="blockInteraction.AttrGroup"/> <xsd:attribute name="shuffle" type="boolean.Type" use="required"/> <xsd:attribute name="maxAssociations" type="integer.Type" use="required"/> <xsd:attribute name="minAssociations" type="integer.Type" use="optional"/> </xsd:attributeGroup> <xsd:group name="associateInteraction.ContentGroup"> <xsd:sequence> <xsd:group ref="blockInteraction.ContentGroup"/> <xsd:element ref="simpleAssociableChoice" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> </xsd:group>
-
class
pyslet.qtiv2.interactions.MatchInteraction(parent)¶ Bases:
pyslet.qtiv2.interactions.BlockInteractionA match interaction is a blockInteraction that presents candidates with two sets of choices and allows them to create associates between pairs of choices in the two sets, but not between pairs of choices in the same set:
<xsd:attributeGroup name="matchInteraction.AttrGroup"> <xsd:attributeGroup ref="blockInteraction.AttrGroup"/> <xsd:attribute name="shuffle" type="boolean.Type" use="required"/> <xsd:attribute name="maxAssociations" type="integer.Type" use="required"/> <xsd:attribute name="minAssociations" type="integer.Type" use="optional"/> </xsd:attributeGroup> <xsd:group name="matchInteraction.ContentGroup"> <xsd:sequence> <xsd:group ref="blockInteraction.ContentGroup"/> <xsd:element ref="simpleMatchSet" minOccurs="2" maxOccurs="2"/> </xsd:sequence> </xsd:group>
-
class
pyslet.qtiv2.interactions.SimpleAssociableChoice(parent)¶ Bases:
pyslet.qtiv2.content.FlowContainerMixin,pyslet.qtiv2.interactions.AssociableChoiceassociableChoice is a choice that contains flowStatic objects, it must not contain nested interactions:
<xsd:attributeGroup name="simpleAssociableChoice.AttrGroup"> <xsd:attributeGroup ref="associableChoice.AttrGroup"/> <xsd:attribute name="matchMax" type="integer.Type" use="required"/> <xsd:attribute name="matchMin" type="integer.Type" use="optional"/> </xsd:attributeGroup> <xsd:group name="simpleAssociableChoice.ContentGroup"> <xsd:sequence> <xsd:group ref="flowStatic.ElementGroup" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:group>
-
class
pyslet.qtiv2.interactions.SimpleMatchSet(parent)¶ Bases:
pyslet.qtiv2.core.QTIElementContains an ordered set of choices for the set
<xsd:group name="simpleMatchSet.ContentGroup"> <xsd:sequence> <xsd:element ref="simpleAssociableChoice" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:group>
-
class
pyslet.qtiv2.interactions.GapMatchInteraction(parent)¶ Bases:
pyslet.qtiv2.interactions.BlockInteractionA gap match interaction is a blockInteraction that contains a number gaps that the candidate can fill from an associated set of choices:
<xsd:attributeGroup name="gapMatchInteraction.AttrGroup"> <xsd:attributeGroup ref="blockInteraction.AttrGroup"/> <xsd:attribute name="shuffle" type="boolean.Type" use="required"/> </xsd:attributeGroup> <xsd:group name="gapMatchInteraction.ContentGroup"> <xsd:sequence> <xsd:group ref="blockInteraction.ContentGroup"/> <xsd:group ref="gapChoice.ElementGroup" minOccurs="1" maxOccurs="unbounded"/> <xsd:group ref="blockStatic.ElementGroup" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> </xsd:group>
-
class
pyslet.qtiv2.interactions.Gap(parent)¶ Bases:
pyslet.html401.InlineMixin,pyslet.qtiv2.interactions.AssociableChoiceA gap is an inline element that must only appear within a gapMatchInteraction
<xsd:attributeGroup name="gap.AttrGroup"> <xsd:attributeGroup ref="associableChoice.AttrGroup"/> <xsd:attribute name="required" type="boolean.Type" use="optional"/> </xsd:attributeGroup>
-
class
pyslet.qtiv2.interactions.GapChoice(parent)¶ Bases:
pyslet.qtiv2.interactions.AssociableChoiceThe choices that are used to fill the gaps in a gapMatchInteraction are either simple runs of text or single image objects, both derived from gapChoice:
<xsd:attributeGroup name="gapChoice.AttrGroup"> <xsd:attributeGroup ref="associableChoice.AttrGroup"/> <xsd:attribute name="matchMax" type="integer.Type" use="required"/> <xsd:attribute name="matchMin" type="integer.Type" use="optional"/> </xsd:attributeGroup>
-
class
pyslet.qtiv2.interactions.GapText(parent)¶ Bases:
pyslet.qtiv2.interactions.GapChoiceA simple run of text to be inserted into a gap by the user, may be subject to variable value substitution with printedVariable:
<xsd:group name="gapText.ContentGroup"> <xsd:sequence> <xsd:element ref="printedVariable" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:group>
-
class
pyslet.qtiv2.interactions.GapImg(parent)¶ Bases:
pyslet.qtiv2.interactions.GapChoiceA gap image contains a single image object to be inserted into a gap by the candidate:
<xsd:attributeGroup name="gapImg.AttrGroup"> <xsd:attributeGroup ref="gapChoice.AttrGroup"/> <xsd:attribute name="objectLabel" type="string.Type" use="optional"/> </xsd:attributeGroup> <xsd:group name="gapImg.ContentGroup"> <xsd:sequence> <xsd:element ref="object" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:group>
3.3.4.2. Text-based Interactions¶
-
class
pyslet.qtiv2.interactions.InlineChoiceInteraction(parent)¶ Bases:
pyslet.qtiv2.interactions.InlineInteractionAn inline choice is an inlineInteraction that presents the user with a set of choices, each of which is a simple piece of text:
<xsd:attributeGroup name="inlineChoiceInteraction.AttrGroup"> <xsd:attributeGroup ref="inlineInteraction.AttrGroup"/> <xsd:attribute name="shuffle" type="boolean.Type" use="required"/> <xsd:attribute name="required" type="boolean.Type" use="optional"/> </xsd:attributeGroup> <xsd:group name="inlineChoiceInteraction.ContentGroup"> <xsd:sequence> <xsd:element ref="inlineChoice" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> </xsd:group>
-
class
pyslet.qtiv2.interactions.InlineChoice(parent)¶ Bases:
pyslet.qtiv2.interactions.ChoiceA simple run of text to be displayed to the user, may be subject to variable value substitution with printedVariable:
<xsd:group name="inlineChoice.ContentGroup"> <xsd:sequence> <xsd:element ref="printedVariable" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:group>
-
class
pyslet.qtiv2.interactions.StringInteractionMixin¶ Abstract mix-in class for interactions based on free-text input. String interactions can be bound to numeric response variables, instead of strings, if desired:
<xsd:attributeGroup name="stringInteraction.AttrGroup"> <xsd:attribute name="base" type="integer.Type" use="optional"/> <xsd:attribute name="stringIdentifier" type="identifier.Type" use="optional"/> <xsd:attribute name="expectedLength" type="integer.Type" use="optional"/> <xsd:attribute name="patternMask" type="string.Type" use="optional"/> <xsd:attribute name="placeholderText" type="string.Type" use="optional"/> </xsd:attributeGroup>
-
class
pyslet.qtiv2.interactions.TextEntryInteraction(parent)¶ Bases:
pyslet.qtiv2.interactions.StringInteractionMixin,pyslet.qtiv2.interactions.InlineInteractionA textEntry interaction is an inlineInteraction that obtains a simple piece of text from the candidate.
-
class
pyslet.qtiv2.interactions.TextFormat¶ Bases:
pyslet.xml.xsdatatypes.EnumerationNoCaseUsed to control the format of the text entered by the candidate:
<xsd:simpleType name="textFormat.Type"> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="plain"/> <xsd:enumeration value="preFormatted"/> <xsd:enumeration value="xhtml"/> </xsd:restriction> </xsd:simpleType>
Defines constants for the above formats. Usage example:
TextFormat.plain
Note that:
TextFormat.DEFAULT == TextFormat.plain
For more methods see
Enumeration
-
class
pyslet.qtiv2.interactions.ExtendedTextInteraction(parent)¶ Bases:
pyslet.qtiv2.interactions.StringInteractionMixin,pyslet.qtiv2.interactions.BlockInteractionAn extended text interaction is a blockInteraction that allows the candidate to enter an extended amount of text:
<xsd:attributeGroup name="extendedTextInteraction.AttrGroup"> <xsd:attributeGroup ref="blockInteraction.AttrGroup"/> <xsd:attributeGroup ref="stringInteraction.AttrGroup"/> <xsd:attribute name="maxStrings" type="integer.Type" use="optional"/> <xsd:attribute name="minStrings" type="integer.Type" use="optional"/> <xsd:attribute name="expectedLines" type="integer.Type" use="optional"/> <xsd:attribute name="format" type="textFormat.Type" use="optional"/> </xsd:attributeGroup>
-
class
pyslet.qtiv2.interactions.HottextInteraction(parent)¶ Bases:
pyslet.qtiv2.interactions.BlockInteractionThe hottext interaction presents a set of choices to the candidate represented as selectable runs of text embedded within a surrounding context, such as a simple passage of text:
<xsd:attributeGroup name="hottextInteraction.AttrGroup"> <xsd:attributeGroup ref="blockInteraction.AttrGroup"/> <xsd:attribute name="maxChoices" type="integer.Type" use="required"/> <xsd:attribute name="minChoices" type="integer.Type" use="optional"/> </xsd:attributeGroup> <xsd:group name="hottextInteraction.ContentGroup"> <xsd:sequence> <xsd:group ref="blockInteraction.ContentGroup"/> <xsd:group ref="blockStatic.ElementGroup" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> </xsd:group>
-
class
pyslet.qtiv2.interactions.Hottext(parent)¶ Bases:
pyslet.html401.FlowMixin,pyslet.qtiv2.interactions.ChoiceA hottext area is used within the content of an hottextInteraction to provide the individual choices:
<xsd:group name="hottext.ContentGroup"> <xsd:sequence> <xsd:group ref="inlineStatic.ElementGroup" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:group>
3.3.4.3. Graphical Interactions¶
-
class
pyslet.qtiv2.interactions.GapImg(parent) Bases:
pyslet.qtiv2.interactions.GapChoiceA gap image contains a single image object to be inserted into a gap by the candidate:
<xsd:attributeGroup name="gapImg.AttrGroup"> <xsd:attributeGroup ref="gapChoice.AttrGroup"/> <xsd:attribute name="objectLabel" type="string.Type" use="optional"/> </xsd:attributeGroup> <xsd:group name="gapImg.ContentGroup"> <xsd:sequence> <xsd:element ref="object" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:group>
-
class
pyslet.qtiv2.interactions.GapImg(parent) Bases:
pyslet.qtiv2.interactions.GapChoiceA gap image contains a single image object to be inserted into a gap by the candidate:
<xsd:attributeGroup name="gapImg.AttrGroup"> <xsd:attributeGroup ref="gapChoice.AttrGroup"/> <xsd:attribute name="objectLabel" type="string.Type" use="optional"/> </xsd:attributeGroup> <xsd:group name="gapImg.ContentGroup"> <xsd:sequence> <xsd:element ref="object" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:group>
-
class
pyslet.qtiv2.interactions.GapImg(parent) Bases:
pyslet.qtiv2.interactions.GapChoiceA gap image contains a single image object to be inserted into a gap by the candidate:
<xsd:attributeGroup name="gapImg.AttrGroup"> <xsd:attributeGroup ref="gapChoice.AttrGroup"/> <xsd:attribute name="objectLabel" type="string.Type" use="optional"/> </xsd:attributeGroup> <xsd:group name="gapImg.ContentGroup"> <xsd:sequence> <xsd:element ref="object" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:group>