Beispiel #1
0
def home():
    page = request.args.get('page', 1, type=int)
    posts = Post.query.order_by(Post.date_posted.desc()).\
        paginate(per_page=4, page=page)
    return render_template('home.html',
                           posts=posts,
                           title='RoyRuach Home',
                           num_registered=User.get_num_registered())
Beispiel #2
0
def user_reminders():
    page = request.args.get('page', 1, type=int)
    user = User.query.filter_by(username=current_user.username).first_or_404()
    reminders = Reminder.query.filter_by(author=user).order_by(
        Reminder.date_created.desc()).paginate(per_page=5, page=page)
    return render_template('user_reminders.html',
                           reminders=reminders,
                           user=user,
                           num_registered=User.get_num_registered())
Beispiel #3
0
def user_posts(username):
    page = request.args.get('page', 1, type=int)
    user = User.query.filter_by(username=username).first_or_404()
    posts = Post.query.filter_by(author=user).order_by(
        Post.date_posted.desc()).paginate(per_page=4, page=page)
    return render_template('user_posts.html',
                           posts=posts,
                           user=user,
                           num_registered=User.get_num_registered())
Beispiel #4
0
def reset_request():
    if current_user.is_authenticated:
        return redirect(url_for('main.home'))
    form = RequestResetForm()
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data).first()
        send_reset_email(user)
        flash(f'Reset password email was sent to {form.email.data}', 'info')
        return redirect(url_for('users.login'))
    return render_template('reset_request.html',
                           form=form,
                           title='Reset Password',
                           num_registered=User.get_num_registered())
Beispiel #5
0
def new_post():
    post_form = PostForm()
    if post_form.validate_on_submit():
        post = Post(title=post_form.title.data,
                    content=post_form.content.data,
                    author=current_user)
        db.session.add(post)
        db.session.commit()
        flash('Post was created', 'success')
        return redirect(url_for('main.home'))
    return render_template('create_post.html',
                           title='New Post',
                           form=post_form,
                           legend='New Post',
                           num_registered=User.get_num_registered())
Beispiel #6
0
def new_reminder():
    form = ReminderForm()
    if form.validate_on_submit():
        reminder_object = Reminder(title=form.title.data,
                                   duration_sec=form.duration_sec.data,
                                   author=current_user)
        db.session.add(reminder_object)
        db.session.commit()
        flash('reminder was created', 'success')
        return redirect(
            url_for('remainders.reminder', reminder_id=reminder_object.id))
    return render_template('create_reminder.html',
                           title='New reminder',
                           form=form,
                           legend='New reminder',
                           num_registered=User.get_num_registered())
Beispiel #7
0
def login():
    if current_user.is_authenticated:
        return redirect(url_for('main.home'))
    login_form = LoginForm()
    if login_form.validate_on_submit():
        user = User.query.filter_by(email=login_form.email.data).first()
        if user and bcrypt.check_password_hash(user.password,
                                               login_form.password.data):
            login_user(user, remember=login_form.remember.data)
            next_page = request.args.get('next')
            return redirect(next_page) if next_page else redirect('home')
        else:
            flash(f'Check email or password', 'danger')
    return render_template('login.html',
                           title='Login',
                           form=login_form,
                           num_registered=User.get_num_registered())
Beispiel #8
0
def register():
    if current_user.is_authenticated:
        return redirect(url_for('main.home'))
    register_form = RegistrationForm()
    if register_form.validate_on_submit():
        hashed_password = bcrypt.generate_password_hash(
            register_form.password.data).decode('utf-8')
        user = User(username=register_form.username.data,
                    email=register_form.email.data,
                    password=hashed_password)
        db.session.add(user)
        db.session.commit()
        flash(f'Account created for {register_form.username.data}!', 'success')
        return redirect(url_for('users.login'))
    return render_template('register.html',
                           title='Register',
                           form=register_form,
                           num_registered=User.get_num_registered())
Beispiel #9
0
def reset_token(token):
    if current_user.is_authenticated:
        return redirect(url_for('main.home'))
    user = User.query.filter_by(id=User.verify_reset_token(token)).first()
    if not user:
        flash('Invalid or expired token ', 'warning')
        return redirect(url_for('users.reset_request'))
    form = ResetPasswordForm()
    if form.validate_on_submit():
        hashed_password = bcrypt.generate_password_hash(
            form.password.data).decode('utf-8')
        user.password = hashed_password
        db.session.commit()
        flash(f'Password for {user.username} was updated!', 'success')
        return redirect(url_for('users.login'))
    return render_template('reset_token.html',
                           form=form,
                           num_registered=User.get_num_registered())
Beispiel #10
0
def update_post(post_id):
    post_object = Post.query.get_or_404(post_id)
    if post_object.author != current_user:
        abort(403)
    post_form = PostForm()
    if post_form.validate_on_submit():
        post_object.title = post_form.title.data
        post_object.content = post_form.content.data
        db.session.commit()
        flash('Post was updated', 'success')
        return redirect(url_for('posts.post', post_id=post_object.id))
    elif request.method == 'GET':
        post_form.title.data = post_object.title
        post_form.content.data = post_object.content
    return render_template('create_post.html',
                           title='Update Post',
                           form=post_form,
                           legend='Update Post',
                           num_registered=User.get_num_registered())
Beispiel #11
0
def about():
    abouts = [{
        'author':
        'Roy Ruach',
        'title':
        'Blog and Reminders home page',
        'content':
        'This page was created by Roy Ruach using python and '
        'flask.\nThe site was created in assistance with Corey '
        'Schafer Youtube flask tutorial.\nUsing this page you '
        'can register with your email and send yourself future'
        ' notifications via E-mail',
        'date_posted':
        'October 26, 2020'
    }]
    return render_template('about.html',
                           posts=abouts,
                           title='About Page',
                           num_registered=User.get_num_registered())
Beispiel #12
0
def update_reminder(reminder_id):
    reminder_object = Reminder.query.get_or_404(reminder_id)
    if reminder_object.author != current_user:
        abort(403)
    form = ReminderForm()
    if form.validate_on_submit():
        reminder_object.title = form.title.data
        reminder_object.duration_sec = form.duration_sec.data
        db.session.commit()
        flash('reminder was updated', 'success')
        return redirect(
            url_for('remainders.reminder', reminder_id=reminder_object.id))
    elif request.method == 'GET':
        form.title.data = reminder_object.title
        form.duration_sec.data = reminder_object.duration_sec
    return render_template('create_reminder.html',
                           title='Update reminder',
                           form=form,
                           legend='Update reminder',
                           num_registered=User.get_num_registered())
Beispiel #13
0
def account():
    update_account_form = UpdateAccountForm()
    if request.method == 'GET':
        update_account_form.username.data = current_user.username
        update_account_form.email.data = current_user.email
    elif update_account_form.validate_on_submit():
        if update_account_form.picture.data:
            picture_file = save_picture(update_account_form.picture.data)
            current_user.image_file = picture_file
        current_user.username = update_account_form.username.data
        current_user.email = update_account_form.email.data
        db.session.commit()
        flash('your account has been updated', 'success')
        return redirect(url_for('users.account'))
    image_file = url_for('static',
                         filename='profile_pics/' + current_user.image_file)
    return render_template('account.html',
                           title='Account',
                           image_file=image_file,
                           form=update_account_form,
                           num_registered=User.get_num_registered())
Beispiel #14
0
def post(post_id):
    post_object = Post.query.get_or_404(post_id)
    return render_template('post.html',
                           title=post_object.title,
                           post=post_object,
                           num_registered=User.get_num_registered())
Beispiel #15
0
def reminder(reminder_id):
    reminder_object = Reminder.query.get_or_404(reminder_id)
    return render_template('reminder.html',
                           title=reminder_object.title,
                           reminder=reminder_object,
                           num_registered=User.get_num_registered())