Пример #1
0
def answer_question(request, question):
    """Record answer to question, only tutors can answer question

    Then publish the event
    """
    if request.method == 'POST':
        form = AnswerQuestionForm(data=request.POST)
        message = {"success": True}
        if form.is_valid():
            question = form.save(question)
            channel = "classroom_{0}".format(question.classroom.pk)
            message = {
                "type": "answer_question",
                "question": {
                    "pk": question.pk,
                    "subject": question.subject,
                    "content": question.content,
                    "student": question.student.username,
                    "vote_count": question.vote_count(),
                    "answer": question.answer,
                }
            }
            publish(channel, message)
        else:
            message = {"error": form.errors}
            return HttpResponseBadRequest(message)
        return HttpResponse(json.dumps(message))
    return HttpResponseNotFound("Need to post")
Пример #2
0
def answer_question(request, question):
    """Record answer to question, only tutors can answer question

    Then publish the event
    """
    if request.method == 'POST':
        form = AnswerQuestionForm(data=request.POST)
        message = {"success": True}
        if form.is_valid():
            question = form.save(question)
            channel = "classroom_{0}".format(question.classroom.pk)
            message = {
                "type": "answer_question",
                "question": {
                    "pk": question.pk,
                    "subject": question.subject,
                    "content": question.content,
                    "student": question.student.username,
                    "vote_count": question.vote_count(),
                    "answer": question.answer,
                }
            }
            publish(channel, message)
        else:
            message = {"error": form.errors}
            return HttpResponseBadRequest(message)
        return HttpResponse(json.dumps(message))
    return HttpResponseNotFound("Need to post")
Пример #3
0
def question_answer(request, id):
    manager = QuestionManager.get_manager(request.user)
    if not manager:
        return HttpResponse(u'Вы не можете обрабатывать вопросы')

    question = get_object_or_404(Question, id=id)
    if question.is_ready():
        return HttpResponse(u'Ответ на вопрос уже дан.')
    if request.method == 'POST':
        form = AnswerQuestionForm(request.POST, instance=question)
        if form.is_valid():
            question = form.save(commit=False)
            if question.is_new():
                question.take_to_process(manager, commit=False)
            question.close_process()
            if question.email:
                domain = settings.SITE_DOMAIN
                from_mail = settings.DEFAULT_FROM_EMAIL
                send_mail(u"Спроси библиотекаря",
                    u'Ваш вопрос был обработан. Вы можете посмотреть ответ по адресу http://%s%s' %
                    (domain, urlresolvers.reverse('ask_librarian:frontend:detail', args=(question.id,))),
                    from_mail,
                    [question.email],
                    #                    fail_silently=True
                )
            return redirect('ask_librarian:administration:question_detail', id=id)
    else:
        form = AnswerQuestionForm(instance=question)

    return render(request, 'ask_librarian/administration/question_answer.html', {
        'question': question,
        'form': form
    })
Пример #4
0
def question_answer(request, id):
    manager = QuestionManager.get_manager(request.user)
    if not manager:
        return HttpResponse(u'Вы не можете обрабатывать вопросы')

    question = get_object_or_404(Question, id=id)
    if question.is_ready():
        return HttpResponse(u'Ответ на вопрос уже дан.')
    if request.method == 'POST':
        form = AnswerQuestionForm(request.POST, instance=question)
        if form.is_valid():
            question = form.save(commit=False)
            if question.is_new():
                question.take_to_process(manager, commit=False)
            question.close_process()
            return redirect('ask_librarian:administration:question_detail', id=id)
    else:
        form = AnswerQuestionForm(instance=question)

    return render(request, 'ask_librarian/administration/question_answer.html', {
        'question': question,
        'form': form
    })
Пример #5
0
def question_edit(request, id):
    question = get_object_or_404(Question, id=id)
    if (question.manager and not question.manager.user_id == request.user.id) and not request.user.is_superuser:
        return HttpResponse(u'Вы не можете обрабатывать вопросы')


    if request.method == 'POST':
        form = AnswerQuestionForm(request.POST, instance=question)
        if form.is_valid():
            form.save()
            return redirect('ask_librarian:administration:question_detail', id=id)
    else:
        form = AnswerQuestionForm(instance=question)

    return render(request, 'ask_librarian/administration/question_edit.html', {
        'question': question,
        'form': form
    })