Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@Porter97
Last active March 5, 2020 14:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Porter97/0bbee6c5e833a8924793dd250ae0a178 to your computer and use it in GitHub Desktop.
Save Porter97/0bbee6c5e833a8924793dd250ae0a178 to your computer and use it in GitHub Desktop.
#...
from ..decorators import admin_required, permission_required
#...
@main.route('/follow/<username>')
@login_required
@permission_required(Permission.FOLLOW)
def follow(username):
user = User.query.filter_by(username=username).first()
if user is None:
flash('Invalid user.')
return redirect(url_for('.index'))
if current_user.is_following(user):
flash('You are already following %s.' % user.username)
return redirect(url_for('.user', username=username))
current_user.follow(user)
db.session.commit()
flash('You are now following %s.' % user.username)
return redirect(url_for('.user', username=username))
@main.route('/unfollow/<username>')
@login_required
@permission_required(Permission.FOLLOW)
def unfollow(username):
user = User.query.filter_by(username=username).first()
if user is None:
flash('Invalid user.')
return redirect(url_for('.index'))
if not current_user.is_following(user):
flash('You are not following %s.' % user.username)
return redirect(url_for('.user', username=username))
current_user.unfollow(user)
db.session.commit()
flash('You are no longer following %s.' % user.username)
return redirect(url_for('.user', username=username))
@main.route('/follow-collection/<int:id>')
@login_required
@permission_required(Permission.FOLLOW)
def follow_collection(id):
collection = Collection.query.filter_by(id=id).first()
if collection is None:
flash('Invalid collection.')
return redirect(url_for('.index'))
if current_user.is_following_collection(collection):
flash('Your are already following %s.' % collection.name)
return redirect(url_for('.collection', id=id))
current_user.follow_collection(collection)
db.session.commit()
flash('You are now following %s.' % collection.name)
return redirect(url_for('.collection', id=id))
@main.route('/unfollow-collection/<int:id>')
@login_required
@permission_required(Permission.FOLLOW)
def unfollow_collection(id):
collection = Collection.query.filter_by(id=id).first()
if collection is None:
flash('Invalid collection.')
return redirect(url_for('.index'))
if not current_user.is_following_collection(collection):
flash('You are not following this collection')
current_user.unfollow_collection(collection)
db.session.commit()
flash('You are not following %s anymore.' % collection.name)
return redirect(url_for('.collection', id=collection.id))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment