Example #1
0
File: views.py Project: kyuiva/2_6
def question_page(request, id):
    try:
        question = Question.objects.get(id=id)
    except Question.DoesNotExist:
        raise Http404
    user = 1
    if request.method == "POST":
        # form = AnswerForm(user, request.POST)
        form = AnswerForm(request.POST)
        if form.is_valid():
            url = "/question/" + str(id) + "/"
            form.save()
            # return HttpResponse("is valid!")
            # return HttpResponseRedirect("/")
            return HttpResponseRedirect(url)
        else:
            form.clean()
    else:
        # form = AnswerForm(request, initial={'question': str(id)})
        form = AnswerForm(initial={'question': str(id)})
    answer = Answer.objects.filter(question_id=id)

    return render(request, 'question_page.html', {
        'post': question,
        'answer': answer,
        'form': form,
    })
Example #2
0
def question_page(request, **kwargs):
    logger = logging.getLogger(__name__)
    logger.debug('question_page')

    num = int(kwargs.get('num'))
    question = get_object_or_404(Question, id=num)

    if request.method == 'POST':
        if request.user.is_authenticated:
            form = AnswerForm(request.POST)
            form._user = request.user
            if form.is_valid():
                answer = form.save()
                url = question.get_url()
                logger.debug('url: {}'.format(url))
                newform = AnswerForm(initial={'question': question.pk})
                return render(
                    request, 'question.html', {
                        'question': question,
                        'title': question.title,
                        'answers': Answer.objects.filter(question=question)[:],
                        'form': newform,
                    })
        else:
            return HttpResponseRedirect('/login/')
    else:
        form = AnswerForm(initial={'question': question.pk})
        return render(
            request, 'question.html', {
                'question': question,
                'title': question.title,
                'answers': Answer.objects.filter(question=question)[:],
                'form': form,
            })
Example #3
0
def question_details(request, id):
    if request.method == 'GET':
        question = get_object_or_404(Question, id=id)
        form = AnswerForm()
        url_answer = reverse(question_details, args=(id, ))
        try:
            answers = Answer.objects.filter(question_id__exact=id)
        except Answer.DoesNotExist:
            answers = None
        return render(
            request, 'qa/question_details.html', {
                'question': question,
                'answers': answers,
                'form': form,
                'url': url_answer,
                'user': request.user,
            })
    if request.method == 'POST' and request.user.is_authenticated():
        form = AnswerForm(request.POST)
        if form.is_valid():
            ans = Answer()
            ans.save_data(form, request.user.id, id)
            return HttpResponseRedirect(reverse(question_details, args=(id, )))
        else:
            return HttpResponse('OK')
    else:
        return HttpResponseRedirect(reverse(qa_login, ))
Example #4
0
def question_detail(request, question_id):
    """One question page. 
    This page displays the title, text of the question 
    and all the answers to this question.
    
    """
    question = get_object_or_404(Question, pk=question_id)
    answers = question.answer_set.all()
    form = AnswerForm(request.POST)

    if request.method == 'POST' and form.is_valid():
        form._user = request.user
        answers = form.save()
        url = question.get_url()
        return HttpResponseRedirect(url)
    else:
        form = AnswerForm(initial={'question': question_id})

    return render(
        request, 'question_detail.html', {
            'questions': question,
            'answers': answers,
            'user': request.user,
            'form': form,
        })
Example #5
0
def question(request, num):
    sessionid = request.COOKIES.get('sessionid', None)
    user = cook_auth(request)
    try:
        q = Question.objects.get(id=num)
    except Question.DoesNotExist:
        raise Http404

    if request.method == "POST":
        form = AnswerForm(request.POST)
        if form.is_valid():
            answer = form.save()
            if sessionid:
                session = Session.objects.get(key=sessionid)
                author = session.user
                answer.author = author
                answer.save()
            return HttpResponseRedirect(q.get_url())

    form = AnswerForm(initial={'question': q.id})
    answers = Answer.objects.filter(question=q)

    return render(request, 'question.html', {
        'question': q,
        'answers': answers,
        'form': form,
        'user': user,
    })
Example #6
0
def answer_add(request, question, answers):
    print(
        '\nОтрисовываю форму добавления ответа и связи с вопросом:\n request.POST = ',
        request.POST, ', type = ', type(request.POST), '\n requset.GET = ',
        request.GET, '\n request = ', request, '\n question = ', question,
        ', type = ', type(question), '\n question.get_url() = ',
        question.get_url(), '\n question.id = ', question.id, '\n answers = ',
        answers, '\n')
    if request.method == "POST":
        form = AnswerForm(request.POST, initial={'question': question.id})
        if form.is_valid():
            form.clean()
            answer = form.save()
            answer.author = request.user
            answer.save()
            url = question.get_url()
            print('\nОтвет добавлен, переадресовываю на URL: ', url,
                  '\nТекущий юзер: ', request.user)
            return HttpResponseRedirect(url)
    else:
        form = AnswerForm(initial={'question': question.id})
    return render(
        request, 'qa/question.html', {
            'question': question,
            'answers': answers,
            'form': form,
            'username': get_user(request).username,
        })
def display_concrete(request, req_id):
    # POST
    if request.method == "POST":
        if request.user.is_authenticated:
            form = AnswerForm(request.POST)
            if form.is_valid():
                answer = form.save()
                answer.author = request.user
                answer.save()
                url = answer.question.get_url()
                return HttpResponseRedirect(url)
        # is_authentificated == False
        return HttpResponseRedirect("/login/")
    # GET
    question = get_object_or_404(
        Question,
        id=req_id,
    )
    answers = Answer.objects.filter(question=question)
    form = AnswerForm(initial={'question': req_id})
    print(form)
    return render(request, 'con_ques.html', {
        'question': question,
        'answers': answers,
        'form': form,
    })
Example #8
0
def question(request, slug):
    try:
        pk = int(slug)
    except ValueError:
        raise Http404

    try:
        q = Question.objects.get(pk=pk)
    except ObjectDoesNotExist:
        raise Http404

    if request.method == 'POST':
        if request.user.is_authenticated is False:
            return HttpResponseForbidden()
        form = AnswerForm(request.POST)
        form._user = request.user
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/question/%s/' % pk)
    else:
        form = AnswerForm(initial={'question': pk})

    answers = Answer.objects.filter(question=q).all()
    return render(request,
                  'question_template.html',
                  {'q': q,
                   'form': form,
                   'answers': answers})
Example #9
0
def guestionOwn(request, id):
    num = int(id)
    try:
        question = Question.objects.get(id=num)
    except Question.DoesNotExist:
        raise Http404

    if request.method == "POST":
        form = AnswerForm(request.POST)
        if form.is_valid():
            _ = form.save()
            url = question.get_url()
            return HttpResponseRedirect(url)
    else:
        form = AnswerForm(initial={'question': num})
    # answers = Answer.objects.filter(question__id=num)

    return render(
        request, 'question.html', {
            'question': question,
            'title': question.title,
            'form': form,
            'user': request.user,
            'session': request.session,
        })
Example #10
0
File: views.py Project: daonb/okqa
    def get_context_data(self, **kwargs):
        user = self.request.user
        question = self.object
        context = super(QuestionDetail, self).get_context_data(**kwargs)
        context['max_length_a_content'] = MAX_LENGTH_A_CONTENT
        context['answers'] = question.answers.filter(is_deleted=False)
        context['entity'] = question.entity
        can_answer = question.can_answer(user)
        context['can_answer'] = can_answer
        if can_answer:
            try:
                user_answer = question.answers.get(author=user)
                context['my_answer_form'] = AnswerForm(instance=user_answer)
                context['my_answer_id'] = user_answer.id
            except question.answers.model.DoesNotExist:
                context['my_answer_form'] = AnswerForm()
        context['can_flag'] = True
        if 'answer' in self.request.GET:
            try:
                answer = Answer.objects.get(pk=self.request.GET['answer'])
                context['fb_message'] = answer.content
            except:
                pass

        supporters = [vote.user for vote in question.upvotes.all()]
        supporters = [question.author] + supporters
        if user in supporters and user != question.author:
            supporters = [user] + [u for u in supporters if u != user]
        context['supporters'] = supporters

        return context
Example #11
0
def question(request, q_id):

    q = get_object_or_404(Question, id=q_id)

    if request.method == 'POST':

        form = AnswerForm(request.POST)

        form.question = q.id

        if form.is_valid():

            form.save()

            return HttpResponseRedirect(q.get_url())

    else:

        form = AnswerForm(initial={'question': q.id})

    return render(request, 'qa/question.html', {
        'question': q,
        'answers': q.answer_set.all(),
        'answer': form
    })
Example #12
0
def answer_add(request, id):
    user = getUser(request)
    question = get_object_or_404(Question, id=id)
    if request.method == "POST":
        form = AnswerForm(request.POST)
        if form.is_valid() == True:
            answer = form.save(question, user['user'])
            url = '/question/%d/' % int(id)
            return HttpResponseRedirect(url)
        if form.is_valid() == False:
            return HttpResponse('200')
    else:
        try:
            answers = Answer.objects.filter(question=question)
            answers = answers.order_by('-added_at')
            answers = answers[0:]
        except Answer.DoesNotExist:
            answers = []
        form = AnswerForm(initial={'question': question.id})
        return render(
            request, 'one_question.html', {
                'id': id,
                'title': question.title,
                'text': question.text,
                'author': question.author,
                'answers': answers,
                'form': form,
                'username': user['user'].username,
                'is_user': user['is_user'],
            })
Example #13
0
def question(request, pk):
    def render_with_answers():
        try:
            answers = Answer.objects.filter(question_id=pk)
        except Answer.DoesNotExist:
            answers = None
        return render(request, 'question.html', {
            'question': question_page,
            'answers': answers,
            'form': form,
        })

    question_page = get_object_or_404(Question, id=pk)
    if request.method == 'POST':
        form = AnswerForm(request.POST)
        if form.is_valid():
            form._user = request.user
            form.save()
            url = question_page.get_absolute_url()
            return HttpResponseRedirect(url)
        else:
            form.cleaned_data['question'] = pk
            return render_with_answers()
    else:
        form = AnswerForm(initial={'question': pk})
        return render_with_answers()
Example #14
0
    def get_context_data(self, **kwargs):
        context = super(QuestionDetail, self).get_context_data(**kwargs)
        context['max_length_a_content'] = MAX_LENGTH_A_CONTENT
        context['answers'] = self.object.answers.all()
        context['entity'] = self.object.entity
        can_answer = self.object.can_answer(self.request.user)
        context['can_answer'] = can_answer
        if can_answer:
            try:
                user_answer = self.object.answers.get(author=self.request.user)
                context['my_answer_form'] = AnswerForm(instance=user_answer)
                context['my_answer_id'] = user_answer.id
            except self.object.answers.model.DoesNotExist:
                context['my_answer_form'] = AnswerForm()

        if self.request.user.is_authenticated() and \
                not self.request.user.upvotes.filter(question=self.object).exists():
            context['can_upvote'] = True
        else:
            context['can_upvote'] = False

        if 'answer' in self.request.GET:
            try:
                answer = Answer.objects.get(pk=self.request.GET['answer'])
                context['fb_message'] = answer.content
            except:
                pass
        return context
Example #15
0
def question(
    request,
    num,
):
    try:
        q = Question.objects.get(id=num)
    except Question.DoesNotExist:
        raise Http404
    if request.method == "POST":
        form = AnswerForm(request.POST)
        if form.is_valid():
            form._user = request.user
            _ = form.save()
            url = q.get_url()
            return HttpResponseRedirect(url)
    else:
        form = AnswerForm(initial={'question': q.id})

    return render(
        request, 'question.html', {
            'question': q,
            'form': form,
            'user': request.user,
            'session': request.session,
        })
Example #16
0
def D_question(request, q_id):
    try:
        question = Question.objects.get(pk=q_id)
    except Question.DoesNotExist:
        raise Http404
    answers = Question.objects.get_answers(question)[:]
    user = request.user
    if user.is_authenticated():
        if request.method == 'POST':
            form = AnswerForm(request.POST)
            form._user = request.user
            if form.is_valid():
                answer = form.save(question)
                url = answer.question.get_url()
                return HttpResponseRedirect(url)
        else:
            form = AnswerForm(initial={'question': q_id})
        return render(request, 'D_question.html', {
            'form': form,
            'question': question,
            'answers': answers,
        })
    else:
        return render(request, 'D_question_anon.html', {
            'question': question,
            'answers': answers,
        })
Example #17
0
def question(request, slug):
    question = get_object_or_404(Question, id=slug)
    try:
        answers = Answer.objects.all().filter(question_id=slug)
    except answers.DoesNotExist:
        print('answers were not found for question', slug)
        answers = None
    if request.method == "GET":
        author = get_user_by_session(request)
        form = AnswerForm()
        if author is not None:
            form.fields["author"].initial = author.username
            print('user', author, 'was extracted from session')
        return render(request, 'question_page.html', {
            'question': question,
            'answers': answers,
            'form': form
        })
    else:
        author = get_user_by_session(request)
        form = AnswerForm(request.POST)
        if author is not None:
            form.fields["author"].initial = author.username
            print('user', author, 'was extracted from session')
        if form.is_valid():
            form.save()
            print('answer was saved')
        else:
            print('answer form is invalid')
            print(form.errors)
        return render(request, 'question_page.html', {
            'question': question,
            'answers': answers,
            'form': form
        })
Example #18
0
def answer_add(request):
    if request.method == 'POST':
        form = AnswerForm(request.POST)
        if form.is_valid():
            answer = form.save()
            url = '/question/%d/' % answer.question_id
            return HttpResponseRedirect(url)
    else:
        form = AnswerForm()
    return render(request, 'answer_add.html', {"form": form})
Example #19
0
def answer(request):
    if request.method == 'POST':
        answform = AnswerForm(request.POST)
        if answform.is_valid():
            answeritem = answform.save()
            q = answeritem.question
            return HttpResponseRedirect('/question/' + str(q.id))
    else:
        answform = AnswerForm()
    return render(request, 'qa/answer.html', {'f': answform})
Example #20
0
def answer(request):
    if request.method == 'POST':
        form = AnswerForm(request.POST)
        if form.is_valid():
            answer = form.save()
            q_id = answer.question_id
            question = get_object_or_404(Question, pk=q_id)
            url = question.get_url()
            return HttpResponseRedirect(url)
    else:
        form = AnswerForm()
    return render(request, 'question_page.html', {'form': form})
Example #21
0
def question(request, id):
    if request.method == 'POST':
        form = AnswerForm(request.POST)
        if form.is_valid():
            answer = Answer(**form.cleaned_data)
            answer.save()
    question = get_object_or_404(Question, pk=id)
    form = AnswerForm()
    return render(request, 'qa/question.html', {
        'question': question,
        'form': form
    })
Example #22
0
def question(request, question_id):
    qq = get_object_or_404(Question, pk=question_id)
    if request.method == 'POST':
        form = AnswerForm(request.POST)
        form._user = request.user
        if form.is_valid():
            a = form.save()
            url = '/question/%d/' % a.question.id
            return HttpResponseRedirect(url)
    else:
        form = AnswerForm()
    return render(request, 'qa/question.html', {'q': qq, 'form': form})
Example #23
0
def vq123(request, dd):
    question = Question.objects.get(id=dd)
    if request.method == "POST":
        form = AnswerForm(request.POST)
        if form.is_valid():
            answer = form.save()
            url = answer.get_url()
            return HttpResponseRedirect(url)
    else:
        form = AnswerForm(initial={'question': question.id})
    return render(request, 'question.html', {
        'form': form,
    })
Example #24
0
def answer_add(request):
    if request.method == "POST":
        form = AnswerForm(request.POST)
        form._user = request.user

        if form.is_valid():
            answer = form.save()
            url = answer.get_url()
            return HttpResponseRedirect(url)

    else:
        form = AnswerForm()
    return render(request, 'qa/answer_add.html', {'form': form})
Example #25
0
def answer_add(request, question_id):
    question = Question.objects.get(id=question_id)
    if request.method == 'POST':
        form = AnswerForm(request.POST)
        form._user = request.user
        if form.is_valid():
            answer = form.save()
            url = question.get_url()
            return HttpResponseRedirect(url)
    else:
        form = AnswerForm()
    return render(request, 'question_details.html', {
        'form': form,
    })
Example #26
0
def question(request, id):
    if request.method == "GET":
        q = get_object_or_404(Question, id=id)
        answers = Answer.objects.filter(question=q)
        return render(request, 'question.html', {
            'q': q,
            'answers': answers,
            'form': AnswerForm(),
        })
    else:
        form = AnswerForm(request.POST)
        if form.is_valid():
            a = form.save()
            return HttpResponseRedirect(request.get_full_path())
Example #27
0
def answer(request):
    if request.method == "POST":
        form = AnswerForm(request.POST)
        form._user = request.user
        if form.is_valid():
            answer = form.save()
            url = answer.get_url()
            return HttpResponseRedirect(url)
        else:
            answer = form.save()
            url = answer.get_url()
            return HttpResponseRedirect(url)
    else:
        form = AnswerForm()
Example #28
0
def question(request, id):
    try:
        q = Question.objects.get(id=id)
    except Question.DoesNotExist:
        raise Http404
    if request.method == 'POST':
        form = AnswerForm(request.POST)
        if form.is_valid:
            q = form.save()
            url = q.get_url
            return HttpResponseRedirect(url)
    else:
        form = AnswerForm(initial={'question': q.id})
    return render(request, 'question.html', {'question': q, 'form': form})
Example #29
0
def answer(request, *args, **kwargs):
    if request.method == "POST":
        form = AnswerForm(request.POST)
        if form.is_valid():
            answer = form.save()
            url = answer.get_url()
            return HttpResponseRedirect(url)
    else:
        form = AnswerForm()
    context = {
        'form': form,
    }
    template = loader.get_template('qa/answer_form.html')
    return HttpResponse(template.render(context, request))
Example #30
0
def get_question(request, slug):
    question = get_object_or_404(Question, pk=slug)
    if request.method == 'POST':
        form = AnswerForm(request.POST)
        if form.is_valid():
            answer = form.save(author=request.user)
            url = answer.get_url()
            return HttpResponseRedirect(url)
    else:
        form = AnswerForm(initial={'question': question.id})
    return render(request, 'question.html', {
        'question': question,
        'form': form
    })