Fix south migration problem caused by 0003_update_keys_to_textversion using TextVersion model which is updated only in 0010_auto__add_field_textversion_category_1__add_field_textversion_category, same with 0007_populate_id_key_in_comments using Comment model updated in 0011_auto__add_field_comment_category.
"""
Package to manipulage html chunks
"""
from string_utils import strip_cr
from BeautifulSoup import BeautifulSoup, Comment
def surrond_text_node(html_chunk, start_html, end_html):
"""
Surround text nodes in html_chunk
"""
soup = BeautifulSoup(html_chunk)
text_nodes = get_text_nodes(soup)
for text_node in text_nodes:
if text_node.string.strip():
text_node.replaceWith(start_html + text_node.string + end_html)
return unicode(soup)
#utilities
def get_text_nodes(soup):
return soup(text=lambda text:not isinstance(text, Comment))
#WARNING behavior changed also for mardown. but really shouldn't hurt 20100212
#it is text as received from textarea
def on_content_receive(txt, format) :
#because textarea content arent packaged the same way on windows IE and linux FF, dhouldn't't hurt to clean it for any format
return strip_cr(txt)