def replay_alias(_id): """ Allows a user to set a custom name for a replay. """ # Get replay _replay = Replay.query.filter(Replay.id == _id).first_or_404() # Get existing or create new alias current_alias = ReplayAlias.query.filter(ReplayAlias.replay_id == _id, ReplayAlias.user_id == current_user.get_id()).first() or ReplayAlias(_id, current_user.get_id()) # Get form and set default value alias_form = AliasForm(current_alias) # If form validates, save alias if alias_form.validate_on_submit(): current_alias.alias = alias_form.alias.data.strip() # Strip any leading or trailing whitespace; we don't like them white folk. # If the alias evalutes to true we can save it, otherwise we delete the alias object (user is blanking their alias) if current_alias.alias: flash("Set alias for replay {} to \u201C{}\u201D.".decode('unicode-escape').format(_replay.id, current_alias.alias), "success") db.session.add(current_alias) else: flash("Removed alias for replay {}.".format(_replay.id), "success") db.session.delete(current_alias) db.session.commit() return redirect(request.referrer or url_for("index")) # Render form return render_template('replays/alias.html', replay=_replay, form=alias_form)
def replay_alias(_id): """ Allows a user to set a custom name for a replay. """ # Get replay _replay = Replay.query.filter(Replay.id == _id).first_or_404() # Get existing or create new alias current_alias = ReplayAlias.query.filter( ReplayAlias.replay_id == _id, ReplayAlias.user_id == current_user.get_id()).first() or ReplayAlias( _id, current_user.get_id()) # Get form and set default value alias_form = AliasForm(current_alias) # If form validates, save alias if alias_form.validate_on_submit(): current_alias.alias = alias_form.alias.data.strip( ) # Strip any leading or trailing whitespace; we don't like them white folk. # If the alias evalutes to true we can save it, otherwise we delete the alias object (user is blanking their alias) if current_alias.alias: flash( "Set alias for replay {} to \u201C{}\u201D.".decode( 'unicode-escape').format(_replay.id, current_alias.alias), "success") db.session.add(current_alias) else: flash("Removed alias for replay {}.".format(_replay.id), "success") # If this object doesn't exist in the database, then all we need to do is if current_alias in db.session.new: db.session.expunge(current_alias) else: try: db.session.delete(current_alias) except InvalidRequestError: pass # We tried to delete an object not in the database, whoops. db.session.commit() return redirect(request.referrer or url_for("index")) # Render form return render_template('replays/alias.html', replay=_replay, form=alias_form)