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)
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))