fix multiple choice detection in Wybor
[librarian.git] / librarian / pyhtml.py
index d781abf..c76a371 100644 (file)
@@ -183,7 +183,7 @@ class EduModule(Xmill):
         if 'url' in element.attrib:
             return tag('a', href=element.attrib['url'])(self, element)
         elif 'material' in element.attrib:
-            formats = re.split(r"[, ]+", element.attrib['format'])
+            formats = re.split(r"[, ]+", element.attrib.get('format', 'odt'))
             fmt_links = []
             for f in formats:
                 fmt_links.append(u'<a href="%s">%s</a>' % (self.options['urlmapper'].url_for_material(element.attrib['material'], f), f.upper()))
@@ -261,6 +261,13 @@ class Wybor(Exercise):
             if len(solutions) != 1:
                 is_single_choice = False
                 break
+            choices = element.xpath(".//*[@nazwa]")
+            uniq = set()
+            for n in choices: uniq.add(n.attrib['nazwa'])
+            if len(choices) != len(uniq):
+                is_single_choice = False
+                break
+
         self.options = {'single': is_single_choice}
         return pre, post