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()
Example #2
0
    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)
Example #3
0
    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()
Example #5
0
    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)