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