def create_other_threads(self): for page in LessonPage.objects.all(): if not page.has_own_topic: new_topic, topic_created = Topic.objects.get_or_create( forum=Forum.objects.get(name='Lessons Forum'), name='Урок-' + str(page.lesson_number), user=User.objects.get(username='******'), slug='lecon' + str(page.lesson_number), ) if topic_created: page.topic_id = new_topic.id self.stdout.write( str(page.lesson_number) + ' thread created') body = 'Не стесняйтесь задавать вопросы и комментировать.' new_post = Post( body=body, topic_id=new_topic.id, user_id=new_topic.user_id, user_ip='1.1.1.1', created=datetime.now(), ) new_post.save() self.stdout.write(str(lesson_number) + ' post created') else: self.stdout.write( str(lesson_number) + ' thread not created') page.save()
def test_simple_quote(self): post = Post(user=self.staff, body='[quote="zeus;%d"]Super quote[/quote]' % self.post.pk, topic=self.topic) post.save() self.assertHTMLEqual( minify_html(post.body_html), u'<blockquote><div class="quote-author"> Posted by <a class="quote-author-name" href="/users/zeus/">zeus</a><a rel="nofollow" class="quote-message-link" href="/xfoo/{}-etopic#post{}"></a></div><div class="quote-message"> Super quote </div></blockquote>' .format(self.post.topic_id, self.post.id)) self.assertEqual(Quote.objects.filter(from_post=post).count(), 1)
def test_multiple_mentions(self): self.user self.staff self.superuser multiple_mentions = Post(topic=self.topic, user=self.user, body='@thoas is right and @oleiade or @zeus!') processor = MentionProcessor(multiple_mentions.body, obj=multiple_mentions) self.assertEqual(processor.render(), u'[mention=%d]thoas[/mention] is right and [mention=%d]oleiade[/mention] or [mention=%d]zeus[/mention]!' % ( self.staff.pk, self.superuser.pk, self.user.pk )) multiple_mentions.save() self.assertEqual(Mention.objects.filter(post=multiple_mentions).count(), 3)
def handle(self, *args, **options): _parser = Markdown( extensions=[ 'forum.mdownx.nofollowlinks', 'markdown.extensions.nl2br', 'pymdownx.extra', 'pymdownx.emoji', 'pymdownx.tasklist', 'pymdownx.details', 'pymdownx.superfences', 'pymdownx.details', ], safe_mode='escape', ) table = self.import_from_csv('narodny_konspekt.csv') for lesson_number in table: table[lesson_number] = self.rewrite(table[lesson_number]) if isinstance(table[lesson_number], float): pass else: try: page = LessonPage.objects.get(lesson_number=lesson_number) except: self.stdout.write("Lesson page doesn't exist") break page.has_own_topic = True new_topic, topic_created = Topic.objects.get_or_create( forum=Forum.objects.get(name='Lessons Forum'), name='Урок-' + str(page.lesson_number), user=User.objects.get(username='******'), slug='lecon' + str(page.lesson_number), ) page.topic_id = new_topic.id self.stdout.write(str(lesson_number) + ' thread created') body = table[lesson_number] new_post = Post( body=body, topic_id=new_topic.id, user_id=new_topic.user_id, user_ip='1.1.1.1', created=datetime.now(tz=pytz.timezone(settings.TIME_ZONE)), ) new_post.save() self.stdout.write(str(lesson_number) + ' post created') page.save()
def test_processors(self): self.user self.staff self.post = Post(topic=self.topic, user=self.user, body='@thoas is right!') processor = MentionProcessor(self.post.body, obj=self.post) self.assertEqual(processor.render(), u'[mention=%d]thoas[/mention] is right!' % self.staff.pk) self.post.save() body = markup(self.post.body, obj=self.post) self.assertEqual(body, '@<a class="mention" href="/users/thoas/">thoas</a> is right!') self.assertEqual(Mention.objects.filter(post=self.post, from_user=self.post.user, to_user=self.staff).count(), 1)