示例#1
0
def ask(request):
    if request.method == 'POST':
        form = QuestionForm(request.user.profile, data=request.POST)
        if form.is_valid():
            q = form.save()
            return redirect(reverse('question', kwargs={'qid': q.id}))
    return render(request, 'ask.html', tags_and_users)
示例#2
0
文件: views.py 项目: Dimkashow/TP-WEB
def ask(request):
    if request.method == "GET":
        form = QuestionForm()
    else:
        form = QuestionForm(data=request.POST)
        if form.is_valid():
            tags = form.cleaned_data["tag"].split(" ")
            text = form.cleaned_data["text"]
            title = form.cleaned_data["title"]
            question = Question.objects.create(author=request.user,
                                               text=text,
                                               title=title)
            tags_list = list()
            for tag_name in tags:
                try:
                    tag = Tag.objects.get(name=tag_name)
                except Tag.DoesNotExist:
                    tag = Tag.objects.create(name=tag_name)
                tags_list.append(tag)
            question.tags.set(tags_list)
            question.save()
            return redirect(reverse("question", kwargs={"qid": question.pk}))

    return render(request, "ask.html", {
        "form": form,
    })
示例#3
0
def question_new(request):
    message = ""
    if request.method == "POST":
        form = QuestionForm(request.POST)

        minNumChoices = 2
        maxNumChoices = 4
        validNumChoices = int(
            request.POST["num_choices"]) >= minNumChoices and int(
                request.POST["num_choices"]) <= maxNumChoices
        validCorrectChoice = int(request.POST["correct_choice"]) >= 1 and int(
            request.POST["correct_choice"]) <= int(request.POST["num_choices"])

        if not validNumChoices:
            message = "El número de respuestas debe ser entre " + str(
                minNumChoices) + " y " + str(maxNumChoices)
        elif not validCorrectChoice:
            message = "El número de la respuesta correcta debe estar entre 1 y " + request.POST[
                "num_choices"]
        elif form.is_valid():
            question = form.save(commit=False)
            question.pub_date = datetime.now()
            question.save()
            message = "Pregunta añadida!"
            #return redirect('detail', pk=question_id)
            #return render(request, 'polls/index.html', {'title':'Respuestas posibles','question': question})
    else:
        form = QuestionForm()

    return render(request, 'polls/question_new.html', {
        'form': form,
        'message': message
    })
示例#4
0
文件: views.py 项目: ayata777/sample
def apply(request):
    if request.method == "POST":
        form = QuestionForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return redirect('app:index')
    else:
        form = QuestionForm()
        return render(request, 'app/apply.html', {'form': form})
示例#5
0
def question_new(request):
        if request.method == "POST":
            form = QuestionForm(request.POST)
            if form.is_valid():
                question = form.save(commit=False)
                question.pub_date=datetime.now()
                question.save()
        else:
            form = QuestionForm()
        return render(request, 'polls/question_new.html', {'form': form})
示例#6
0
文件: views.py 项目: HADSG14/HADSG14
def question_new(request):
    if request.method == "POST":
        form = QuestionForm(request.POST)
        if form.is_valid():
            question = form.save(commit=False)
            question.pub_date = datetime.now()
            question.save()
            #return redirect('detail', pk=question_id)
            #return render(request, 'polls/index.html', {'title':'Respuestas posibles','question': question})
    else:
        form = QuestionForm()
    return render(request, 'polls/question_new.html', {'form': form})
def home(request):
    if request.method == 'POST':
        form = QuestionForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect(home)
    else:
        form = QuestionForm()
    questions = Question.objects.all()
    return render(request, 'home.html', {
        'questions': questions,
        'form': form,
    })
示例#8
0
def new_question(request):
    if request.method == 'POST':
        form = QuestionForm(data=request.POST, profile=request.user.profile)
        if form.is_valid():
            question = form.save()
            return redirect(reverse('question', kwargs={'id': question.id}))

    else:
        form = QuestionForm(None)

    return render(request, 'new_question_page.html', {
        'title': 'New question',
        'form': form
    })
示例#9
0
def question_new(request):
        if request.method == "POST":
            form = QuestionForm(request.POST)
            if form.is_valid():
                question = form.save(commit=False)
                question.pub_date=datetime.now()
                question.save()
                #return redirect('detail', pk=question_id)
                #return render(request, 'polls/index.html', {'title':'Respuestas posibles','question': question})
        else:
            form = QuestionForm()
        return render(request, 'polls/question_new.html', {
                                                            'form': form,
                                                            'title' : 'Pagina para añadir un apregunta',
                                                            'message' : 'Pregunta lo que sea.',
                                                            'year' : datetime.now().year})
示例#10
0
def ask(request):
    tags = Tag.objects.get_popular()
    if request.method == "GET":
        form = QuestionForm()
    else:
        form = QuestionForm(data=request.POST)
        if form.is_valid():
            question = Question.objects.create(
                author=request.user.profile,
                title=form.cleaned_data['title'],
                text=form.cleaned_data["text"])
            return redirect(reverse('question', kwargs={'qid': question.pk}))

    return render(request, 'ask.html', {
        'form': form,
        'user': request.user,
        'tags': tags,
    })
示例#11
0
def question_view(request):
    """
    Shows a next question to the user and manages the answers.
    Checks for an ongoing exam and picks a question from the list.
    Answers are checked and user's score is adjusted accordingly.
    
    name: exam:question
    URL: /exam/question/
    """
    exam_id = request.session.get('exam_id')
    if exam_id is None:
        return redirect('exam:list')
    exam = Exam.objects.get(id=exam_id)
    question_id = (
        request.session['questions'][request.session['current_question']])
    question = Question.objects.get(id=question_id)
    answers = question.answers.all()
    form = QuestionForm(request.POST or None,
                        question_type=question.type,
                        answer_choices=[(ans.id, ans.text) for ans in answers])
    if form.is_valid():
        score_change = AnswerScore.get_rating_change(
            question=question,
            answer_choices=answers,
            answer=form.cleaned_data['answer'],
            user_rating=request.user.userx.rating)
        request.user.userx.rating += score_change
        question.rating -= score_change
        request.user.userx.save()
        question.save()
        request.session['current_question'] += 1
        if request.session['current_question'] >= exam.num_questions:
            return redirect('exam:finished')
        else:
            return redirect('exam:question')
    return render(
        request, 'exam/question.html', {
            'exam_name': exam.name,
            'question': question,
            'form': form,
            'question_no': request.session['current_question'],
            'num_questions': exam.num_questions
        })
示例#12
0
def add_question(request):
    best_members = UserProfile.objects.best_members()
    popular_tags = Tag.objects.popular_tags()

    if request.method == 'GET':
        form = QuestionForm()
    else:
        form = QuestionForm(data=request.POST)
        if form.is_valid():
            question = Question.objects.create(
                author=request.user.userprofile,
                title=form.cleaned_data['title'],
                text=form.cleaned_data['text'])
            tags = form.cleaned_data['tags']
            question.tags.set(tags)
            question.save()
            return redirect(
                reverse('one_question', kwargs={'num_quest': question.pk}))

    return render(request, 'add_question.html', {
        'form': form,
        'popular_tags': popular_tags,
        'best_members': best_members
    })