def clean_markdown(self): markdown = self.cleaned_data.get('markdown') self.html = convert_markdown(markdown) if not self.html: raise forms.ValidationError(_('Your comment cannot be blank.')) return markdown
def create_blog_entries(self): blog_entry_list = [] for i in range(self.config['BLOG']): title = lorem_ipsum.sentence() markdown = '\n\n'.join(lorem_ipsum.paragraphs(random.randint(1, 3))) blog_entry = BlogEntry( title=title, slug=slugify(title), markdown=markdown, html=convert_markdown(markdown), created_by=self.user, ) blog_entry_list.append(blog_entry) BlogEntry.objects.bulk_create(blog_entry_list)
def migrate_manga(self, old_manga_list): tank_list = LegacyTank.objects.all() tank_dict = dict([(t.id, t.tag_id) for t in tank_list]) manga_list = [] for old_manga in old_manga_list: tank_id = None if old_manga.tank_id: tank_id = tank_dict.get(old_manga.tank_id) category = old_manga.category if category == "NON-H": category = MangaCategory.NON_H language = old_manga.language if language == "zh-cn": language = "zh" markdown = convert_text_to_markdown(old_manga.description) manga_list.append( Manga( id=old_manga.id, title=old_manga.title, slug=old_manga.slug, markdown=markdown, html=convert_markdown(markdown), cover=self.get_file(old_manga.cover), category=category, status=old_manga.status, language=language, uncensored=False, tank_id=tank_id, tank_chapter=old_manga.tank_chp, published_on=old_manga.date_published, created_by_id=old_manga.uploader_id, updated_on=old_manga.last_updated, ) ) Manga.objects.bulk_create(manga_list) for old_manga in old_manga_list: Manga.objects.filter(id=old_manga.id).update(created_on=old_manga.date_created)
def migrate_comments(self, old_comment_list): content_type = ContentType.objects.get_for_model(Manga) comment_list = [] for old_comment in old_comment_list: markdown = convert_text_to_markdown(old_comment.comment) comment_list.append( Comment( id=old_comment.id, content_type=content_type, object_id=old_comment.object_pk, markdown=markdown, html=convert_markdown(markdown), ip_address=old_comment.ip_address, created_by_id=old_comment.user_id, ) ) Comment.objects.bulk_create(comment_list) for old_comment in old_comment_list: Comment.objects.filter(id=old_comment.id).update(created_on=old_comment.date_created)
def migrate_users(self, old_user_list): user_list = [] for old_user in old_user_list: is_moderator = "MODERATOR" in old_user.permission_flags markdown = convert_text_to_markdown(old_user.description) user = User( id=old_user.id, username=old_user.username, password=old_user.password, markdown=markdown, html=convert_markdown(markdown), avatar=self.get_file(old_user.picture), is_moderator=is_moderator, is_staff=old_user.is_staff, is_active=old_user.is_active, last_login=old_user.last_login, ) user_list.append(user) User.objects.bulk_create(user_list) for old_user in old_user_list: User.objects.filter(id=old_user.id).update(created_on=old_user.date_joined)
def clean_markdown(self): markdown = self.cleaned_data.get('markdown') self.html = convert_markdown(markdown) return markdown
def test_convert_markdown_images(self): markdown = '![Google Logo](http://localhost:8000/static/images/no-avatar.png)' expected_html = '<p>![Google Logo](http://localhost:8000/static/images/no-avatar.png)</p>' self.assertEqual(convert_markdown(markdown), expected_html)
def test_convert_markdown_raw_html(self): markdown = '<script type="text/javascript>alert("woops!");</script>' expected_html = '<p><script type="text/javascript>alert("woops!");</script></p>' self.assertEqual(convert_markdown(markdown), expected_html)
def test_convert_markdown_simple(self): self.assertEqual(convert_markdown('abc'), '<p>abc</p>')
def test_convert_markdown_empty(self): self.assertEqual(convert_markdown(' '), '')