Exemple #1
0
def send_drift(gid):
    form = DriftForm(request.form)
    current_gift = Gift.query.get_or_404(gid)

    if current_gift.is_yourself_gift(current_user.id):
        flash('这本书是你自己的^_^, 不能向自己索要书籍噢')
        return redirect(url_for('web.book_detail', isbn=current_gift.isbn))

    if not current_user.can_send_gift():
        return render_template("not_enough_beans.html",
                               beans=current_user.beans)
    gifter = current_gift.user.summary
    if request.method == "POST" and form.validate():
        drift = Drift()
        drift.save_drift(form, current_gift)
        send_email(current_gift.user.email,
                   '有人想要一本书',
                   'email/get_gift.html',
                   wisher=current_user,
                   gift=current_gift)
        return redirect(url_for("web.pending"))
    return render_template("drift.html",
                           gifter=gifter,
                           user_beans=current_user.beans,
                           form=form)
Exemple #2
0
def save_of_drift_by_gift():
    # 通过向他人赠送书籍--送出书籍
    uid = g.user.id
    data = request.json

    book = data['book']
    # 对方-->接收者
    wish_id = data['wish_id']
    requester = Wish.query.get(wish_id).consumer
    # 我-->赠送者
    gifter = Gift.query.filter_by(soft=True, launched=False, uid=uid).first()

    drift = Drift(book=book, requester=requester, gifter=gifter)
    drift.save_drift()
    return Success()
Exemple #3
0
def save_of_drift_by_request():
    # 通过向他人请求书籍
    uid = g.user.id
    data = request.json
    drift_id = data['drift_id']
    mail = data['mail']
    message = data['message']
    # 我-->接受者
    requester = Consumer.get_consumer(uid)
    if drift_id:
        drift = __set_of_drift_by_did(drift_id=drift_id, mail=mail, message=message)
    else:
        book = data['book']
        # 对方-->赠送者
        gift_id = data['gift_id']
        gifter = Gift.query.get(gift_id)
        drift = Drift(book=book, requester=requester, gifter=gifter, mail=mail, message=message)
    # 鱼豆-1
    requester.beans -= 1
    drift.save_drift()
    return Success()
Exemple #4
0
def send_drift(gid):
    gifter = Gift.owner(gid)
    if request.method == "POST":
        form = ReceiverForm(request.form)
        if form.validate():
            gift = Gift.query.filter_by(id=gid).first()
            book = gift.book
            if current_user.can_send_drift(book['isbn']):
                with db.auto_commit():
                    current_user.beans -= 1
                    current_user.receive_counter += 1
                    drift = Drift()
                    drift.save_drift(form, gift, book, gifter)
                    db.session.add(drift)
                return redirect(url_for('web.pending'))
            else:
                flash('您的鱼豆不够!')
        else:
            flash('表单提交错误!')
    return render_template(
        'drift.html',
        gifter=gifter,
        beans_ask_one_book=current_app.config["BEANS_ASK_ONE_BOOK"])