Пример #1
0
def question_answers(request, question_id):
    question = Question.objects.question_by_id(question_id)
    answers = Answer.objects.answers_by_question(question)

    form = AddAnswerForm(request.POST or None)
    if request.method == "POST" and form.is_valid() and request.user.is_authenticated():
        new_answer = Answer(text=form.cleaned_data['text'])
        new_answer.question = question
        new_answer.author = request.user
        new_answer.save()

        question.answers_count += 1
        question.save()

        # Send email to question author
        subject = 'New answer for \"' + question.title + '\"'
        message = str(request.build_absolute_uri()) + '#' + str(new_answer.id)
        from_email = settings.EMAIL_HOST_USER
        to_email = str(question.author.email)
        send_mail(subject, message, from_email, [to_email], fail_silently=settings.DEBUG)

        return redirect(reverse('questions.views.question_answers',
                                kwargs={'question_id': question_id}) + '#' + str(new_answer.id))
    return render(request, 'question.html', {
        'popular_tags': cron_cache.get_popular_tags(),
        'best_members': cron_cache.get_best_members(),
        'question': question,
        'answers': answers,
        'form': form,
    })
Пример #2
0
def question(request, questionslug):
    question = get_object_or_404(Question, slug=questionslug)
    if not question.is_published:
        return Http404()
    
    
    if request.user.is_authenticated():
        person = request.user.get_profile()
    else:
        person = None
    
    answers = Answer.objects.filter(question=question)    
    
    if request.method == 'POST':
        form = AddAnswerForm(request.POST)
        if form.is_valid():
            person = request.user.get_profile()
            creation_args = {
                'answer': form.cleaned_data['answer'],
                'owner': person,
                'question': question,	
                'date_added': datetime.now(),
            }
            
            answer = Answer.objects.create(**creation_args)
            url = question.get_absolute_url()
            return HttpResponseRedirect(url)
    else:
        form = AddAnswerForm()
    
    
    #answers_list = []
    #for answer in Answer.objects.filter(question=question):
    #    if answer in (x.answer for x in vote_list):
    #        voted=True
    #    else:
    #        voted=False
    #    if answer.added_by == laowai:
    #        owner = True
    #    else: 
    #        owner = False
    #    answers_list.append(dict(answer=answer, voted=voted, owner=owner, vote_count=answer.vote_count))
    #answers = sorted(answers_list, reverse=True, key=lambda k: k['vote_count'])
    
    return render(request, "questions/question.html", locals())
Пример #3
0
def add_answer(request, questionslug):
    question = get_object_or_404(Question, slug=questionslug)
    if request.method == 'POST':
        form = AddAnswerForm(request.POST)
        if form.is_valid():
            person = request.user.get_profile()
            creation_args = {
                'answer': form.cleaned_data['answer'],
                'owner': person,
                'question': question,	
                'date_added': datetime.now(),
                'votes': 1,
            }
            
            answer = Answer.objects.create(**creation_args)
            url = question.get_absolute_url()
            return HttpResponseRedirect(url)
    else:
        form = AddAnswerForm()
    
    return render(request, "questions/forms/add_answer.html", locals())
Пример #4
0
def question_answers(request, question_id):
    question = Question.objects.question_by_id(question_id)
    answers = Answer.objects.answers_by_question(question)

    form = AddAnswerForm(request.POST or None)
    if request.method == "POST" and form.is_valid(
    ) and request.user.is_authenticated():
        new_answer = Answer(text=form.cleaned_data['text'])
        new_answer.question = question
        new_answer.author = request.user
        new_answer.save()

        question.answers_count += 1
        question.save()

        # Send email to question author
        subject = 'New answer for \"' + question.title + '\"'
        message = str(request.build_absolute_uri()) + '#' + str(new_answer.id)
        from_email = settings.EMAIL_HOST_USER
        to_email = str(question.author.email)
        send_mail(subject,
                  message,
                  from_email, [to_email],
                  fail_silently=settings.DEBUG)

        return redirect(
            reverse('questions.views.question_answers',
                    kwargs={'question_id': question_id}) + '#' +
            str(new_answer.id))
    return render(
        request, 'question.html', {
            'popular_tags': cron_cache.get_popular_tags(),
            'best_members': cron_cache.get_best_members(),
            'question': question,
            'answers': answers,
            'form': form,
        })