예제 #1
0
def post_detail(id):
    post = Post.query.get(id)
    post.text = Markup(post.text)
    render_url = post.custom_html_file if post.custom_html_file else 'post_detail.html'
    if post.is_practice:
        questions = post.questions
        questions.sort(key=lambda x: x.sorting_column)
        qid, current_question = _set_qid_and_current_question(
            request.args.get('qid'), questions)
        form = QuestionForm(current_question)

        if request.method == 'POST':
            if form.validate_on_submit():
                user_answer = request.form['user_answer']
                if user_answer == current_question.answer:
                    is_final = qid == len(questions)
                    if is_final:
                        flash(
                            'Вы ответили на последний вопрос блока, congrats!')
                        return redirect(url_for('index'))

                    return redirect(url_for('post_detail', qid=qid + 1, id=id))
    else:
        form, qid = None, None

    return render_template(render_url, post=post, form=form, qid=qid)
예제 #2
0
def post_question():
    """Post a question"""
    if not g.user:
        flash("Log in required", "warning")
        return redirect('/login')

    form = QuestionForm()

    if request.method == 'POST':

        if not g.user:
            flash("Log in required", "warning")
            return redirect('/login')
        if form.validate_on_submit():
            subject = Subject.query.filter_by(name=form.subject.data).first()

            question = Question(subjectID=subject.id,
                                title=form.title.data,
                                content=form.content.data,
                                authorID=g.user.id,
                                hashtag=form.hashtag.data)

            db.session.add(question)
            db.session.commit()

            return redirect(f'/q/{question.subject.name}')

    return render_template('board/ask.html', form=form)
예제 #3
0
def quiz():
    if current_user.is_authenticated:
        form = QuestionForm()
        if form.validate_on_submit():
            question = Question.query.get(form.question_id.data)
            answers = [answer.content.lower().replace(' ', '') for answer in question.answers]
            input_answer = form.answer.data.lower().replace(' ', '')
            check = [levenshteinDistance(input_answer, answer) < 3 for answer in answers]
            if True in check:
                db.session.add(Correct(user_id=current_user.id, question_id=question.id))
                db.session.commit()
                flash("Correct Answer")
            else:
                flash("Wrong Answer")
        all_questions = set(Question.query.all())
        answered_already = {correct.question for correct in Correct.query.filter_by(user_id=current_user.id).all()}
        unanswered = all_questions.difference(answered_already)
        if len(unanswered) == 0:
            flash("Well Done!! You have already answered all the questions we have")
            return redirect(url_for('home'))
        question = random.choice(list(unanswered))
        number = question.id
        form.question_id.process_data(number)
        return render_template("quiz.j2", question=question, form=form, title=f"quiz - {number}")
    else:
        flash("Cant play without login")
        return redirect(url_for('login'))
예제 #4
0
파일: views.py 프로젝트: ahbuntu/ece1779
def new_question():
    """Creates a new question"""
    form = QuestionForm()
    if request.method == 'POST' and form.validate_on_submit():
        question = Question(
            content=form.content.data,
            added_by=users.get_current_user(),
            location=get_location(form.location.data)
        )
        try:
            question.put()
            question_id = question.key.id()

            create_nearby_question(question_id)

            flash(u'Question %s successfully saved.' % question_id, 'success')
            add_question_to_search_index(question)


            return redirect(url_for('list_questions_for_user'))
        except CapabilityDisabledError:
            flash(u'App Engine Datastore is currently in read-only mode.', 'info')
            return redirect(url_for('list_questions_for_user'))
    else:
        flash_errors(form)
        return redirect(url_for('list_questions_for_user'))
예제 #5
0
def main():
	error = None 
	form = QuestionForm()
	if request.method == 'POST':
		if form.validate_on_submit():
			newName = form.name.data
			newEmail = form.email.data
			newQuestion = form.question.data
			new_question = Question(
				newName,
				newEmail,
				newQuestion
			)

			msg = Message("Your question submitted",
					recipients = [newEmail],
					sender = '*****@*****.**',
					body = u'Hello {}\n Your question was submitted through the site frenchonline. We will answer it ASAP ! '.format(newName)
					)

			admin_msg = Message ("You have a new question",
					recipients = ['*****@*****.**'],
					sender = '*****@*****.**',
					body = u'Your contact {} asked a question with the content \n----------\n"{}"\n----------\n, \nPlease answer through this email {}'.format(newName, newQuestion, newEmail)
				)
			db.session.add(new_question)
			db.session.commit()
			mail.send(msg)
			mail.send(admin_msg)
	return render_template('index.html', form = form, error = error)
def question_add():
    # was form posted?
    if request.method == 'POST':
        form = QuestionForm(request.form)
        if form.validate_on_submit():
            question = Question(
                title=request.form['title'],
                text=request.form['text'],
                date=datetime.now(),
                user_id=current_user.id)

            # Answer save in db
            db.session.add(question)
            db.session.commit()

            return redirect(url_for('index'))

        else:
            # Show errors in form
            flash_errors(form)

    else:
        form = QuestionForm()

    return render_template('question_add.html', form=form)
예제 #7
0
파일: views.py 프로젝트: zedzew/QueCom
def add_question():
    form = QuestionForm()
    if form.validate_on_submit():
        add_question = Questions(question=request.form['question'], user_id=g.user.id)
        db_session.add(add_question)
        db_session.commit()
        flash('Question Add!')
        return redirect(url_for('questions'))
    return render_template('add_question.html', title='Add question', form=form)
예제 #8
0
파일: views.py 프로젝트: nataliamm/web_app
def index():
    form = QuestionForm()
    if form.validate_on_submit():
        question = Question(body=form.question.data, voite=None)
        db.session.add(question)
        db.session.commit()
        flash('Question was added')
        return redirect(url_for('index'))
    questions_all = Question.query.all()
    return render_template('index.html', title='Home', form=form, questions=questions_all)
예제 #9
0
def ask():
    if 'email' not in session:
        return redirect(url_for('signin'))

    form = QuestionForm()
    if form.validate_on_submit():
        question = Question(form.question.data, User.query.filter_by(email=session['email']).first())
        db.session.add(question)
        db.session.commit()
        flash('Successfully added question !')
        return redirect(url_for('index'))
    return render_template('ask.html', form=form)
예제 #10
0
def add():
    form = QuestionForm(request.form)
    if form.validate_on_submit():
        question = Question(text=form.text.data,
                            date=datetime.utcnow(),
                            owner=current_user)
        db.session.add(question)
        db.session.commit()
        flash(gettext('Your question succesfully posted'), 'success')
        return redirect(url_for('questions'))
    return render_template('add_question.html',
        form = form)
예제 #11
0
파일: app.py 프로젝트: teemak/social
def add_question():
    #Pass form to template
    form = QuestionForm()

    if form.validate_on_submit():
        #save data to db
        data = Question(question=form.question.data)
        db.session.add(data)
        db.session.commit()
        return redirect(url_for('index'))

    return render_template('add_question.html', form=form)
예제 #12
0
def ask_question():
    form = QuestionForm()
    if form.validate_on_submit():
        question = Question(text=form.question.data,
                            user_id=g.user.id,
                            timestamp=datetime.datetime.utcnow())
        db.session.add(question)
        db.session.commit()
        flash('New_question has been created')
    return render_template('ask_question.html',
                           title = 'Sign In',
                           form = form)
예제 #13
0
파일: views.py 프로젝트: ahbuntu/ece1779
def edit_question(question_id):
    """Edit a question."""
    question = Question.get_by_id(question_id)
    form = QuestionForm(obj=question)
    user = users.get_current_user()
    if request.method == "POST":
        if form.validate_on_submit():
            question.content=form.data.get('content')
            question.location=form.data.get('location')
            question.put()
            flash(u'Question %s successfully modified.' % question_id, 'success')
            return redirect(url_for('list_questions_for_user'))
    return render_template('edit_question.html', question=question, form=form, user=user)
예제 #14
0
def add_question_submission():
    try:
        form = QuestionForm()
        if form.validate_on_submit():
            question = Question(question_text=request.form['question_text'],
                                answer=request.form['answer'],
                                difficulty=request.form['difficulty'],
                                category=request.form['category'],
                                author=current_user._get_current_object())
            db.session.add(question)
            db.session.commit()
            flash('Your question has been added.')
            return redirect(url_for('get_questions'))
    except:
        flash('An error occurred. Your question could not be added.')
        return redirect(url_for('get_questions'))
예제 #15
0
def db_insert_q():
    if 'user_id' and 'user_email' not in session:
        return redirect('/')
    form = QuestionForm()

    if form.validate_on_submit():
        question = Question()
        question.q_user_id = session['user_id']
        question.subject = form.data.get('subject')
        question.topic = form.data.get('topic')
        question.content = form.data.get('content')
        dbb.session.add(question)
        dbb.session.commit()
        return render_template('qeustion_success.html',
                               name=session['user_email'])
    return render_template('question_make.html',
                           form=form,
                           user_email=session['user_email'])
예제 #16
0
파일: views.py 프로젝트: Murano/microqa
def new_question():
    form = QuestionForm()
    if form.validate_on_submit():
        title = form.title.data
        body = form.body.data
        tags = form.tags.data
        if tags != "":
            tags = set(map(lambda x: x.strip(), tags.split(",")))
            tag_obj = Tag.objects.first()
            for tag in tags:
                tag_obj.update(add_to_set__tags=tag)
            tag_obj.save()
        else:
            tags = []
        question = Question(username=current_user.username, title=title, body=body, tags=tags)
        question.save()
        return redirect(url_for("index"))
    return render_template("add_question.html", form=form)
예제 #17
0
def question():
    cat_id = request.args.get('cat_id')
    form = QuestionForm()
    clues = display_clue(cat_id)
    filtered_clues = clues

    if form.validate_on_submit():
        value = form.value_dropdown.data
        filtered_clues = []

        for clue in clues:
            print(type(clue['value']), type(value))
            if clue['value'] == int(value):
                filtered_clues.append(clue)

        if len(filtered_clues) == 0:
            flash("No clues of value: " + value, 'danger')

    return render_template('question.html', clues=filtered_clues, form=form)
예제 #18
0
def new_question():
    """Get user's officials and handle creating new question"""
    if not g.user:
        flash("Access unauthorized.", "danger")
        return redirect("/")

    form = QuestionForm()
    if form.validate_on_submit():
        new_question = Question(user_id=session[CURR_USER_KEY],
                                official_id=form.official.data,
                                text=form.text.data)
        db.session.add(new_question)
        db.session.commit()
        flash("Your question has been asked!", "success")
        return redirect('/')

    form.official.choices = [(o.id, f'{o.name} ({o.office})')
                             for o in g.user.city.officials]
    return render_template('questions/new_question.html', form=form)
예제 #19
0
파일: views.py 프로젝트: nukru/projectQ
def addQuestion(id_survey, id_section):
    section = Section.query.get(id_section)
    form = QuestionForm()
    # get list of question of this section, to that question depends on the answer to another question
    form.question.query=Question.query.filter(Question.section_id==id_section)
    if form.validate_on_submit():
        question = selectType(form,section)
        db.session.add(question)
        db.session.commit()
        flash('Adding question')
        return redirect(url_for('researcher.addQuestion',id_survey = id_survey, id_section = id_section))
    path=tips_path(section)
    return render_template('/researcher/addEditQuestion.html',
        title = "Question",
        form = form,
        survey = Survey.query.get(id_survey),
        sections = Survey.query.get(id_survey).sections.all(),
        section = section,
        questions = section.questions,
        addQuestion = True,
        question_type = form.questionType.data,
        decision_type = form.decisionType.data,
        operation = form.operation.data,
        path = path)
def question_add():
    # was form posted?
    if request.method == 'POST':
        form = QuestionForm(request.form)
        if form.validate_on_submit():
            question = Question(title=request.form['title'],
                                text=request.form['text'],
                                date=datetime.now(),
                                user_id=current_user.id)

            # Answer save in db
            db.session.add(question)
            db.session.commit()

            return redirect(url_for('index'))

        else:
            # Show errors in form
            flash_errors(form)

    else:
        form = QuestionForm()

    return render_template('question_add.html', form=form)
예제 #21
0
파일: views.py 프로젝트: nukru/projectQ
def editQuestion(id_survey, id_section,id_question):
    question = Question.query.get(id_question)
    form = QuestionForm()
    # get list of question of this section, to that question depends on the answer to another question
    form.question.query=Question.query.filter(Question.section_id==id_section,\
        Question.id!=id_question)
    if form.validate_on_submit():
        q = selectType(form,Section.query.get(id_section))
        for subquestion in question.subquestions:
            subquestion.parent = q
            db.session.add(subquestion)
        q.position=question.position
        db.session.add(q)
        db.session.commit()
        db.session.delete (question)
        db.session.commit()
        db.session.commit()
        flash('Adding question')
        return redirect(url_for('researcher.addQuestion',id_survey = id_survey, id_section = id_section))
    elif request.method != "POST":
        form.text.data = question.text
        form.required.data = question.required
        form.expectedAnswer.data = question.expectedAnswer
        form.maxNumberAttempt.data = question.maxNumberAttempt
        form.help_text.data = question.help_text
        form.is_real_money.data = question.is_real_money
        if isinstance(question, QuestionText):
            form.regularExpression.data = question.regularExpression
            form.isNumber.data = question.isNumber
            form.isNumberFloat.data = question.isNumberFloat
            form.errorMessage.data = question.errorMessage
        if isinstance (question,QuestionChoice):
            if question.is_range:
                form.range_min.data = question.range_min
                form.range_max.data = question.range_max
                form.range_step.data = question.range_step
            else:
                l= question.choices
                if len(l) >0:
                    form.answer1.data = l[0]
                if len(l) >1:
                    form.answer2.data = l[1]
                if len(l) >2:
                    form.answer3.data = l[2]
                if len(l) >3:
                    form.answer4.data = l[3]
                if len(l) >4:
                    form.answer5.data = l[4]
                if len(l) >5:
                    form.answer6.data = l[5]
                if len(l) >6:
                    form.answer7.data = l[6]
                if len(l) >7:
                    form.answer8.data = l[7]
                if len(l) >8:
                    form.answer9.data = l[8]
                if len(l) >9:
                    form.answer10.data = l[9]
                if len(l) >10:
                    form.answer11.data = l[10]
                if len(l) >11:
                    form.answer12.data = l[11]
        if isinstance(question, QuestionLikertScale):
            form.labelMinLikert.data=question.labelMin
            form.labelMaxLikert.data=question.labelMax
        if question.decision=="decision_five":
            form.container.data = question.container[0] if len(question.container)>0 else 0
        
        if question.container is not None:
            if len(question.container)>0 and question.container[0]=="feedback":
                form.feedback.data=True

        # condition of subquestion
        if question.condition is not None:
            form.value.data =question.condition.value

    section =  Section.query.get(id_section)
    path=tips_path(section)
    return render_template('/researcher/addEditQuestion.html',
        title = "Question",
        form = form,
        survey = Survey.query.get(id_survey),
        sections = Survey.query.get(id_survey).sections.all(),
        section = section,
        questions = Section.query.get(id_section).questions,
        editQuestion = True,
        question_type = question.type,
        decision_type = question.decision,
        render = question.render if isinstance(question,QuestionChoice) else "vertical",
        operation = (form.operation.data if question.condition is None else\
            question.condition.operation),
        question = (None if question.parent is None else question.parent_id),
        path = path)