EduploneTest/types EduploneFillGap.py,1.11,1.12 EduploneTestMember.py,1.10,1.11
"Fabian K." <[email protected]> Thu, 06 Jan 2005 17:59:24 +0000
| Newsgroups | gmane.comp.web.zope.eduplone.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/eduplone/EduploneTest/types
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30142/types
Modified Files:
EduploneFillGap.py EduploneTestMember.py
Log Message:
Finally fixed FillGap's unicode decode error (remember: always use the API !!!)
Index: EduploneTestMember.py
===================================================================
RCS file: /cvsroot/eduplone/EduploneTest/types/EduploneTestMember.py,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** EduploneTestMember.py 6 Jan 2005 01:08:20 -0000 1.10
--- EduploneTestMember.py 6 Jan 2005 17:59:22 -0000 1.11
***************
*** 71,75 ****
# generate dictionary of answerId and user input
for b in answers.keys():
! answersdict[b] = answers[b].encode('iso-8859-1', "ignore")
# append question id and dictionary to user object
--- 71,75 ----
# generate dictionary of answerId and user input
for b in answers.keys():
! answersdict[b] = answers[b]
# append question id and dictionary to user object
Index: EduploneFillGap.py
===================================================================
RCS file: /cvsroot/eduplone/EduploneTest/types/EduploneFillGap.py,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** EduploneFillGap.py 5 Jan 2005 00:36:33 -0000 1.11
--- EduploneFillGap.py 6 Jan 2005 17:59:22 -0000 1.12
***************
*** 92,101 ****
global_allow = 0
! def getRenderedText(self, render_as="user", uAnswer={}):
""" EduploneTest internally uses <gap>-tags to deal with gaps the user created over
! the interface. This method renders textfields out of them (user view) or
! converts every word into a link refering to a create-gap-function. Each link
! contains a counter which is used to identify words by their position when adding
! the internal <gap>-tag (tutor view). """
textfield_gap = "<input type=\"text\" name=\"%s\" /> "
dropdown_gap = "<select name=\"%s\"><option></option>%s</select>"
--- 92,101 ----
global_allow = 0
! def getRenderedText(self, render_as="user", userID=str()):
""" EduploneTest internally uses <gap>-tags to deal with gaps the user created over
! the interface. This method renders textfields out of them (user view) or
! converts every word into a link refering to a create-gap-function. Each link
! contains a counter which is used to identify words by their position when adding
! the internal <gap>-tag (tutor view). """
textfield_gap = "<input type=\"text\" name=\"%s\" /> "
dropdown_gap = "<select name=\"%s\"><option></option>%s</select>"
***************
*** 105,116 ****
hyperlink_edit_gap = "<a href=\"%s/base_edit\">%s</a> "
rendered_text = ""
!
# regular expression does not match special characters like ? or !, but that doesn't matter
# because plone does not either.
if render_as == "user":
if self.getTask_type() == "Dropdown":
! for i, elem in enumerate(self.text_to_render.replace("\n", "\n ").split(" ")):
if elem.strip()[:5] == "<gap=" and elem.strip()[-1] == ">":
! gap_id = re.match(r'<gap=(.*)>', elem).group(1)
dropdown_list = []
items_to_render = ""
--- 105,117 ----
hyperlink_edit_gap = "<a href=\"%s/base_edit\">%s</a> "
rendered_text = ""
!
# regular expression does not match special characters like ? or !, but that doesn't matter
# because plone does not either.
if render_as == "user":
+ uAnswer = self.aq_parent['users'][userID].getAnswer(self.getId())
if self.getTask_type() == "Dropdown":
! for i, elem in enumerate(self.getText_to_render().replace("\n", "\n ").split(" ")):
if elem.strip()[:5] == "<gap=" and elem.strip()[-1] == ">":
! gap_id = re.match(r"<gap=(.*)>", elem).group(1)
dropdown_list = []
items_to_render = ""
***************
*** 124,129 ****
if uAnswer.has_key(gap_id):
if uAnswer[gap_id] == s:
! sel = "selected"
! items_to_render += "<option %s>%s</option>\n" % (sel, s)
rendered_text += "%s " % dropdown_gap % (gap_id, items_to_render)
else:
--- 125,130 ----
if uAnswer.has_key(gap_id):
if uAnswer[gap_id] == s:
! sel = " selected"
! items_to_render += "<option%s>%s</option>\n" % (sel, s)
rendered_text += "%s " % dropdown_gap % (gap_id, items_to_render)
else:
***************
*** 132,151 ****
if len(elem) != 0 and elem[-1] == "\n":
rendered_text += "\n"
else:
! rendered_text = re.sub(r"<gap=(?P<foo>\w+)>", textfield_gap % r"\g<foo>", self.text_to_render)
for i in uAnswer.keys():
! #pass
! pA=str('name="' + i +'"')
! pB='name="' + i + '" value="' + str(uAnswer[i]) + '"'
! #print pB
! rendered_text = rendered_text.encode('iso-8859-1', "ignore").replace(pA, pB)
!
elif render_as == "tutor":
! for i, elem in enumerate(self.text_to_render.replace("\n", "\n ").split(" ")):
if elem.strip()[:5] == "<gap=" and elem.strip()[-1] == ">":
gap_id = re.match(r'<gap=(.*)>', elem).group(1)
! word_to_render = colored_gap % self[gap_id].correctAnswer[0]
rendered_text += hyperlink_edit_gap % (gap_id, word_to_render)
else:
--- 133,149 ----
if len(elem) != 0 and elem[-1] == "\n":
rendered_text += "\n"
+
else:
! rendered_text = re.sub(r"<gap=(?P<foo>\w+)>", textfield_gap % r"\g<foo>", self.getText_to_render())
for i in uAnswer.keys():
! rendered_text = rendered_text.replace("name=\"%s\"" % i, "name=\"%s\" value=\"%s\"" % (i, uAnswer[i]))
elif render_as == "tutor":
! for i, elem in enumerate(self.getText_to_render().replace("\n", "\n ").split(" ")):
if elem.strip()[:5] == "<gap=" and elem.strip()[-1] == ">":
+ print i, elem
gap_id = re.match(r'<gap=(.*)>', elem).group(1)
! word_to_render = colored_gap % self[gap_id].getCorrectAnswer()[0]
rendered_text += hyperlink_edit_gap % (gap_id, word_to_render)
else:
***************
*** 155,166 ****
rendered_text += "\n"
elif render_as =='tutor_noLinks':
! for i, elem in enumerate(self.text_to_render.replace("\n", "\n ").split(" ")):
if elem.strip()[:5] == "<gap=" and elem.strip()[-1] == ">":
gap_id = re.match(r'<gap=(.*)>', elem).group(1)
! word_to_render = colored_gap % self[gap_id].correctAnswer[0]
! rendered_text += '%s ' % (word_to_render)
else:
! rendered_text += '%s ' % (elem)
if len(elem) != 0 and elem[-1] == "\n":
--- 153,167 ----
rendered_text += "\n"
+
elif render_as =='tutor_noLinks':
! for i, elem in enumerate(self.getText_to_render().replace("\n", "\n ").split(" ")):
if elem.strip()[:5] == "<gap=" and elem.strip()[-1] == ">":
gap_id = re.match(r'<gap=(.*)>', elem).group(1)
! word_to_render = colored_gap % self[gap_id].getCorrectAnswer()[0]
! rendered_text += "%s " % word_to_render
! print 5, elem
else:
! rendered_text += "%s " % elem
! print 6, elem
if len(elem) != 0 and elem[-1] == "\n":
***************
*** 174,178 ****
""" This function converts a word into a gap, identified by it's position in the text. """
rendered_text = ""
! for i, elem in enumerate(self.text_to_render.replace("\n", "\n ").split(" ")):
if i == int(wordNo):
unique_id = self.generateUniqueId().replace(".", "").replace("-", "")
--- 175,179 ----
""" This function converts a word into a gap, identified by it's position in the text. """
rendered_text = ""
! for i, elem in enumerate(self.getText_to_render().replace("\n", "\n ").split(" ")):
if i == int(wordNo):
unique_id = self.generateUniqueId().replace(".", "").replace("-", "")
***************
*** 194,199 ****
""" """
rendered_text = ""
! gap_tag = "<gap=%s>" % gap_id
! for i, elem in enumerate(self.text_to_render.replace("\n", "\n ").split(" ")):
if elem.strip() == gap_tag:
rendered_text += "%s " % self[gap_id].correctAnswer[0].strip()
--- 195,200 ----
""" """
rendered_text = ""
! gap_tag = "<gap=%s>" % gap_id # string here because it comes directly from the HTTP request...
! for i, elem in enumerate(self.getText_to_render().replace("\n", "\n ").split(" ")):
if elem.strip() == gap_tag:
rendered_text += "%s " % self[gap_id].correctAnswer[0].strip()
-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt