don't assume that aktywnosc/opis is non-empty
[redakcja.git] / apps / catalogue / models / book.py
index f58fe10..09164a3 100755 (executable)
@@ -463,7 +463,7 @@ class Book(models.Model):
         i1 = etree.parse(f2)
 
         for sect in i1.findall('//section'):
-            if sect[0].text == u'Przebieg zajęć':
+            if sect[0].text and sect[0].text.strip() == u'Przebieg zajęć':
                 # Prostujemy.
                 first = sect.find('section')
                 subs = first.findall('.//section')
@@ -479,7 +479,10 @@ class Book(models.Model):
         # print '.',
         w1t = i1.xslt(t)
         for h in w1t.findall('//aktywnosc/opis'):
-            if not re.match(r'\d\.\s', h[0].text):
+            if len(h) == 0:
+                raise ParseError('Pusty element aktywnosc/opis')
+            # FIXME assumption that every lesson has at most 9 parts
+            if not h[0].text or not re.match(r'\d\.\s', h[0].text):
                 raise ParseError('Niepoprawny nagłówek (aktywnosc/opis): %s' % repr(h[0].text))
             h[0].text = h[0].text[3:]
         return etree.tostring(w1t, encoding='utf-8')