Exemple #1
0
def knowledge_thread(request,
                     question_id,
                     slug=None,
                     template='django_knowledge/thread.html'):

    if settings.LOGIN_REQUIRED and not request.user.is_authenticated():
        return HttpResponseRedirect(settings.LOGIN_URL +
                                    "?next=%s" % request.path)

    try:
        question = Question.objects.can_view(request.user)\
                                   .get(id=question_id)
    except Question.DoesNotExist:
        if Question.objects.filter(id=question_id).exists() and \
                                hasattr(settings, 'LOGIN_REDIRECT_URL'):
            return redirect(settings.LOGIN_REDIRECT_URL)
        else:
            raise Http404

    responses = question.get_responses(request.user)

    if request.path != question.get_absolute_url():
        return redirect(question.get_absolute_url(), permanent=True)

    form = ResponseForm(request.user, question, request.POST or None)
    if request.method == 'POST' and form.is_valid():
        if request.user.is_authenticated(
        ) or not form.cleaned_data['phone_number']:
            form.save()
        return redirect(question.get_absolute_url())

    return render(
        request, template, {
            'request': request,
            'question': question,
            'responses': responses,
            'allowed_mods': ALLOWED_MODS,
            'form': form,
            'categories': Category.objects.all(),
            'BASE_TEMPLATE': settings.BASE_TEMPLATE,
        })
    def test_form_saving(self):
        QUESTION_POST = {
            'user': self.joe.pk,
            'title': 'This is a title friend!',
            'body': 'This is the body friend!',
            'status': 'draft',
            'categories': ''
        }

        form = QuestionForm(self.joe, QUESTION_POST)

        self.assertTrue(form.is_valid())

        question = form.save()

        self.assertEquals(question.status, 'draft')
        self.assertEquals(question.name, None)
        self.assertEquals(question.email, None)
        self.assertEquals(question.title, 'This is a title friend!')
        self.assertEquals(question.body, 'This is the body friend!')
        self.assertEquals(question.user, self.joe)


        RESPONSE_POST = {
            'body': 'This is the response body friend!'
        }

        form = ResponseForm(self.joe, question, RESPONSE_POST)

        self.assertTrue(form.is_valid())

        response = form.save()

        self.assertEquals(response.status, 'inherit')
        self.assertEquals(response.name, None)
        self.assertEquals(response.email, None)
        self.assertEquals(response.body, 'This is the response body friend!')
        self.assertEquals(response.user, self.joe)
Exemple #3
0
    def test_question_form_display(self):
        self.assertEqual(None, QuestionForm(self.anon))

        self.assertNotEqual(None, QuestionForm(self.joe))

        self.assertNotEqual(None, ResponseForm(self.admin, self.question))