Пример #1
0
    def post(self, request):
        form = QuestionForm(request.POST, request.FILES)
        if form.is_valid():
            # Actions
            this = form.save()

            # Add sentences
            _add_sentences(this)
            
            # Views
            if request.POST['html'] == 'false':
                return HttpResponse(str(this.pk))
            else:
                return redirect(request.POST['next'])
        else:
            # Do nothing
            
            # Views
            if request.POST['html'] == 'false':
                return HttpResponse('-1')
            else:
                data = {'title': 'Failed',
                        'message': 'Question upload failed.',
                        'link': reverse('questions-upload'),
                        'linkdes': 'Go back and upload the question again.'}
                return render(request, 'result.html', data)
Пример #2
0
def question_create(request):
    if request.method == 'GET':
        form = QuestionForm()
        return render(request, 'questions/question_create.html', {'form': form})
    elif request.method == 'POST':
        form = QuestionForm(request.POST)
        if form.is_valid():
            name = form.cleaned_data['name']
            text = form.cleaned_data['text']
            tags = form.cleaned_data['tags']
            author = request.user
            question = Question(name=name, text=text, author=author)
            question.save()
            splited_tags = tags.split(u'@@', -1)
            for tag_name in splited_tags:
                is_tag_new = True
                for tag in Tag.objects.all():
                    if tag.name == tag_name:
                        question.tags.add(tag)
                        is_tag_new = False
                        break
                if is_tag_new:
                    question.tags.add(make_new_tag(tag_name))
                question.save()
            return redirect('question_detail', id=question.id)
        else:
            return render(request, 'questions/question_create.html', {'form': form})
Пример #3
0
def edit_question(request, question_id):
    existing_question = get_object_or_404(Question,
                                          pk=question_id,
                                          can_delete=True)

    if not request.user == existing_question.user and \
       not request.user.has_perm('questions.change_question'):
        raise PermissionDenied

    if request.method == 'POST':
        if request.user == existing_question.user:
            modified_question = DisabledQuestionForm(
                request.POST, instance=existing_question)
        else:
            modified_question = QuestionForm(request.POST,
                                             instance=existing_question)
        modified_question.save()
        return HttpResponseRedirect(
            reverse('questions:show', args=(question_id, )))
    else:
        existing_question = get_object_or_404(Question, pk=question_id)
        if request.user == existing_question.user:
            form = DisabledQuestionForm(instance=existing_question)
        else:
            form = QuestionForm(instance=existing_question)
        context = {'form': form, 'question_id': question_id}
        return render(request, 'questions/edit.html', context)
Пример #4
0
def edit_question(request, course_id, question_id):
    question = Question.objects.get(id=question_id)
    if request.user.username == question.owner:
        ChoiceFormSet = modelformset_factory(Choice, ChoiceForm, extra=0)
        course = Course.objects.get(id=course_id)
        choices = Choice.objects.filter(question=question)
        question_form = QuestionForm(instance=question)
        choice_formset = ChoiceFormSet(queryset=Choice.objects
            .filter(question=question))
        if request.method == 'POST' and 'update' in request.POST:
            question_form = QuestionForm(instance=question, data=request.POST)
            choice_formset = ChoiceFormSet(data=request.POST)
            if question_form.is_valid() and choice_formset.is_valid():
                Choice.objects.filter(question=question).delete()
                update(question_form, question, choice_formset)
                messages.success(request, 'Question updated successfully!')
                return redirect('/courses/' + course_id + '/questions/')
        if request.method == 'POST' and 'delete' in request.POST:
            question.delete()
            Choice.objects.filter(question=question).delete()
            messages.success(request, 'Question deleted successfully!')
            return redirect('/courses/' + course_id + '/questions/')
        return render(request, 'edit_question.html', {'form': question_form,
            'choice_formset': choice_formset,'course': course,
            'question': question, 'choices': choices })
    return redirect('/courses/' + course_id)
Пример #5
0
def show_question(request, pk_meeting, pk_quiz):

    question_form = QuestionForm(request.POST or None)
    meeting = get_object_or_404(Meeting, pk=pk_meeting)
    quiz = get_object_or_404(Quiz, pk=pk_quiz)
    list_questions = quiz.question_questionnaires.all()

    if question_form.is_valid():

        question = question_form.save(commit=False)
        question.question = question_form.cleaned_data.get('question')
        question.answer = ''
        question.save()
        quiz.question_questionnaires.add(question)

        messages.success(request, 'Pergunta Adicionada Com Sucesso!')
        return redirect('/ver_questionario/' + str(meeting.id) + '/' +
                        str(quiz.id))

    quiz_form = QuestionForm()

    return render(
        request, 'questions/show_quiz.html', {
            'form': quiz_form,
            'meeting': meeting,
            'list_questions': list_questions,
            'quiz': quiz
        })
Пример #6
0
def edit_question(request, course_id, question_id):
    course = Course.objects.get(id=course_id)
    question = Question.objects.get(id=question_id)
    if request.user == course.owner:
        ChoiceFormSet = modelformset_factory(Choice, ChoiceForm, extra=0)
        choices = Choice.objects.filter(question=question)
        question_form = QuestionForm(instance=question)
        choice_formset = ChoiceFormSet(queryset=Choice.objects.filter(
            question=question))
        if request.method == 'POST' and 'update' in request.POST:
            question_form = QuestionForm(instance=question, data=request.POST)
            choice_formset = ChoiceFormSet(data=request.POST)
            if question_form.is_valid() and choice_formset.is_valid():
                Choice.objects.filter(question=question).delete()
                update(question_form, question, choice_formset)
                messages.success(request, 'Question updated successfully!')
                return redirect('/courses/' + course_id + '/questions/')
        if request.method == 'POST' and 'delete' in request.POST:
            question.delete()
            Choice.objects.filter(question=question).delete()
            messages.success(request, 'Question deleted successfully!')
            return redirect('/courses/' + course_id + '/questions/')
        return render(
            request, 'edit_question.html', {
                'form': question_form,
                'choice_formset': choice_formset,
                'course': course,
                'question': question,
                'choices': choices
            })
    return redirect('/courses/' + course_id)
Пример #7
0
async def question_create(request):
    """
    Question form
    """
    u = User
    c = Category
    session_user = (
        await u.select(u.id, u.username)
        .where(u.username == request.user.username)
        .first()
        .run()
    )
    data = await request.form()
    form = QuestionForm(data)
    form.category.choices = [
        (item["id"], item["name"]) for item in await c.select().run()
    ]
    title = form.title.data
    if request.method == "POST" and form.validate():
        query = Question(
            title=title,
            slug="-".join(title.lower().split()),
            description=form.description.data,
            created_at=datetime.datetime.now(),
            category=form.category.data,
            user=session_user["id"],
        )
        await query.save().run()
        return RedirectResponse(url="/questions", status_code=302)
    return templates.TemplateResponse(
        "questions/question_create.html", {"request": request, "form": form}
    )
Пример #8
0
 def test_if_not_valid_on_empty_question_text(self):
     form_data = {
         'name': 'Example name',
         'category': 'Examples',
         'question_text': ''
     }
     form = QuestionForm(data=form_data)
     self.assertFalse(form.is_valid())
Пример #9
0
 def test_valid_question_form(self):
     data = {
         'name': 'Example name',
         'category': 'Examples',
         'question_text': 'Example text'
     }
     form = QuestionForm(data=data)
     self.assertTrue(form.is_valid())
Пример #10
0
 def test_question_creation_on_POST(self):
     course = Course.objects.create(name="Example name")
     data = {"name": "Example name", "category": "Examples", "question_text": "Example text"}
     form = QuestionForm(data=data)
     question = form.save(commit=False)
     question.course = course
     question.save()
     self.assertEqual(Question.objects.count(), 1)
Пример #11
0
 def test_if_valid_on_all_required_fields(self):
     form_data = {
         'name': 'Example name',
         'category': 'Examples',
         'question_text': 'Example question text'
     }
     form = QuestionForm(data=form_data)
     self.assertTrue(form.is_valid())
Пример #12
0
def edit_question(request, reviewprogram_id, mocktest_id, mocktestsection_id,
                  mocktestsubsection_id, question_id):
    reviewprogram = ReviewProgram.objects.get(id=reviewprogram_id)
    reviewprogram = ReviewProgram.objects.get(id=reviewprogram_id)
    mocktest = MockTest.objects.get(id=mocktest_id)
    mocktestsection = MockTestSection.objects.get(id=mocktestsection_id)
    mocktestsubsection = MockTestSubSection.objects.get(
        id=mocktestsubsection_id)

    question = Question.objects.get(id=question_id)
    mocktestsentence = MockTestSentence.objects.filter(
        id=question.mocktestsentence_id)

    if request.user == reviewprogram.instructor:
        ChoiceFormSet = modelformset_factory(Choice, ChoiceForm, extra=0)
        choices = Choice.objects.filter(question=question)
        question_form = QuestionForm(instance=question)

        question_form.fields[
            'mocktestsentence'].queryset = MockTestSentence.objects.filter(
                mocktestsubsection_id=mocktestsubsection)
        choice_formset = ChoiceFormSet(queryset=Choice.objects.filter(
            question=question))
        if request.method == 'POST' and 'update' in request.POST:
            question_form = QuestionForm(instance=question,
                                         data=request.POST,
                                         files=request.FILES)
            choice_formset = ChoiceFormSet(data=request.POST,
                                           files=request.FILES)
            if question_form.is_valid() and choice_formset.is_valid():
                Choice.objects.filter(question=question).delete()
                update(question_form, question, choice_formset)
                messages.success(request, 'Question updated successfully!')
                return redirect('/manage/' + reviewprogram_id + '/mocktests/' +
                                mocktest_id + '/sections/' +
                                mocktestsection_id + '/subsections/' +
                                mocktestsubsection_id + '/questions')
        if request.method == 'POST' and 'delete' in request.POST:
            question.delete()
            Choice.objects.filter(question=question).delete()
            messages.success(request, 'Question deleted successfully!')
            return redirect('/manage/' + reviewprogram_id + '/mocktests/' +
                            mocktest_id + '/sections/' + mocktestsection_id +
                            '/subsections/' + mocktestsubsection_id +
                            '/questions')
        return render(
            request, 'edit_question.html', {
                'form': question_form,
                'mocktest_sentences': mocktestsentence,
                'choice_formset': choice_formset,
                'question': question,
                'choices': choices,
                'reviewprogram': reviewprogram,
                'mocktest': mocktest,
                'mocktestsection': mocktestsection,
                'mocktestsubsection': mocktestsubsection
            })
    return redirect('/manage/' + reviewprogram_id)
Пример #13
0
 def post(self, request):
     form = QuestionForm(self.request.POST, instance=self.question)
     if form.is_valid():
         self.question = form.save(commit=False)
         self.question.author = self.request.user
         self.question.save()
         return redirect('questions:question_detail', question_id=self.question.id)
     else:
         return render(request, 'questions/add_question.html', self.get_context(form))
Пример #14
0
def create(request):
    if request.method == 'POST':
        form = QuestionForm(request.POST)
        if form.is_valid():
            text = form.cleaned_data['text']
            Question.objects.create(text=text, created=timezone.now())
            return HttpResponseRedirect(reverse('questions:list'))
    else:
        form = QuestionForm
    return render(request, 'questions/create.html', {'form': form})
Пример #15
0
 def post(self, request, question_id):
     question = get_object_or_404(Question, id=question_id, author=self.request.user)
     form = QuestionForm(request.POST, instance=question)
     if form.is_valid():
         question = form.save()
         if question.is_archive == 0:
             return redirect('questions:question_detail', question_id=question.id)
         else:
             return redirect('questions:question_list')
     else:
         return render(request, 'questions/question_edit.html', self.get_context(form))
Пример #16
0
 def test_question_updating(self):
     course = Course.objects.create(name="Example name")
     question = Question.objects.create(
         name="Example question", category="Examples", question_text="Text", course=course
     )
     data = {"name": "Example name", "category": "Examples", "question_text": "Changed text"}
     form = QuestionForm(instance=question, data=data)
     self.assertTrue(form.is_valid())
     question = form.save(commit=False)
     question.course = course
     question.save()
     self.assertEqual(question.question_text, "Changed text")
Пример #17
0
def add_q(request):
    if request.method == "POST":
        form = QuestionForm(request.POST)
        if form.is_valid():
            q = form.save(commit=False)
            q.adder = request.user
            q.save()
            return redirect_to_next(request, "my_questions")
    else:
        form = QuestionForm()
    return render_to_response("questions/add_q.html", {"form":form}, 
        context_instance=RequestContext(request))
Пример #18
0
def ask_question(request):
    form = QuestionForm(request.POST or None)
    if form.is_valid():
        question = form.save(commit=False)
        question.user = request.user
        question.save()
        # messages.success(request, 'Question was Posted.')
        # return redirect(question.get_absolute_url())
        return redirect("/")
    context = {"form": form,
               "title": "Ask Question"
               }
    return render(request, "questions/ask.html", context)
Пример #19
0
 def add_tag_to_question(request):
     questionform = QuestionForm(request.POST)
     if questionform.is_valid():
         question = questionform.save(commit=False)
         question.user_id = request.user.id
         question.save()
     tagform = SelectTagForm(request.POST)
     if tagform.is_valid():
         tags = tagform.cleaned_data.get('Tags')
         for tag_instance in tags:
             tag = get_object_or_404(Tag, pk=int(tag_instance))
             tag.question.add(question)
             tag.save()
Пример #20
0
def handle_question_submission(request):
    form = QuestionForm(request.POST)
    if check_candidate(request):
        return redirect('questions:index')
    if Question.objects.filter(author__id=request.user.id).exclude(
            status='rejected').exists():
        return redirect('questions:index')
    if not form.is_valid():
        return show_questions(request, form)
    question = form.save(commit=False)
    question.author = request.user
    question.save()
    return redirect('questions:index')
Пример #21
0
 def post(self, request):
     form = QuestionForm(request.POST)
     if form.is_valid():
         current_id = form.save(request.user)
         return HttpResponseRedirect('/question/' + str(current_id))
     else:
         response = TemplateResponse(
             request, 'ask.html', {
                 'title': 'amtrs - make a question',
                 'onpage_title': 'ask',
                 'form': form,
             })
         return response
Пример #22
0
 def test_question_creation_on_POST(self):
     user = User.objects.create(username='******')
     course = Course.objects.create(name='Example name', owner=user)
     data = {
         'name': 'Example name',
         'category': 'Examples',
         'question_text': 'Example text'
     }
     form = QuestionForm(data=data)
     question = form.save(commit=False)
     question.course = course
     question.save()
     self.assertEqual(Question.objects.count(), 1)
Пример #23
0
 def post(self, request):
     form = QuestionForm(request.POST)
     if form.is_valid():
         question = Question(
             title=form.cleaned_data["title"],
             text=form.cleaned_data["text"],
             topic=form.cleaned_data["topic"],
             author=request.user,
         )
         question.save()
         return redirect("question", question.id)
     context = {
         'question_form': form,
     }
     return render(request, 'questions/new_question.html', context)
Пример #24
0
def save_question(request, qid):
    question = Question.objects.get(id=qid)
    question.updated = datetime.now()
    question_form = QuestionForm(request.REQUEST,
                                 files=request.FILES,
                                 instance=question)
    if question_form.is_valid():
        question_form.save()

    #answers = AnswerFormSet(data=request.REQUEST, files=request.FILES)
    #for form in answers:
    #    if form.is_valid():
    #        form.save()

    return redirect(list_questions, question_form.instance.question_set.id)
Пример #25
0
Файл: views.py Проект: Pavit/qna
def submit(request):
    class BaseAnswerFormSet(BaseFormSet):
        def clean(self):
            blanks = []
            print "clean called"
            for i in range(0, self.total_form_count()):
                form = self.forms[i]
                try:
                    answer = form.cleaned_data['answer']
                    print "answer: %s" %answer
                except:
                    blanks.append(form)
                    print "found %s blanks" %len(blanks)
            if len(blanks) >= 4:
                raise forms.ValidationError("Must have at least two answer choices")


    AnswerFormSet = formset_factory(AnswerForm, max_num=5, extra = 5, formset = BaseAnswerFormSet)
    user = request.user.userprofile
    if request.method == 'POST': # If the form has been submitted...
        question_form = QuestionForm(request.POST) # A form bound to the POST data
        # Create a formset from the submitted data
        answer_formset = AnswerFormSet(request.POST, request.FILES)
        print "answer formset %s" %answer_formset
        print "non form errors %s" %answer_formset.non_form_errors()
        print "form errors %s" %answer_formset.errors
        if question_form.is_valid() and not any(answer_formset.non_form_errors()):
            question = question_form.save(commit=False)
            question.submitter = user
            question.save()
            for form in answer_formset.forms:
                try:
                    form.cleaned_data["answer"]
                    answer = form.save(commit=False)
                    answer.question = question
                    answer.save()
                    user.save()
                except:
                    pass
            return redirect('profile')
    else:
        question_form = QuestionForm()
        answer_formset = AnswerFormSet()
    c = {'question_form': question_form,
    'answer_formset': answer_formset,
    }
    c.update(csrf(request))
    return render_to_response('submit.html', c, context_instance = RequestContext(request))
Пример #26
0
def article(request, article_id):
    article = Article.objects.get(id=article_id)
    sameArticles = Article.objects.filter(Category__id=article.Category.id)[:6]
    files = File.objects.filter(Article__id=article_id)
    form = QuestionForm()

    return render(request, 'article.html', locals())
Пример #27
0
def add_question(request, pk):
    context = RequestContext(request)
    registered = False
    if request.method == 'POST':
        question_form = QuestionForm(data=request.POST, initial={'user': request.user, 'company': pk})
        if question_form.is_valid():
            question_form.instance.user = request.user
            question_form.instance.company = Company.objects.get(id=pk)
            question_form.save()
            registered = True
        else:
            print question_form.errors
    else:
        question_form = QuestionForm()
    return render(request, 'question/new.html', {
            'question_form': question_form, 'registered': registered})
Пример #28
0
def new_question(request):
    if request.user.is_authenticated():
        form = QuestionForm()
        context = {'form': form}
        return render(request, 'questions/new.html', context)
    else:
        return redirect('accounts:sign_in')
Пример #29
0
def question_create_view(request):
    """
    Show from for sending in a question
    """
    if request.method == 'POST':
        form = QuestionForm(request.POST, request.FILES, user=request.user)
        if form.is_valid():
            form.save()
            question_title = form.cleaned_data['title']
            question = get_object_or_404(Question, title=question_title, author=request.user)
            return render(request, 'questions/question-create.html',
                {'form': None, 'question': question})
    else:
        form = QuestionForm()
    return render(request, 'questions/question-create.html',
        {'form': form})
Пример #30
0
 def get(self, request, *args, **kwargs):
     question_form = QuestionForm(self.request.GET or None)
     select_tag_form = SelectTagForm(self.request.GET or None)
     context = self.get_context_data(**kwargs)
     context['question_form'] = question_form
     context['select_tag_form'] = select_tag_form
     return self.render_to_response(context)
Пример #31
0
def index(request):
    joke=Joke.objects.filter(published=True).filter(adult=False).order_by('?').first()
    question_form=QuestionForm()
    formulae_form=FormulaeForm()
    formulae=Formulae.objects.filter(published=True).order_by('?').first()
    video=Url.objects.filter(url__contains="youtube").filter(url__contains="watch").order_by("?").first()
    try:
        intro = FlatPage.objects.get(url='/intro/')
    except:
        intro = False

    try:
        meta = ModelMeta.objects.get(slug='/intro/')
    except:
        meta = False

    context = {
    'meta':meta,
    'intro':intro,
    'video':video,
    'formulae': formulae,
    'question_form':question_form,
    'formulae_form':formulae_form,
    'joke':joke,
    }
    return render (request, 'index.html', context)
Пример #32
0
 def get(self, request, slug):
     question = Question.objects.get(pk=slug)
     question_form = QuestionForm(prefix=slug, instance=question)
     choice_forms = [ChoiceLimitedForm(prefix=choice.pk, instance=choice)
                     for choice in Choice.objects.filter(question=question)]
     data = {'title': 'Update a question', 'question_form': question_form, 'choice_forms': choice_forms,
             'next': request.META['HTTP_REFERER']}
     return render(request, 'questions/question_update_form.html', data)
Пример #33
0
def contact(request):
    articles = Article.objects.order_by('-Pub_date')[:9]
    personalContacts = Contact.objects.filter(Category__id=1)
    schoolContacts = Contact.objects.filter(Category__id=2)
    school = Text.objects.get(id=4)
    form = QuestionForm()

    return render(request, 'contact.html', locals())
Пример #34
0
def development(request, development_id):
    development = Development.objects.get(id=development_id)
    sameDevelopments = Development.objects.filter(
        Category__id=development.Category.id)[:9]
    files = File.objects.filter(Development__id=development_id)
    form = QuestionForm()

    return render(request, 'development.html', locals())
Пример #35
0
def ask(request):
    if request.method == 'POST':
        form = QuestionForm(request.POST)
        if form.is_valid():
           question = Question()
           question.user = request.user
           question.title = form.cleaned_data.get('title')
           question.description = form.cleaned_data.get('description')
           question.save()
           tags = form.cleaned_data.get('tags')
           question.create_tags(tags)
           return redirect('/questions/')
        else:
            return render(request, 'questions/ask.html', {'form': form})
    else:
        form = QuestionForm()
    return render(request, 'questions/ask.html', {'form': form})
Пример #36
0
def ask(request):
    if request.method == 'POST':
        form = QuestionForm(request.POST)
        if form.is_valid():
           question = Question()
           question.user = request.user
           question.title = form.cleaned_data.get('title')
           question.description = form.cleaned_data.get('description')
           question.save()
           tags = form.cleaned_data.get('tags')
           question.create_tags(tags)
           return redirect('/questions/')
        else:
            return render(request, 'questions/ask.html', {'form': form})        
    else:
        form = QuestionForm()
    return render(request, 'questions/ask.html', {'form': form})
Пример #37
0
def show_category(request, category_id):
    if request.method == 'GET':
        all_categories = get_all_categories()
        context_data = get_question_by_category(
            Category.objects.get(id=category_id))
        context_data['categories'] = all_categories
        context_data['showing_id'] = int(category_id)
        return render(request, 'categories_index.html', context_data)
    elif request.POST.get('add') != None:
        return HttpResponseRedirect('/questions/add_category')
    elif request.POST.get(u'action') == u'ویرایش':
        request.session['question_before_edit_id'] = Question.objects.filter(
            question=request.POST.get('question'))[0].question
        options = Option.objects.filter(question=Question.objects.filter(
            question=request.POST.get('question'))[0])
        short_options = []
        for option in options:
            short_options.append({
                'text': option.text,
                'is_correct': option.is_correct
            })

        request.session['options_for_question_before_edit'] = short_options
        request.session.save()
        form = QuestionForm()
        context_data = {
            'question':
            Question.objects.filter(question=request.POST.get('question'))[0],
            "options":
            options,
            'showing_id':
            int(category_id),
            "category":
            Category.objects.get(id=category_id),
            'form':
            form,
            "done":
            False
        }
        return render(request, 'edit_question.html', context_data)
    elif request.POST.get(u'action') == u'حذف':
        question = Question.objects.filter(
            question=request.POST.get('question'))[0]
        options = Option.objects.filter(question=question)
        for option in options:
            option.delete()

        question.delete()
        context_data = {
            'categories': get_all_categories(),
            'showing_id': int(category_id)
        }
        return render(request, 'categories_index.html', context_data)
    else:
        context_data = get_question_by_category(
            get_category_by_name(name=request.POST.get('cat_name')))
        context_data['cat_name'] = request.POST.get('cat_name')
        return render(request, 'questions_index.html', context_data)
Пример #38
0
def register_question(request):
    form = QuestionForm()
    if request.method == "POST":
        username = None
        form = QuestionForm(request.POST)
        if request.user.is_authenticated():
            username = request.user.username
            if form.is_valid():
                title = form.cleaned_data['title']
                body = form.cleaned_data['body']
                tags = form.cleaned_data['tags'].split(",")

                user = User.objects.get(username=username)

                quest = Question.objects.create(title=title, body=body, user=user)

                #add tags one by one
                for tag in tags:
                    quest.tags.add(tag)


                # when you submit one question, you are redirected back to the main page
                return redirect('/questions')

            else:
                form = QuestionForm()

    return render(request, 'question_submission.html',{'form': form,})
Пример #39
0
    def post(self, request, slug):
        question = Question.objects.get(pk=slug)
        question_form = QuestionForm(request.POST, prefix=slug, instance=question)
        choice_forms = [ChoiceLimitedForm(request.POST, prefix=choice.pk, instance=choice)
                        for choice in Choice.objects.filter(question=question)]
        if question_form.is_valid() and all(form.is_valid() for form in choice_forms):
            question_form.save()
            for form in choice_forms: form.save()

            reset_question(question)
            return redirect(request.POST['next'])
        else:
            kwargs = {'slug': slug}
            data = {'title': 'Failure',
                    'message': 'Question update failed.',
                    'link': reverse('questions-update', kwargs=kwargs),
                    'linkdes': 'Go back to update page.',}
            return render(request, 'result.html', data)
Пример #40
0
def ask(request):
    """
    Ask POST-only handler
    """
    data = {'questionform': None}

    # check if POST
    if request.method != 'POST':
        return HttpResponseForbidden()

    # вытаскиваем теги из поля
    tag_list = request.POST.get('tags', '').split(',')

    if '' in tag_list:
        tag_list.remove('')

    form = QuestionForm(request.POST)
    data['questionform'] = form
    data['form_tags'] = tag_list

    if form.is_valid():
        user = request.user
        question_user = QuestionsUser.objects.filter(user=user)

        # check if questionsUser exists
        if len(question_user) == 0:
            return HttpResponseForbidden()

        # create new question
        title = form.cleaned_data['title']
        content = form.cleaned_data['content']

        q = Question(author=question_user[0], title=title, content=content)

        q.save()

        # adding tags after save to have id
        q.add_tags(tag_list)

        return json({'status': 'ok', 'url': q.get_absolute_url()})

    return json({'status': 'error', 'html':
                render_to_string("ask.html", RequestContext(request, data))})
Пример #41
0
def create_question(request, course_id):
    ChoiceFormSet = modelformset_factory(Choice, ChoiceForm, extra=2)
    course = Course.objects.get(id=course_id)
    question_form = QuestionForm()
    choice_formset = ChoiceFormSet(queryset=Choice.objects.none())
    if request.method == 'POST':
        question_form = QuestionForm(data=request.POST)
        choice_formset = ChoiceFormSet(data=request.POST)
        if question_form.is_valid() and choice_formset.is_valid():
            question = question_form.save(commit=False)
            question.owner = request.user
            question.course = course
            question.save()
            for choice_form in choice_formset.forms:
                choice = choice_form.save(commit=False)
                choice.question = question
                choice.save()
            messages.success(request, 'Question created successfully!')
            return redirect('/courses/' + course_id + '/questions/')
    return render(request, 'create_question.html', {'form': question_form,
        'choice_formset': choice_formset, 'course': course })
Пример #42
0
def ask_question(request):
    if request.method == 'POST':
        form = QuestionForm(request.POST)
        if form.is_valid():
            if request.user.is_authenticated():
                q = form.save(commit=False)
                q.user = request.user
                q.save()
            else:
                form.save()
            return HttpResponseRedirect(reverse(index))
    else:
        form = QuestionForm()
    return render_to_response('questions/ask.html', {'question_form': form,}, context_instance = RequestContext(request))
def question_create_view(request):
    if request.method == 'POST' and request.user.is_authenticated():
        parent_id = request.POST.get('parent_id')
        video_id = request.POST.get('video_id')
        instance_location_destination = request.POST.get('instance_location_destination')
        form = QuestionForm(request.POST)

        try:
            video = Video.objects.get(id=video_id)
        except Exception as e:
            video = None

        parent_question = None
        if parent_id is not None:
            try:
                parent_question = Question.objects.get(id=parent_id)
            except Exception as e:
                parent_question = None
            if parent_question is not None and parent_question.video is not None:
                video = parent_question.video
        if form.is_valid():
            question_text = form.cleaned_data['question']
            if parent_question is not None:
                new_question = Question.objects.create_question(
                    user = request.user,
                    destination = parent_question.get_instance_location,
                    text = question_text,
                    video = video,
                    parent = parent_question
                )
                affected_users = parent_question.get_affected_users()
                notify.send(
                    request.user,
                    action=new_question,
                    target = parent_question,
                    recipient=parent_question.user,
                    affected_users = affected_users,
                    verb = 'replied to ',
                )
                messages.success(request, "<strong>Reply</strong> posted successfully, Thank you for your reply.", extra_tags='html_safe')
                return HttpResponseRedirect(parent_question.get_absolute_url())
            else:
                new_question = Question.objects.create_question(
                    user = request.user,
                    destination = instance_location_destination,
                    text = question_text,
                    video = video,
                )
                notify.send(
                    request.user,
                    action=new_question,
                    target = new_question.video,
                    recipient=request.user,
                    verb = 'Commented on ',
                )

                #notify.send(request.user, recipient=request.user, action='new comment added')
                messages.success(request, "<strong>Comment</strong> posted successfully, Thank you for your comment.", extra_tags='html_safe')
                return HttpResponseRedirect(new_question.get_absolute_url())
        else:
            messages.error(request, "<strong>Oops!</strong>, an error occurred in your comment, please try again.", extra_tags='html_safe')
            return HttpResponseRedirect(instance_location_destination)
    else:
        raise Http404
Пример #44
0
 def test_valid_question_form(self):
     data = {"name": "Example name", "category": "Examples", "question_text": "Example text"}
     form = QuestionForm(data=data)
     self.assertTrue(form.is_valid())
Пример #45
0
 def test_if_valid_on_all_required_fields(self):
     form_data = {'name': 'Example name', 'category': 'Examples',
         'question_text': 'Example question text'}
     form = QuestionForm(data=form_data)
     self.assertTrue(form.is_valid())
Пример #46
0
 def test_if_not_valid_on_empty_question_text(self):
     form_data = {'name': 'Example name', 'category': 'Examples',
         'question_text': ''}
     form = QuestionForm(data=form_data)
     self.assertFalse(form.is_valid())
Пример #47
0
def ask(request):
	if request.method == "POST":
		question_form = QuestionForm(request.POST)
		question_form.save()
	return HttpResponseRedirect('/')