Пример #1
0
def follow_question(id):
    question = Question.query.get_or_404(id)
    if current_user.is_following_question(question):
        flash(u'您已经关注了该问题')
        return redirect(url_for('main.question', id=question.id))
    current_user.follow_question(question)
    return redirect(url_for('main.question', id=question.id))
Пример #2
0
def ask():
    form = AskForm()
    if form.validate_on_submit():
        question = Question(title=form.title.data,
                            body=form.body.data,
                            user=current_user._get_current_object()
        )

        #将标签分隔符转化成';'
        input_tags_string = form.tag.data
        input_tags_list = list(input_tags_string)
        for i in range(len(input_tags_list)):
            if input_tags_list[i] in [u',', u',' ,u';']:
                input_tags_list[i] = ';'
        input_tags = ''.join(input_tags_list).split(';')

        for tag_name in input_tags:
            tag = Tag.query.filter_by(name=tag_name).first()
            if tag is None:
                tag = Tag(name=tag_name)
                db.session.add(tag)
                db.session.commit()
            question.tags.append(tag)
        db.session.add(question)
        db.session.commit()
        question.addToTimeline() #加入时间线
        id = question.id
        current_user.follow_question(id)

        return redirect(url_for('main.question', id=id))
    return render_template('/main/ask.html', form=form)
Пример #3
0
def follow_question(id):
    '关注当前问题'
    current_user.follow_question(id)
    is_following_question = current_user.is_following_question(id)
    question = Question.query.get_or_404(id)
    question_followers_count = question.followers.count()
    return jsonify({'is_following_question': is_following_question,
                    'question_followers_count': question_followers_count})
Пример #4
0
def follow_question(question_id):
    """关注某个问题"""
    question = Question.query.filter_by(id=question_id).first()
    if question is None or current_user.is_following_question(question):
        return jsonify(error=constant.FAIL)

    # 关注问题
    try:
        current_user.follow_question(question)
    except Exception as e:
        return jsonify(error=constant.FAIL)

    current_user.add_dynamic(current_user.id, question.id,
                             "question")  # 增加关注问题动态记录
    current_user.notify_follower(question.id, "follow_ques")
    return jsonify(error="")
Пример #5
0
def submit_question():
    question = request.form.get("question")
    question_desc = request.form.get("question_desc")
    topic = request.form.get("topic")

    if topic == None or topic == "":
        return jsonify(error=constant.NOT_VALID_CHOICE)
    if len(question) > 60 or len(question_desc) > 500:
        return jsonify(error=constant.QUESTION_ERROR)

    # 添加问题
    result = Question.add_question(question, question_desc, topic, current_user.id)
    if not result:  # 操作失败
        return jsonify(error=constant.FAIL)

    current_user.follow_question(result)   # 提问者默认关注提出的问题
    current_user.notify_follower(result.id, "ask")
    return jsonify(result=result.id, error="")