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)
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()
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()
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"])