Richtige Wörter werden jetzt durch spans und hidden input ersetzt. master
authorFelix Schumacher <felix@h556568.serverkompetenz.net>
Sat, 4 Oct 2008 10:52:00 +0000 (12:52 +0200)
committerFelix Schumacher <felix@h556568.serverkompetenz.net>
Sat, 4 Oct 2008 10:52:00 +0000 (12:52 +0200)
lueckentext.py
text1.txt

index d476789..82869c7 100644 (file)
@@ -2,6 +2,11 @@
 import re
 
 REPLACE_TEXT=re.compile('\[([^\]]+)\]', re.M)
+REPLACE_TEMPLATES = { 
+   True: '''<span class="ok">%(text)s</span>
+            <input type="hidden" name="%(key)s" value="%(text)s" />''',
+   False: '''<input type="text" class="todo" name="%(key)s" value="%(text)s" />''',
+   }
 
 def to_html(text="", params={}):
   result = text
@@ -11,9 +16,8 @@ def to_html(text="", params={}):
     css_class='todo'
     todo = params.get(key, '')
     solution = REPLACE_TEXT.search(result).group()
-    if "[%s]" % todo == solution:
-      css_class = 'ok'
-    result = REPLACE_TEXT.sub('<input type="text" class="%s" name="%s" value="%s" />' % (css_class, key, params.get(key, '')), result, 1)
+    is_solution = "[%s]" % todo == solution
+    result = REPLACE_TEXT.sub(REPLACE_TEMPLATES[is_solution] % { 'text': params.get(key, ''), 'key': key }, result, 1)
     counter += 1
   return '<div class="lueckentext">\n%s\n</div>' % (result)
 
index 9fff70d..9c3483a 100644 (file)
--- a/text1.txt
+++ b/text1.txt
@@ -28,7 +28,8 @@ deutsche Sprache kennen.
 ... # doctest: +NORMALIZE_WHITESPACE
 <div class="lueckentext">
 Dies <input type="text" class="todo" name="l1" value="test" /> ein Lueckentext. 
-Er <input type="text" class="ok" name="l2" value="enthaelt" /> mehrere Worte und 
+Er <span class="ok">enthaelt</span>
+                <input type="hidden" name="l2" value="enthaelt" /> mehrere Worte und 
 mehrere Zeilen. Damit <input type="text" class="todo" name="l3" value="" /> 
 ausgefuellt werden kann, sollte man <input type="text" class="todo" name="l4" value="" /> 
 deutsche Sprache kennen.