Spezifischen Content für jeden Fragetyp abgreifen

This commit is contained in:
Fischlurch 2023-05-19 22:23:32 +02:00
parent 27e0b8271f
commit 4ff8dbd26e
2 changed files with 76 additions and 12 deletions

View file

@ -61,7 +61,7 @@
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1684368494840" ID="ID_1680262238" MODIFIED="1684521702053" POSITION="right" TEXT="Vor-Analyse (Hermann)">
<node COLOR="#338800" CREATED="1684368494840" FOLDED="true" ID="ID_1680262238" MODIFIED="1684525714791" POSITION="right" TEXT="Vor-Analyse (Hermann)">
<icon BUILTIN="button_ok"/>
<node CREATED="1684377232205" ID="ID_1958647529" MODIFIED="1684377240495" TEXT="Word-Dokument">
<node COLOR="#435e98" CREATED="1684377241659" ID="ID_211996471" MODIFIED="1684438272776" TEXT="Analyse">
@ -238,7 +238,36 @@
<node COLOR="#338800" CREATED="1684425304928" ID="ID_775756785" MODIFIED="1684524225358" TEXT="per Kontext die vollst&#xe4;ndige ID ablegen">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1684425317985" ID="ID_773218424" MODIFIED="1684425326800" TEXT="daraus ein polymorphes Python-Objekt generieren"/>
<node COLOR="#338800" CREATED="1684425317985" ID="ID_773218424" MODIFIED="1684525721084" TEXT="daraus ein polymorphes Python-Objekt generieren">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1684525722155" ID="ID_665875543" MODIFIED="1684525734052" TEXT="die jeweils spezifischen Informationen abgreifen">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1684526192221" ID="ID_556963743" MODIFIED="1684526297179" TEXT="Likert">
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1684526194969" ID="ID_1729409252" MODIFIED="1684527045821" TEXT="die Labels">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1684526203911" ID="ID_1252684313" MODIFIED="1684527305875" TEXT="die Items">
<icon BUILTIN="button_ok"/>
<node CREATED="1684527445891" ID="ID_1302046657" MODIFIED="1684527454557" TEXT="auch gleich mit ID">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1684526253307" ID="ID_1704532913" MODIFIED="1684527439581" TEXT="Select">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1684526282031" ID="ID_211986383" MODIFIED="1684527441050" TEXT="nur die Liste der Items">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1684526286132" ID="ID_968155458" MODIFIED="1684527442401" TEXT="diesmal aber mit ID">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1684526245013" ID="ID_137118574" MODIFIED="1684526246697" TEXT="Text">
<node CREATED="1684526247958" ID="ID_320449851" MODIFIED="1684526252134" TEXT="das Tag &quot;lead&quot;"/>
</node>
</node>
<node CREATED="1684425327278" ID="ID_1210419956" MODIFIED="1684425420316" TEXT="dies in eine Map-keyed-by-ID ablegen">
<arrowlink DESTINATION="ID_960847395" ENDARROW="Default" ENDINCLINATION="187;0;" ID="Arrow_ID_184243819" STARTARROW="None" STARTINCLINATION="187;0;"/>
</node>
@ -468,7 +497,7 @@
</node>
</node>
</node>
<node CREATED="1684524403774" ID="ID_148635838" MODIFIED="1684524408818" TEXT="Objekte und Klassen">
<node CREATED="1684524403774" FOLDED="true" ID="ID_148635838" MODIFIED="1684525711255" TEXT="Objekte und Klassen">
<node CREATED="1684524409917" ID="ID_1955810038" MODIFIED="1684524416059" TEXT="ein Objekt ist ein &quot;Datenpaket&quot;">
<node CREATED="1684524420460" ID="ID_252154892" MODIFIED="1684524425198" TEXT="es enth&#xe4;lt mehrere Datenfelder"/>
<node CREATED="1684524425702" ID="ID_1467994123" MODIFIED="1684524430486" TEXT="jedes Datenfeld hat einen Namen"/>

View file

@ -29,38 +29,73 @@ def convertSosci2Word():
class QuestionElement:
def __init__(self, questionID):
def __init__(self, questionID, question):
self.qid = questionID
self.title = question.find('title').text
self.desc = question.find('description').text
def dumpBasis(self, type):
return "##--%s--##\ndes=%s\ntitle=%s" % (type, self.desc, self.title)
def dump(self):
return "##--Basis--##"
return self.dumpBasis("Basis")
class LikertItem(QuestionElement):
def __init__(self, questionID, question):
QuestionElement.__init__(self, questionID)
QuestionElement.__init__(self, questionID, question)
self.labels = []
for entry in question.find('labels').findall('li'):
code = int(entry.get('i'))
text = entry.text
self.labels.append((code,text))
self.items = []
for item in question.findall('item'):
code = int(getSpecificID(item))
text = item.find('text').text
self.items.append((code,text))
def dump(self):
return "##--LikertItem--##"
return ( self.dumpBasis('Likert')
+ "\nLabels: " + str(list("(%d,%s)" % (c,t) for c,t in self.labels))
+ "\nItems: " + str(list("(%d,%s)" % (c,t) for c,t in self.items))
)
class SelectItem(QuestionElement):
def __init__(self, questionID, question):
QuestionElement.__init__(self, questionID)
QuestionElement.__init__(self, questionID, question)
self.items = []
for item in question.findall('item'):
code = int(getSpecificID(item))
text = item.find('text').text
self.items.append((code,text))
def dump(self):
return "##--SelectItem--##"
return ( self.dumpBasis('Select')
+ "\nItems: " + str(list("(%d,%s)" % (c,t) for c,t in self.items))
)
class TextElement(QuestionElement):
def __init__(self, questionID, question):
QuestionElement.__init__(self, questionID)
QuestionElement.__init__(self, questionID, question)
lead = question.find('lead')
if lead == None:
self.text = ""
else:
self.text = lead.text
def dump(self):
return "##--TextElement--##"
return ( self.dumpBasis('Text')
+ "\nText: " + self.text
)