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)
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)
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'))
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'))
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)
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)
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)
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)
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)
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)
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)
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)
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'))
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'])
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)
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)
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)
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)
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)