Пример #1
0
    def create_thread(self):

        if not can_create_thread(self.account, self.subcategory):
            return self.json_error(
                'forum.create_thread.no_permissions',
                u'Вы не можете создавать темы в данном разделе')

        new_thread_delay = ThreadPrototype.get_new_thread_delay(self.account)
        if new_thread_delay > 0:
            error_message = (
                u'Создавать новые обсуждения можно не чаще раза в %d минут.<br/> Вы сможете создать новое обсуждение через %d сек.'
                %
                (int(forum_settings.THREAD_DELAY / 60), int(new_thread_delay)))
            return self.json_error('forum.create_thread.delay', error_message)

        new_thread_form = forms.NewThreadForm(self.request.POST)

        if not new_thread_form.is_valid():
            return self.json_error('forum.create_thread.form_errors',
                                   new_thread_form.errors)

        thread = ThreadPrototype.create(self.subcategory,
                                        caption=new_thread_form.c.caption,
                                        author=self.account,
                                        text=new_thread_form.c.text)

        return self.json_ok(
            data={
                'thread_url': reverse('forum:threads:show', args=[thread.id]),
                'thread_id': thread.id
            })
Пример #2
0
    def create_thread(self):

        if not can_create_thread(self.account, self.subcategory):
            return self.json_error('forum.create_thread.no_permissions', 'Вы не можете создавать темы в данном разделе')

        new_thread_delay = ThreadPrototype.get_new_thread_delay(self.account)
        if new_thread_delay > 0:
            error_message = ('Создавать новые обсуждения можно не чаще раза в %d минут.<br/> Вы сможете создать новое обсуждение через %d сек.' %
                             ( int(forum_settings.THREAD_DELAY / 60),
                               int(new_thread_delay)))
            return self.json_error('forum.create_thread.delay', error_message)

        new_thread_form = forms.NewThreadForm(self.request.POST)

        if not new_thread_form.is_valid():
            return self.json_error('forum.create_thread.form_errors', new_thread_form.errors)

        thread = ThreadPrototype.create(self.subcategory,
                                        caption=new_thread_form.c.caption,
                                        author=self.account,
                                        text=new_thread_form.c.text)

        return self.json_ok(data={'thread_url': reverse('forum:threads:show', args=[thread.id]),
                                  'thread_id': thread.id})
Пример #3
0
 def test_get_new_thread_delay__has_new_thread(self):
     self.assertTrue(ThreadPrototype.get_new_thread_delay(self.account) > 0)
Пример #4
0
 def test_get_new_thread_delay__has_old_thread(self):
     ThreadPrototype._db_all().update(created_at=datetime.datetime.now() - datetime.timedelta(days=30))
     self.assertEqual(ThreadPrototype.get_new_thread_delay(self.account), 0)
Пример #5
0
 def test_get_new_thread_delay__no_threads__old_account(self):
     new_account = self.accounts_factory.create_account()
     new_account._model.created_at = datetime.datetime.now() - datetime.timedelta(days=30)
     self.assertFalse(ThreadPrototype.get_new_thread_delay(new_account), 0)
Пример #6
0
 def test_get_new_thread_delay__no_threads__new_account(self):
     new_account = self.accounts_factory.create_account()
     self.assertTrue(ThreadPrototype.get_new_thread_delay(new_account) > 0)
Пример #7
0
 def test_get_new_thread_delay__no_threads__old_account(self):
     register_user('new_test_user', '*****@*****.**', '111111')
     new_account = AccountPrototype.get_by_nick('new_test_user')
     new_account._model.created_at = datetime.datetime.now() - datetime.timedelta(days=30)
     self.assertFalse(ThreadPrototype.get_new_thread_delay(new_account), 0)
Пример #8
0
 def test_get_new_thread_delay__no_threads__new_account(self):
     register_user('new_test_user', '*****@*****.**', '111111')
     new_account = AccountPrototype.get_by_nick('new_test_user')
     self.assertTrue(ThreadPrototype.get_new_thread_delay(new_account) > 0)
Пример #9
0
 def test_get_new_thread_delay__has_new_thread(self):
     self.assertTrue(ThreadPrototype.get_new_thread_delay(self.account) > 0)
Пример #10
0
 def test_get_new_thread_delay__has_old_thread(self):
     ThreadPrototype._db_all().update(created_at=datetime.datetime.now() - datetime.timedelta(days=30))
     self.assertEqual(ThreadPrototype.get_new_thread_delay(self.account), 0)
Пример #11
0
 def test_get_new_thread_delay__no_threads__old_account(self):
     new_account = self.accounts_factory.create_account()
     new_account._model.created_at = datetime.datetime.now() - datetime.timedelta(days=30)
     self.assertFalse(ThreadPrototype.get_new_thread_delay(new_account), 0)
Пример #12
0
 def test_get_new_thread_delay__no_threads__new_account(self):
     new_account = self.accounts_factory.create_account()
     self.assertTrue(ThreadPrototype.get_new_thread_delay(new_account) > 0)
Пример #13
0
 def test_get_new_thread_delay__no_threads__old_account(self):
     register_user('new_test_user', '*****@*****.**', '111111')
     new_account = AccountPrototype.get_by_nick('new_test_user')
     new_account._model.created_at = datetime.datetime.now(
     ) - datetime.timedelta(days=30)
     self.assertFalse(ThreadPrototype.get_new_thread_delay(new_account), 0)
Пример #14
0
 def test_get_new_thread_delay__no_threads__new_account(self):
     register_user('new_test_user', '*****@*****.**', '111111')
     new_account = AccountPrototype.get_by_nick('new_test_user')
     self.assertTrue(ThreadPrototype.get_new_thread_delay(new_account) > 0)