Пример #1
0
def relationship():
    if request.method == 'GET':
        type = request.args.get('type', '')
        id = request.args.get('id', '')
        if type == 'user':
            if current_user.is_following_user(User.query.get(int(id))):
                return '取消关注'
            else:
                return '关注'
        if type == 'topic':
            if current_user.is_following_topic(Topic.query.get(int(id))):
                return '取消关注'
            else:
                return '关注'
        if type == 'question':
            print type, id
            if current_user.is_following_question(Question.query.get(int(id))):
                return '取消关注'
            else:
                return '关注'

    if request.method == 'POST':
        type = request.form.get('type')
        id = request.form.get('id')
        if type == 'user':
            user = User.query.get(int(id))
            if current_user.is_following_user(user):
                current_user.unfollow_user(user)
            else:
                current_user.follow_user(user)
        if type == 'topic':
            topic = Topic.query.get(int(id))
            if current_user.is_following_topic(topic):
                current_user.unfollow_topic(topic)
            else:
                current_user.follow_topic(topic)
                new_activity = Activity(user_id=current_user.id, topic_id=topic.id, move=4)
                db.session.add(new_activity)
        if type == 'question':
            question = Question.query.get(int(id))
            if current_user.is_following_question(question):
                current_user.unfollow_question(question)
            else:
                current_user.follow_question(question)
                new_activity = Activity(user_id=current_user.id, question_id=id, move=2)
                db.session.add(new_activity)
        db.session.commit()
        return 'success'
Пример #2
0
def unfollow_question(id):
    question = Question.query.filter_by(id=id).first()
    if question is None:
        flash('Invalid question.')
        return redirect(url_for('main.index'))
    if not current_user.is_following_question(question):
        flash('你还没有关注该问题。')
        return redirect(url_for('main.question', id=id))
    question.followed_at = ''
    db.session.add(question)
    db.session.commit()
    current_user.unfollow_question(question)
    flash('你取消了对问题: %s 的关注。' % question.title)
    return redirect(url_for('main.question', id=id))
Пример #3
0
def follow_question(id):
    question = Question.query.filter_by(id=id).first()
    if question is None:
        flash('Invalid question.')
        return redirect(url_for('main.index'))
    if current_user.is_following_question(question):
        flash('你已经关注了该问题。')
        return redirect(url_for('main.question', id=id))
    question.followed_at = datetime.datetime.now()
    db.session.add(question)
    db.session.commit()
    current_user.follow_question(question)
    flash('你关注了问题: %s。' % question.title)
    return redirect(url_for('main.question', id=id))