def view_a_post(category, year, month, title): passed_days, remaining_days = calculate_work_date_stats() posts = Posts() answers_form = AnswerRadioForm() if request.args.get('q'): return redirect(url_for('searchresults', q=request.args.get('q'))) current_post = posts.get_by_title(title) post_tag_names = current_post.get_tag_names() related_posts = posts.get_related_posts(current_post.id) category = current_post.category.get().category site_updated = posts.site_last_updated() answers_form.r_answers.choices = [(answer.p_answer, answer.p_answer) for answer in current_post.answers if answer.p_answer != u''] return render_template('singlepost.html', user_status=users.is_current_user_admin(), siteupdated=site_updated, \ daysleft=remaining_days, dayspassed=passed_days, RelatedPosts=related_posts, \ Post=current_post.to_json(), posttagnames=post_tag_names, category=category, answers_field = answers_form)
def view_a_post(category, year, month, title): passed_days, remaining_days = calculate_work_date_stats() posts = Posts() answers_form = AnswerRadioForm() if request.args.get('q'):return redirect(url_for('searchresults',q=request.args.get('q'))) current_post = posts.get_by_title(title) post_tag_names = current_post.get_tag_names() related_posts = posts.get_related_posts(current_post.id) category = current_post.category.get().category site_updated = posts.site_last_updated() answers_form.r_answers.choices = [(answer.p_answer, answer.p_answer) for answer in current_post.answers if answer.p_answer != u''] return render_template('singlepost.html', user_status=users.is_current_user_admin(), siteupdated=site_updated, \ daysleft=remaining_days, dayspassed=passed_days, RelatedPosts=related_posts, \ Post=current_post.to_json(), posttagnames=post_tag_names, category=category, answers_field = answers_form)
def answers(title): posts = Posts() current_post = posts.get_by_title(title) if request.method == 'GET': # all entitites return jsonify(current_post.strip_answers_jsoned()) elif request.method == 'POST': raw_post = request.get_json() p_answer = raw_post["p_answer"] is_correct = raw_post["is_correct"] if not session.get('posts'): session['posts'] = [] if title not in session.get('posts'): remaining_attempts = REMAINING_ATTEMPTS \ if len(current_post.answers) != 2 else 0 session['posts'].append(title) session[title] = remaining_attempts else: remaining_attempts = session.get(title) - 1 session[title] = remaining_attempts answers_form = AnswerRadioForm() answers_form.r_answers.data = p_answer answers_form.r_answers.choices = [(answer.p_answer, answer.p_answer) for answer in current_post.answers] if answers_form.validate_on_submit(): answers_stats = {} if remaining_attempts < 0: result = False alert_type = "warning" msg = "Sorry, no attempts left!" else: current_post.set_selected_answer(p_answer) if current_post.is_answer_correct(): result = True alert_type = "success" msg = "Great!" answers_stats = current_post.get_answers_statistics() elif remaining_attempts == 1: result = False alert_type = "danger" msg = "You have one last attempt!" elif remaining_attempts == 0: result = False alert_type = "warning" msg = "Sorry, no attempts left!" else: result = False alert_type = "warning" msg = 'Please try again, {} attempts remaining.'.format( remaining_attempts) return jsonify(result=result, msg=msg, remaining_attempts=remaining_attempts, answers_stats=answers_stats, alert_type=alert_type) else: return jsonify({})
def answers(title): posts = Posts() current_post = posts.get_by_title(title) if request.method == 'GET': # all entitites return jsonify(current_post.strip_answers_jsoned()) elif request.method == 'POST': raw_post = request.get_json() p_answer = raw_post["p_answer"] is_correct = raw_post["is_correct"] if not session.get('posts'): session['posts'] = [] if title not in session.get('posts'): remaining_attempts = REMAINING_ATTEMPTS \ if len(current_post.answers) != 2 else 0 session['posts'].append(title) session[title] = remaining_attempts else: remaining_attempts = session.get(title) - 1 session[title] = remaining_attempts answers_form = AnswerRadioForm() answers_form.r_answers.data = p_answer answers_form.r_answers.choices = [(answer.p_answer, answer.p_answer) for answer in current_post.answers] if answers_form.validate_on_submit(): answers_stats = {} if remaining_attempts < 0: result = False alert_type = "warning" msg = "Sorry, no attempts left!" else: current_post.set_selected_answer(p_answer) if current_post.is_answer_correct(): result = True alert_type = "success" msg = "Great!" answers_stats = current_post.get_answers_statistics() elif remaining_attempts == 1: result = False alert_type = "danger" msg = "You have one last attempt!" elif remaining_attempts == 0: result = False alert_type = "warning" msg = "Sorry, no attempts left!" else: result = False alert_type = "warning" msg = 'Please try again, {} attempts remaining.'.format(remaining_attempts) return jsonify(result=result, msg=msg, remaining_attempts=remaining_attempts, answers_stats=answers_stats, alert_type=alert_type) else: return jsonify({})