def reject_drift(did): with db.auto_commit(): drift = Drift.query.filter(Gift.uid == current_user.id, Drift.id == did).first_or_404() drift.pending = PendingStatus.Reject requester = User.query.get_or_404(drift.requester_id) requester.beans += 1 return redirect(url_for('web.pending'))
def redraw_drift(did): # 超权 # uid:1 did:1 # uid:2 did:2 with db.auto_commit(): drift = Drift.filter_by(requester_id=current_user.id, id=did).first_or_404() drift.pending = PendingStatus.Redraw current_user.beans += 1 return redirect(url_for('web.pending'))
def save_to_wish(isbn): if current_user.can_save_to_list(isbn): with db.auto_commit(): wish = Wish() wish.isbn = isbn wish.uid = current_user.id db.session.add(wish) else: flash('这本书已添加至你的赠送清单或已存在于你的心愿清单,请不要重复添加') return redirect(url_for('web.book_detail', isbn=isbn))
def redraw_from_gifts(gid): gift = Gift.query.filter_by(id=gid, launched=False).first_or_404() drift = Drift.query.filter_by( gift_id=gid, pending=PendingStatus.Waiting).first_or_404() if drift: flash('这个礼物正处于交易状态,请先前往鱼漂完成该交易') else: with db.auto_commit(): current_user.beans -= current_user.config['BEANS_UPLOAD_ONE_BOOK'] gift.delete() return redirect(url_for('web.my_gifts'))
def save_to_gifts(isbn): if current_user.can_save_to_list(isbn): # 事务 rollback with db.auto_commit(): gift = Gift() gift.isbn = isbn gift.uid = current_user.id current_user.beans += current_app.config['BEANS_UPLOAD_ONE_BOOK'] db.session.add(gift) else: flash('这本书已添加至你的赠送清单或已存在于你的心愿清单,请不要重复添加') return redirect(url_for('web.book_detail', isbn=isbn))
def mailed_drift(did): with db.auto_commit(): drift = Drift.query.filter_by(gifter_id=current_user.id, id=did).first_or_404() drift.pending = PendingStatus.Success current_user.beans += 1 gift = Gift.query.filter_by(id=drift.gift_id).first_or_404() gift.launched = True # 两种写法 Wish.query.filter_by(isbn=drift.isbn, uid=drift.requester_id, launched=False).update({Wish.launched: True}) return redirect(url_for('web.pending'))
def save_drift(drift_form, current_gift): with db.auto_commit(): drift = Drift() # drift.message = drift_form.message.data drift_form.populate_obj(drift) drift.gift_id = current_gift.id drift.requester_id = current_user.id drift.requester_nickname = current_user.nickname drift.gifter_nickname = current_gift.user.nickname drift.gift_id = current_gift.user.id book = BookViewModel(current_gift.book) drift.book_title = book.title drift.book_author = book.author drift.book_img = book.image drift.isbn = book.isbn current_user.beans -= 1 db.session.add(drift)
def redraw_from_wish(isbn): wish = Wish.query.filter_by(isbn=isbn, launched=False).first_or_404() with db.auto_commit(): wish.delete() return redirect(url_for('web.my_wish'))