' %\
(add_class, self.question_counter, solution_s + minimum_s), \
@@ -402,7 +419,6 @@ class Exercise(EduModule):
return ""
-
class Wybor(Exercise):
def handle_cwiczenie(self, element):
pre, post = super(Wybor, self).handle_cwiczenie(element)
@@ -417,7 +433,8 @@ class Wybor(Exercise):
break
choices = p.xpath(".//*[@nazwa]")
uniq = set()
- for n in choices: uniq.add(n.attrib.get('nazwa', ''))
+ for n in choices:
+ uniq.add(n.attrib.get('nazwa', ''))
if len(choices) != len(uniq):
is_single_choice = False
break
@@ -472,6 +489,7 @@ Overrides the returned content default handle_pytanie
class Luki(Exercise):
INSTRUCTION = u"PrzeciÄ
gnij odpowiedzi i upuÅÄ w wybranym polu."
+
def find_pieces(self, question):
return question.xpath(".//luka")
@@ -556,6 +574,8 @@ class Przyporzadkuj(Exercise):
'data-target': lista.attrib['cel'],
'class': 'subject'
}
+ if lista.attrib.get('krotkie'):
+ self.options = {'short': True}
self.options = {'subject': True}
else:
attrs = {}
@@ -566,16 +586,29 @@ class Przyporzadkuj(Exercise):
if self.options['subject']:
self.piece_counter += 1
if self.options['handles']:
- return '
%s' % (element.attrib.get('rozw', ''), self.piece_counter, self.piece_counter), ''
+ return (
+ '
%s' % (
+ element.attrib.get('rozw', ''),
+ self.piece_counter,
+ self.piece_counter),
+ '')
else:
- return '
' % (element.attrib.get('rozw', ''), self.piece_counter), ''
+ extra_class = ""
+ if self.options['short']:
+ extra_class += ' short'
+ return '
' % (
+ element.attrib.get('rozw', ''),
+ self.piece_counter, extra_class), ''
elif self.options['predicate']:
if self.options['min']:
placeholders = u'
' * self.options['min']
else:
placeholders = u'
'
- return '
' % element.attrib.get('nazwa', ''), ''
+ return (
+ '
' % element.attrib.get('nazwa', ''),
+ '')
else:
return super(Przyporzadkuj, self).handle_punkt(element)
@@ -601,6 +634,7 @@ class EduModuleFormat(Format):
def __init__(self, wldoc, **kwargs):
super(EduModuleFormat, self).__init__(wldoc, **kwargs)
+ self.materials_by_slug = None
def build(self):
# Sort materials by slug.
@@ -622,20 +656,33 @@ class EduModuleFormat(Format):
def materials(self, slug):
"""Returns a list of pairs: (ext, iofile)."""
- order = dict(reversed(k) for k in enumerate(self.PRIMARY_MATERIAL_FORMATS))
+ order = {pmf: i for (i, pmf) in enumerate(self.PRIMARY_MATERIAL_FORMATS)}
mats = self.materials_by_slug.get(slug, {}).items()
if not mats:
- print "!! Material missing: '%s'" % slug
+ print ("!! Material missing: '%s'" % slug).encode('utf-8')
return sorted(mats, key=lambda (x, y): order.get(x, x))
def url_for_material(self, slug, fmt):
return "%s.%s" % (slug, fmt)
+ # WTF: tutaj byÅ bÅÄ
d, ale nikomu to nie przeszkadzaÅo?
def url_for_image(self, slug, fmt, width=None):
- return self.url_for_material(self, slug, fmt)
+ return self.url_for_material(slug, fmt)
+
+ def text_to_anchor(self, text):
+ return re.sub(r" +", " ", text)
+
+ def naglowek_to_anchor(self, naglowek):
+ return self.text_to_anchor(naglowek.text.strip())
+
+ def get_forma_url(self, forma):
+ return None
+
+ def get_help_url(self, naglowek):
+ return None
-def transform(wldoc, stylesheet='edumed', options=None, flags=None):
+def transform(wldoc, stylesheet='edumed', options=None, flags=None, verbose=None):
"""Transforms the WL document to XHTML.
If output_filename is None, returns an XML,