Merge branch 'edumed' of github.com:fnp/redakcja into edumed
authorMarcin Koziej <marcin.koziej@nowoczesnapolska.org.pl>
Fri, 16 Nov 2012 09:25:11 +0000 (10:25 +0100)
committerMarcin Koziej <marcin.koziej@nowoczesnapolska.org.pl>
Fri, 16 Nov 2012 09:25:11 +0000 (10:25 +0100)
1  2 
apps/catalogue/management/edumed.py

@@@ -96,7 -96,7 +96,7 @@@ class Informacje(Tagger)
  
  class List(Tagger):
      point = re.compile(r"^[\s]*[-*ยท]{1,2}(.*)")
-     num = re.compile(r"^[\s]*[a-z]{1,2}[.]\s+(.*)")
+     num = re.compile(r"^[\s]*[a-z][.]\s+(.*)")
  
      def __init__(self, *args):
  
@@@ -258,15 -258,8 +258,12 @@@ dc_fixed = 
      }
  
  
 +class NotFound(Exception):
 +    pass
 +
 +
  def find_block(content, title_re, begin=-1, end=-1):
      title_re = re.compile(title_re, re.I | re.UNICODE)
-     ##   print "looking for %s" % title_re.pattern
-     if title_re.pattern[0:6] == 'pomoce':
-         import pdb; pdb.set_trace()
  
      rb = -1
      if begin < 0: begin = 0
              break
      if rb >= 0:
          return rb, i
 +    raise NotFound()
  
  
  def remove_block(content, title_re, removed=None):
      rb, re = find_block(content, title_re)
 -
      if removed is not None and isinstance(removed, list):
          removed += content[rb:re][:]
      content[rb:re] = []
@@@ -307,7 -300,7 +304,7 @@@ def mark_activities(content)
      is_przebieg = re.compile(r"[\s]*przebieg zaj..[\s]*", re.I)
  
      is_next_section = re.compile(r"^[IVX]+[.]? ")
-     is_activity = re.compile(r"^[0-9]+[.]? (.+)")
+     is_activity = re.compile(r"^[0-9]+[.] (.+)")
  
      is_activity_tools = re.compile(r"^pomoce:[\s]*(.+)")
      is_activity_work = re.compile(r"^forma pracy:[\s]*(.+)")
      ae = -1
      while True:
          e = content[i]
+         if isinstance(e, Section):
+             if in_activities and \
+                 is_next_section.match(e.title):
+                 in_activities = False
+             
          if isinstance(e, Paragraph):
              if not in_activities and \
                  is_przebieg.match(e.line):
                  in_activities = True
  
-             if in_activities and \
-                 is_next_section.match(e.line):
-                 in_activities = False
              if in_activities:
                  m = is_activity.match(e.line)
                  if m:
@@@ -421,14 -416,8 +420,14 @@@ def toxml(content, pretty_print=False)
      # some transformations
      content = mark_activities(content)
      content = mark_dictionary(content)
 -    content = remove_block(content, r"wykorzyst(yw)?ane metody[+ PA\[\].]*")
 -    content = remove_block(content, r"(pomoce|potrzebne materia.y)[+ PA\[\]]*")
 +    try:
 +        content = remove_block(content, r"wykorzyst(yw)?ane metody[+ PA\[\].]*")
 +    except NotFound:
 +        pass
 +    try:
 +        content = remove_block(content, r"(pomoce|potrzebne materia.y)[+ PA\[\]]*")
 +    except NotFound:
 +        pass
      content = move_evaluation(content)
  
      info = content.pop(0)