From 5bac8ec1e474b65d76a67dcf6c94d593d36e9383 Mon Sep 17 00:00:00 2001 From: Roland Geider Date: Mon, 31 Mar 2014 22:07:14 +0200 Subject: [PATCH] Correctly handle nested lists in the motion PDF See #1217 --- openslides/motion/pdf.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/openslides/motion/pdf.py b/openslides/motion/pdf.py index 2f89dc31a..6257192c5 100644 --- a/openslides/motion/pdf.py +++ b/openslides/motion/pdf.py @@ -157,25 +157,25 @@ def convert_html_to_reportlab(pdf, text): for element in soup.find_all('li'): # ... and replace ul list elements with ... if element.parent.name == "ul": - if element.ul: - # for nested ul lists use simple spaces (pragmatic solution) - element.li.insert(0, '    ') - element.insert_before(element.find_all('li')) + # nested lists + if element.ul or element.ol: + for i in element.find_all('li'): + element.insert_before(i) element.clear() else: element.name = "para" bullet_tag = soup.new_tag("bullet") - bullet_tag.string = "•" + bullet_tag.string = u"•" element.insert(0, bullet_tag) # ... and replace ol list elements with .... if element.parent.name == "ol": # set list id if element is the first of numbered list if not element.find_previous_sibling(): id = random.randrange(0, 101) - if element.ol: - # nested ol list - element.li.insert(0, '    ') - element.insert_before(element.find_all('li')) + # nested lists + if element.ul or element.ol: + for i in element.find_all('li'): + element.insert_before(i) element.clear() else: element.name = "para"