Exemple #1
0
def send_drift(gid):
    current_gift = Gift.query.get_or_404(gid)
    if current_gift.is_yourself_gift(current_gift):
        flash('please do not require the book that you posted')
        return redirect(url_for('web.book_detail', isbn=current_gift.isbn))
    can = current_user.can_send_drift()
    if not can:
        return render_template('not_enough_beans.html',
                               beans=current_user.beans)

    form = DriftForm(request.form)
    if request.method == 'POST' and form.validate():
        save_drift(form, current_gift)
        send_mail(current_gift.user.email,
                  'Some One Want Your Book',
                  'email/get_gift.html',
                  wisher=current_gift,
                  gift=current_gift)
        return redirect(url_for('web.pending'))

    gifter = current_gift.user.summary
    return render_template('drift.html',
                           gifter=gifter,
                           user_beans=current_user.beans,
                           form=form)
Exemple #2
0
def send_drift(gid):  #该方法是索要书籍
    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))

    can = current_user.can_send_drift()
    if not can:
        return render_template('not_enough_beans.html',
                               beans=current_user.beans)

    form = DriftForm(request.form)
    if request.method == 'POST' and form.validate():
        save_drift(form, current_gift)  #赠送书籍页面保存信息
        #交易通知的方式,邮箱,短信
        send_mail(current_gift.user.email,
                  '有人想要这本书',
                  'email/get_gift.html',
                  wisher=current_user,
                  gift=current_gift)
        return redirect(url_for('web.pending'))
    gifter = current_gift.user.summary  #id没用, 是relationship来操作另一个表

    return render_template('drift.html',
                           gifter=gifter,
                           user_beans=current_user.beans,
                           form=form)
Exemple #3
0
def send_drift(gid):
    """
    发送鱼漂,请求书籍
    :param gid:
    :return:
    """
    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))

    # 判断鱼豆以及索取和赠送关系是否满足条件
    can = current_user.can_send_drift()
    if not can:
        return render_template('not_enough_beans.html', beans=current_user.beans)

    # 输入的参数校验
    form = DriftForm(request.form)
    if request.method == 'POST' and form.validate():
        save_drift(form, current_gift)
        send_mail(current_gift.user.email, '有人想要一本书',
                  'email/get_gift.html', wisher=current_user, gift=current_gift)
        return redirect(url_for('web.pending'))

    gifter = current_gift.user.summary
    return render_template('drift.html',
                           gifter=gifter, user_beans=current_user.beans, form=form)
Exemple #4
0
def send_drift(gid):
    '''
    向他人请求此书  1 判断能否请求
                2 判断书籍的id 与 归属
                3 请求的详情页面
                4 发送邮件申请
    :param gid:
    :return:
    '''
    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))
    else:
        can = current_user.can_send_drift()
        if not can:
            return render_template('not_enough_beans.html', beans=current_user.beans)
        form = DriftForm(request.form)
        if request.method == 'POST' and form.validate():
            save_drift(form, current_gift)
            send_mail(current_gift.user.email, '有人想要一本书', 'email/get_gift.html',
                      wisher=current_user,
                      gift=current_gift)
            return redirect(url_for('web.pending'))
        gifter = current_gift.user.summary
        return render_template('drift.html', gifter=gifter, user_beans=current_user.beans, form=form)
Exemple #5
0
def send_drift(gid):
    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))

    can = current_user.can_send_drift()
    if not can:
        return render_template('not_enough_beans.html',
                               beans=current_user.beans)
    form = DriftForm(request.form)
    if request.method == 'POST' and form.validate():
        save_drift(form, current_gift)
        send_mail(current_gift.user.email,
                  '有人想要一本书',
                  'email/get_gift.html',
                  wisher=current_user,
                  gift=current_gift)
        return redirect(url_for('web.pending'))

    gifter = current_gift.user.summary
    return render_template('drift.html',
                           gifter=gifter,
                           user_beans=current_user.beans,
                           form=form)
Exemple #6
0
def send_drift(gid):
    # filter_by(id=gid, launched=True)没有下面这条语句好。下面的语句可以多判断一种状态
    current_gift = Gift.query.get_or_404(gid)
    # if current_gift.launched:
    #     flash('这本书正处于交易状态,暂时不可以索要')
    #     return redirect(url_for('web.book_detail', isbn=current_gift.isbn))
    if current_gift.is_yourself_gift(current_user.id):
        flash('这本书是你自己的^_^,不能向自己索要书籍哦')
        return redirect(url_for('web.book_detail', isbn=current_gift.isbn))
    can = current_user.can_send_drift()
    if not can:
        return render_template('not_enough_beans.html',
                               beans=current_user.beans)

    form = DriftForm(request.form)
    if request.method == 'POST' and form.validate():
        save_drift(form, current_gift)
        send_mail(current_gift.user.email,
                  '有人想要一本书',
                  'email/get_gift.html',
                  wisher=current_user,
                  gift=current_gift)

    gifter = current_gift.user.summary
    return render_template('drift.html',
                           gifter=gifter,
                           user_beans=current_user.beans,
                           form=form)
Exemple #7
0
def send_drift(gid):
    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))

    can = current_user.can_send_drift()
    if not can:
        return render_template("not_enough_beans.html",
                               beans=current_user.beans)

    form = DriftForm(request.form)
    if request.method == "POST" and form.validate():
        save_drift(form, current_gift)
        send_mail(current_gift.user.email,
                  "有人想要一本书",
                  "email/get_gift.html",
                  wisher=current_user,
                  gift=current_gift)
        return redirect(url_for("web.pending"))

    gifter = current_gift.user.summary
    return render_template("drift.html",
                           gifter=gifter,
                           user_beans=current_user.beans,
                           form=form)
Exemple #8
0
def forget_password_request():
    form = EmailForm(request.form)
    if request.method == 'POST' and form.validate():
        account_email = form.email.data
        user = User.query.filter_by(email=account_email).first_or_404()
        send_mail(form.email.data, '重置你的密码', 'email/reset_password.html', user=user, token=user.generate_token())
        flash('重置密码邮件已经发送' + account_email + ',请到邮箱中查收')
    return render_template('auth/forget_password_request.html', form=form)
Exemple #9
0
def satisfy_wish(wid):
    wish = Wish.query.get_or_404(wid)
    gift = Gift.query.filter_by(uid=current_user.id, isbn=wish.isbn).first()
    if not gift:
        flash('你还没有上传此书,请点击”加入到赠送清单“添加此书。添加前,请确保自己可以赠送此书')
    else:
        send_mail(wish.user.email, '有人想送你一本书','email/satisify_wish.html', wish=wish, gift=gift)
        flash('已向他/她发送了一封邮件,如果他/她愿意接受你的赠送,你将收到一个鱼漂')
    return redirect(url_for('web.book_detail', isbn=wish.isbn))
Exemple #10
0
def satisfy_wish(wid):
    wish = Wish.query.get_or_404(wid)
    gift = Gift.query.filter_by(uid=current_user.id, isbn=wish.isbn).first()
    if not gift:
        flash('你还没有上传此书,'
              '请点击“加入到赠送清单”添加此书。添加前,请确保自己可以赠送此书')
    else:
        send_mail(wish.user.email, '有人赠送你一本书', 'email/satisify_wish', wish=wish, gift=gift)
        flash('已向他/她发送了一封邮件,如果她/他愿意接受你的赠送,你将收到一个鱼漂')
    return redirect(url_for('web.book_detail', isbn=wish.isbn))
Exemple #11
0
def forget_password_request():
    form = EmailForm(request.form)
    if request.method== 'POST' and form.validate():
        account_email = form.email.data
        user = User.query.filter_by(email=account_email).first_or_404()
        from app.libs.email import send_mail
        send_mail(form.email.data,'重置你的密码','email/reset_password.html',
                  user=user.nickname,token=user.generate_token())
        flash('一封邮件已发送到邮箱'+ account_email + '请注意查收!')
    return render_template('auth/forget_password_request.html',form=form)
Exemple #12
0
def forget_password_request():
    form = EmailForm(request.form)
    if request.method == 'POST':
        if form.validate():
            account_email = form.email.data
            user = User.query.filter_by(email=account_email).first_or_404()
            send_mail(form.email.data, '重置你的密码', 'email/reset_password.html', user=user, token=user.generate_token())
            flash('一封邮件已经发送到邮箱{},请及时查收'.format(account_email))
            return redirect(url_for('web.login'))
    return render_template('auth/forget_password_request.html', form=form)
Exemple #13
0
def forget_password_request():
    form = EmailForm(request.form)
    if request.method == 'POST' and form.validate():
        account_email = form.email.data
        user = User.query.filter_by(email=account_email).first_or_404()
        send_mail(
            account_email, "重置你的密码", 'email/reset_password.html',
            user=user, token=user.generate_token())
        flash('重置密码邮件已经发送成功,请到邮箱中查收')
    return render_template('auth/forget_password_request.html', form=form)
Exemple #14
0
def forget_password_request():
    if request.method == 'POST':
        form = EmailForm(request.form)
        if form.validate():
            account_email = form.email.data
            user = User.query.filter_by(email=account_email).first_or_404()
            from app.libs.email import send_mail
            send_mail(form.email.data, '重置你的密码', 'email/reset_password.html',
                      user=user, token=123)
    return render_template('auth/forget_password_request.html')
Exemple #15
0
def register():
    form = RegisterForm(request.form)
    if request.method == 'POST' and form.validate():
        with db.auto_commit():
            user = User()
            user.set_attrs(form.data)
            db.session.add(user)
        send_mail(form.email.data, '您已注册成功', 'email/register.html', user=user)
        flash('注册成功,请重新登录')
        return redirect(url_for('web.login'))  # 重定向
    return render_template('auth/register.html', form=form)
Exemple #16
0
def forget_password_request():
    form = EmailForm(request.form)
    if request.method == 'POST':
        if form.validate():
            account_email = form.email.data
            user = User.query.filter_by(email=account_email).first_or_404()
            from app.libs.email import send_mail
            send_mail(form.email.data, '重置密码', 'email/reset_password.html', user=user, token=user.generate_token())
            flash('一封邮件已发送到您的邮箱' + account_email + '请查收邮件进行重置密码操作')
            redirect(url_for('web.index'))
    return render_template('auth/forget_password_request.html', form=form)
Exemple #17
0
def __register_user_by_email():
    form = UserEmailForm().validate_for_api()
    token = create_token(email=form.account.data,
                         type=form.type.data.value,
                         secret=form.secret.data,
                         nickname=form.nickname.data)
    send_mail(form.account.data,
              '用户注册',
              'email/register.html', [],
              form=form,
              token=token)
Exemple #18
0
def satisfy_wish(wid):  #向他人赠送此书(满足愿望,赠送书籍)
    wish = Wish.query.get_or_404(wid)
    gift = Gift.query.first_by(isbn=wish.isbn, uid=current_user.id).first()
    if not gift:
        flash('你还没有上传此书,请点击“加入到赠送清单”添加此书,添加前,请确保自己可以赠送此书')

    else:
        send_mail(wish.user.email, '赠送你书', 'email/satisify_wish.html', wish=wish, gift=gift)
        flash('已发送成功,如果愿意接收赠送,你会收到一个鱼漂')

    return redirect(url_for('web.book_detail', isbn=wish.isbn))
Exemple #19
0
def forget_password_request():
    form = EmailForm(request.form)
    if form.validate():
        account_email = form.email.data
        user = User.query.filter_by(email=account_email).first_or_404()
        from app.libs.email import send_mail
        send_mail(form.email.data, '重置你的密码', 'email/reset_password.html', user=user,
                  token=user.generate_token())
        flash('一封邮件已发送到邮箱'+account_email+',请及时查收')
        # return redirect(url_for('web.login'))
    # aop 基于蓝图的app_errorhandler
    return render_template('auth/forget_password_request.html', form=form)
Exemple #20
0
def satisfy_wish(wid):
    wish = Wish.query.get_or_404(wid)
    gift = Gift.query.filter_by(uid=current_user.id,isbn=wish.isbn).first()
    if not gift:
        flash('你还没有上传此书'
              '请点击“加入到赠送清单”添加此书。添加前,请确保自己可以赠送此书')
    else:
        send_mail(wish.user.email,
                  '有人想送你一本书','email/satisify_wish.html',wish=wish,
                  gift=gift)
        return "已向ta发送了一封邮件,如果他愿意接收你的赠送,你将收到一个鱼鳔"
    return redirect(url_for('web.book_detail',isbn=wish.isbn))
Exemple #21
0
def forget_password_request():
    form = EmailForm(request.form)
    if request.method == 'POST' and form.validate():
        # first_or_404 如果账户不存在会返回提示not found 抛出的异常是HttpExcepton的子类
        # 这里可以使用try except自定义异常信息,但是太啰嗦,在web 初始化里定义一个方法来处理
        user = User.query.filter_by(email=form.email.data).first_or_404()
        from app.libs.email import send_mail
        send_mail(form.email.data,
                  '重置你的密码',
                  'email/reset_password.html',
                  user=user,
                  token=user.generate_token())
    return render_template('auth/forget_password_request.html', form=form)
Exemple #22
0
def forget_password_request():
    form = EmailForm(request.form)
    if request.method == 'POST':
        if form.validate():
            from app.libs.email import send_mail
            user = User.query.filter_by(email=form.email.data).first_or_404()
            send_mail(to=form.email.data,
                      subject='重置你的密码',
                      template='email/reset_password.html',
                      user=user,
                      token=user.generate_token())
            flash('重置链接已发送至您的邮箱')
    return render_template('auth/forget_password_request.html', form=form)
Exemple #23
0
def satisfy_wish(wid):
    wish = Wish.query.get_or_404(wid)
    gift = Gift.query.filter_by(uid=current_user.id, isbn=wish.isbn).first()
    if not gift:
        flash('你还没上传此书')
    else:
        send_mail(wish.user.email,
                  '有人想送你一本书',
                  'email/satisify_wish.html',
                  wish=wish,
                  gift=gift)
        flash('已经向他发送了一封邮件')
    return redirect(url_for('web.book_detail', isbn=wish.isbn))
Exemple #24
0
def forget_password_request():
    form = EmailForm(request.form)
    if request.method == 'POST':
        if form.validate():
            account_email = form.email.data
            # 如果 user 为空后续的流程不会处理, 页面会呈现 Not_Found
            # fist_or_404 -> first -> Abort -> HttpException
            user = User.query.filter_by(email=account_email).first_or_404()
            send_mail(account_email, '重置密码', 'email/reset_password.html',
                      user=user, token=user.generate_token())
            flash('验证邮件已经发送到 {}, 请注意查收'.format(account_email))

    return render_template('auth/forget_password_request.html', form=form)
Exemple #25
0
def satisfy_wish(wid):
    wish = Wish.query.get_or_404(wid)
    gift = Gift.query.filter_by(uid=current_user.id, isbn=wish.isbn).first()
    if not gift:
        flash('你还没有上传此书,请点击"加入到赠送清单"添加此书。')
    else:
        send_mail(wish.user.email,
                  '有人想送你一本书',
                  'email/satisfy_wish.html',
                  wish=wish,
                  gift=gift)
        flash('已发送邮件,如果他愿意接受,你将已收到一个鱼漂')
    return redirect(url_for('web.book_detail', isbn=wish.isbn))
Exemple #26
0
def forget_password_request():
    form = EmailForm(request.form)
    if request.method == 'POST':
        if form.validate():
            account_email = form.email.data
            user = User.query.filter_by(email=account_email).first_or_404()
            send_mail(form.email.data,
                      '重置你的密码',
                      'email/reset_password.html',
                      user=user,
                      token=user.generate_token())
            flash(f'一封邮件已发送到您的邮箱{account_email},请及时查收!')
    return render_template('auth/forget_password_request.html', form=form)
Exemple #27
0
def forget_password():
    form = EmailForm(request.form)
    if request.method == 'POST':
        if form.validate():
            email = form.email.data
            user = User.query.filter_by(email=email).first_or_404()
            from app.libs.email import send_mail
            send_mail(email,
                      "重置您的密码",
                      'email/reset_password',
                      user=user,
                      token=user.generate_token())
    return render_template('auth/forget_password.html', form=form)
Exemple #28
0
def forget_password_request():
    form = EmailForm(request.form)
    if request.method == "POST" and form.validate():
        user = User.query.filter_by(email=form.email.data).first_or_404()
        from app.libs.email import send_mail
        account_email = form.email.data
        send_mail('*****@*****.**',
                  '重置您的密码',
                  'email/reset_password.html',
                  user=user,
                  token=user.generate_token())
        flash('一封邮件已发到邮箱' + account_email + '请及时处理')
    return render_template('auth/forget_password_request.html', form=form)
Exemple #29
0
def forget_password_request():
    form = EmailForm(request.form)
    if request.method == 'POST':
        if form.validate():
            account_email = form.email.data
            user = User.query.filter_by(email=account_email).first_or_404()
            send_mail(form.email.data,
                      'Reset your password',
                      'email/reset_password.html',
                      user=user,
                      token=user.generate_token())
            flash('Please check in your Email: ' + account_email)
    return render_template('pages/forget-password-request.html', form=form)
Exemple #30
0
def statisfy_wish(wid):
    wish = Wish.query.get_or_404(wid)
    gift = Gift.query.filter_by(uid=current_user.id, isbn=wish.isbn).fitst()
    if not gift:
        flash('你还没有上传此书,请先点击"加入到赠送清单",点击前请确保您拥有此书')
    else:
        send_mail(wish.user.email,
                  '有人想送您一本书',
                  'email/satisify_wish.html',
                  wish=wish,
                  gift=gift)
        flash('已向他/她发送了一封邮件,如果对方同意,您将收到一个鱼漂')
    return redirect(url_for('web.book_detail', isbn=wish.isbn))
Exemple #31
0
def satisfy_wish(wid):
    wish = Wish.query.get(wid)
    gift = Gift.query.filter_by(isbn=wish.isbn, uid=current_user.id).first()
    if not gift:
        flash('您还没有上传此书,' '请点击“加入到赠送清单”添加此书。添加前,请确保自己可以赠送此书')
    else:
        send_mail(wish.user.email,
                  '有人想赠送您一本书',
                  'email/satisify_wish.html',
                  wish=wish,
                  gift=gift)
        flash('已像他/她发送了一封邮件,如果对方愿意接受您的赠送,您将收到一个鱼漂')
    return redirect(url_for('web.book_detail', isbn=wish.isbn))
Exemple #32
0
def satisfy_wish(wish_id):
    wish = Wish.query.get_or_404(wish_id)
    gift = Gift.query.filter_by(user_id=current_user.id,
                                isbn=wish.isbn).first()
    if not gift:
        flash('你还没有上传此书, 请点击"加入到赠送清单"添加此书, 添加前, 请确保自己可以赠送此书')
    else:
        send_mail(wish.user.email,
                  '有人向送你一本书',
                  'email/satisfy_wish',
                  wish=wish,
                  gift=gift)
        flash('已向他/她发送了一封邮件, 如果他/她愿意接受你的赠送, 你将收到一个鱼漂')
    return redirect(url_for('book.detail', isbn=wish.isbn))
Exemple #33
0
def forget_password():
    form = ClientForm().validate_for_api()
    user = User.query.filter_by(email=form.account.data).first_or_404()
    if user:
        token = create_token(email=form.account.data,
                             type=form.type.data.value,
                             secret=form.secret.data)
        send_mail(form.account.data,
                  '重置密码',
                  'email/reset_password.html', [],
                  user=user,
                  token=token)

    return Success()
Exemple #34
0
def satisfy_wish(wid):
    """
        向想要这本书的人发送一封邮件
        注意,这个接口需要做一定的频率限制
        这接口比较适合写成一个ajax接口
    """
    wish = Wish.query.get_or_404(wid)
    gift = Gift.query.filter_by(uid=current_user.id, isbn=wish.isbn).first()
    if not gift:
        flash('你还没有上传此书,请点击“加入到赠送清单”添加此书。添加前,请确保自己可以赠送此书')
    else:
        send_mail(wish.user.email, '有人想送你一本书', 'email/satisify_wish.html', wish=wish,
                   gift=gift)
        flash('已向他/她发送了一封邮件,如果他/她愿意接受你的赠送,你将收到一个鱼漂')
    return redirect(url_for('web.book_detail', isbn=wish.isbn))
Exemple #35
0
def send_drift(gid):
    current_gift = Gift.query.first_or_404()

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

    can = current_user.can_send_drift()
    if not can:
        return render_template('not_enough_beans.html', beans=current_user.beans)
    form = DriftForm(request.form)
    if request.method == 'POST' and form.validate():
        save_drift(form, current_gift)
        send_mail(current_gift.user.email, '有人想要一本书', 'email/get_gift.html',
                  wisher=current_user,
                  gift=current_gift)
        return redirect(url_for('web.pending'))
    gifter = current_gift.user.summary
    return render_template('drift.html', gifter=gifter, user_beans=current_user.beans, form=form)