Example #1
0
def playlists(username):
    """Show playlists and create playlists."""
    user = User.query.filter_by(username=username).first()

    if not user: abort(404, f"{username} not found")

    form = PlaylistForm()

    if user and g.user and user.id is g.user.id:
        if form.validate_on_submit():
            if user.id is g.user.id:
                playlist = Playlist(user_id=user.id, name=form.name.data, description=form.description.data)

                user.playlists.append(playlist)
                db.session.commit()

                return redirect(f'/u/{user.username}/playlists/{playlist.id}')
            else:
                flash('Sign up to make playlsits', 'light')

                return redirect('/sign-up')
    else:
        form = False

    return render_template('playlist/playlists.html', form=form, user=user)
Example #2
0
def add_playlist():
    """Handle add-playlist form:

    - if form not filled out or invalid: show form
    - if valid: add playlist to SQLA and redirect to list-of-playlists
    """

    # ADD THE NECESSARY CODE HERE FOR THIS ROUTE TO WORK
    form = PlaylistForm()
    if request.method == "GET":

        return render_template('new_playlist.html', form=form)

    elif request.method == "POST":

        if form.validate_on_submit():

            name = form.name.data
            description = form.description.data

            playlist = Playlist(name=name, description=description)

            db.session.add(playlist)
            db.session.commit()

            return redirect('/playlists')

        else:

            return render_template('new_playlist.html', form=form)

    else:

        flash('something went wrong')
        return redirect('/playlists')
Example #3
0
def add_playlist():
    """Handle add-playlist form:

    - if form not filled out or invalid: show form
    - if valid: add playlist to SQLA and redirect to list-of-playlists
    """

    form = PlaylistForm()

    if form.validate_on_submit():
        name = form.name.data
        description = form.description.data
        new_playlist = Playlist(name=name, description=description)
        db.session.add(new_playlist)

        try:
            db.session.commit()
        except IntegrityError as e:
            if 'name' in e.orig.pgerror:
                form.name.errors.append(
                    'Playlist name already exists. Please choose another.')
                return render_template('new_playlist.html', form=form)

        return redirect('/playlists')

    return render_template('new_playlist.html', form=form)
Example #4
0
def add_playlist():
    """Handle add-playlist form:

    - if form not filled out or invalid: show form
    - if valid: add playlist to SQLA and redirect to list-of-playlists
    """

    form = PlaylistForm()

    if form.validate_on_submit():
        name = form.name.data
        description = form.description.data

        new_playlist = Playlist(name=name, description=description)

        db.session.add(new_playlist)

        try:
            db.session.commit()
        except IntegrityError:
            form.name.errors.append(
                'Playlist name taken. Please pick another.')
            return render_template('new_playlist.html', form=form)

        flash('Successfully created new playlist!', "success")
        return redirect('/playlists')

    return render_template('new_playlist.html', form=form)
def add_playlist():
    """Handle add-playlist form:

    - if form not filled out or invalid: show form
    - if valid: add playlist to SQLA and redirect to list-of-playlists
    """

    form = PlaylistForm()
    if form.validate_on_submit():
        name = form.name.data
        desc = form.description.data

        # Check if input is empty
        if name.isspace():
            flash("Platlist Name is required", "danger")
            return redirect("/playlists/add")

        playlist = Playlist(name=name, description=desc)

        db.session.add(playlist)
        db.session.commit()

        flash("Playlist Added!", "success")
        return redirect("/playlists")

    return render_template("new_playlist.html", form=form)
Example #6
0
def add_playlist():
    """Handle add-playlist form:

    - if form not filled out or invalid: show form
    - if valid: add playlist to SQLA and redirect to list-of-playlists
    """

    # ADD THE NECESSARY CODE HERE FOR THIS ROUTE TO WORK

    form = PlaylistForm()

    # if the CSRF token is validated after the form is submitted
    if form.validate_on_submit():
        name = form.name.data
        description = form.description.data

        # Create a new playlist instance
        new_playlist = Playlist(name=name, description=description or None)
        db.session.add(new_playlist)

        try:
            db.session.commit()
            flash("Playlist created!")
            return redirect('/playlists')
        except IntegrityError:
            form.name.errors.append(
                "That playlist name is taken. Please choose another name.")

    return render_template('new_playlist.html', form=form)
Example #7
0
def new_playlist():
    """Show new playlist form, handle form submission. Redirect to my playlists"""
    # If no user logged in, flash error message and redirect them to login page
    if not g.user:
        flash('You must be logged in to create a playlist!', 'danger')
        return redirect('/login')

    else:
        form = PlaylistForm()

        u_playlists = [playlist.name for playlist in g.user.playlists]

        # If form is submitted:
        if form.validate_on_submit():
            # import pdb
            # pdb.set_trace()
            # save playlist to DB, redirect to user's playlist page
            if form.name.data not in u_playlists:
                playlist = Playlist(name=form.name.data,
                                    description=form.description.data,
                                    user_id=g.user.id)
                db.session.add(playlist)
                db.session.commit()
                return redirect(f'/users/{g.user.id}/playlists')
            else:
                flash('You already have a playlist with that name', 'danger')
                return render_template('new_playlist.html',
                                       user=g.user,
                                       form=form)

        else:
            # show new playlist form:
            return render_template('new_playlist.html', user=g.user, form=form)
Example #8
0
def update_playlist(playlist_id):
    """Show update form and process it."""
    playlist = Playlist.query.get(playlist_id)
    if "user_id" not in session or playlist.user_id != session['user_id']:
        flash("You must be logged in to view!")
        return redirect("/login")
    form = PlaylistForm(obj=playlist)
    if form.validate_on_submit():
        playlist.name = form.name.data
        db.session.commit()
        return redirect(f"/users/profile/{session['user_id']}")
    return render_template("/playlist/edit.html", form=form, playlist=playlist)
Example #9
0
def add_playlist():
    """Handle add-playlist form:

    - if form not filled out or invalid: show form
    - if valid: add playlist to SQLA and redirect to list-of-playlists
    """
    form = PlaylistForm()

    if form.validate_on_submit():
        Playlist.create_playlist(form)
        return redirect(f"/playlists")

    return render_template('new_playlist.html', form=form)
Example #10
0
def add_playlist():
    """Handle add-playlist form:

    - if form not filled out or invalid: show form
    - if valid: add playlist to SQLA and redirect to list-of-playlists
    """

    form = PlaylistForm()
    if form.validate_on_submit():
        playlist = Playlist(name=form.name.data, description=form.description.data)
        db.session.add(playlist)
        db.session.commit()
        return redirect("/playlists")
    return render_template("new_playlist.html", form=form)
Example #11
0
def add_playlist():
    """Handle add-playlist form."""

    form = PlaylistForm()

    if form.validate_on_submit():
        name = form.name.data
        description = form.description.data
        new_playlist = Playlist(name=name, description=description)
        db.session.add(new_playlist)
        db.session.commit()
        return redirect("/playlists")

    return render_template("new_playlist.html", form=form)
Example #12
0
def add_playlist():
    """Handle add-playlist form:

    - if form not filled out or invalid: show form
    - if valid: add playlist to SQLA and redirect to list-of-playlists
    """
    form = PlaylistForm()
    if form.validate_on_submit():
        name = request.form['name']
        description = request.form['description']
        playlist = Playlist(name=name, description=description)
        db.session.add(playlist)
        db.session.commit()
        return redirect('/playlists')
    else:
        return render_template('new_playlist.html', form=form)
Example #13
0
def add_playlist():
    """Handle add-playlist form:

    - if form not filled out or invalid: show form
    - if valid: add playlist to SQLA and redirect to list-of-playlists
    """
    # ADD THE NECESSARY CODE HERE FOR THIS ROUTE TO WORK
    form = PlaylistForm()

    if form.validate_on_submit():
        playlist = Playlist()
        form.populate_obj(playlist)
        db.session.add(playlist)
        db.session.commit()
        return redirect(url_for('show_all_playlists'))

    return render_template("new_playlist.html", form=form)
Example #14
0
def add_playlist():
    """Handle add-playlist form:

    - if form not filled out or invalid: show form
    - if valid: add playlist to SQLA and redirect to list-of-playlists
    """
    form = PlaylistForm()

    if form.validate_on_submit():
        name = form.name.data
        description = form.description.data

        new_playlist = Playlist(name=name, description=description)
        db.session.add(new_playlist)
        db.session.commit()
        flash("Playlist created successfully", "success")
        return redirect('/playlists')
    return render_template('new_playlist.html', form=form)
Example #15
0
def add_playlist():
    """Handle add-playlist form:

    - if form not filled out or invalid: show form
    - if valid: add playlist to SQLA and redirect to list-of-playlists
    """

    form = PlaylistForm()
    if form.validate_on_submit():
        data = {k: v for k, v in form.data.items() if k != 'csrf_token'}
        new_playlist = Playlist(**data)
        db.session.add(new_playlist)
        db.session.commit()
        flash(f"{new_playlist.name} has been added!", 'success')
        return redirect('/playlists')

    else:
        return render_template('new_playlist.html', form=form)
Example #16
0
def add_playlist():
    """Handle add-playlist form:

    - if form not filled out or invalid: show form
    - if valid: add playlist to SQLA and redirect to list-of-playlists
    """

    # ADD THE NECESSARY CODE HERE FOR THIS ROUTE TO WORK
    form = PlaylistForm()
    if form.validate_on_submit():
        name = form.name.data
        description = form.description.data

        new_playlist = Playlist(name=name, description=description)
        db.session.add(new_playlist)
        db.session.commit()
        return redirect("/playlists")

    return render_template("new_playlist.html", form=form)
Example #17
0
def add_playlist():
    """Handle add-playlist form:

    - if form not filled out or invalid: show form
    - if valid: add playlist to SQLA and redirect to list-of-playlists
    """

    form = PlaylistForm()

    if form.validate_on_submit():
        data = { key: val for key, val in form.data.items() if key != "csrf_token" }
        playlist = Playlist(**data)

        db.session.add(playlist)
        db.session.commit()

        return redirect("/playlists")

    return render_template("new_playlist.html", form=form)
Example #18
0
def add_playlist():
    """Handle add-playlist form:

    - if form not filled out or invalid: show form
    - if valid: add playlist to SQLA and redirect to list-of-playlists
    """
    form = PlaylistForm()

    if form.validate_on_submit():
        data = {k: v for k, v in form.data.items() if k != "csrf_token"}
        new_playlist = Playlist(**data)
        # new_pet = Pet(name=form.name.data, age=form.age.data, ...)
        db.session.add(new_playlist)
        db.session.commit()
        flash(f"{new_playlist.name} added.")
        return redirect('/playlists')

    else:
        # re-present form for editing
        return render_template("new_playlist.html", form=form)
Example #19
0
def add_playlist():
    """Handle add-playlist form:

    - if form not filled out or invalid: show form
    - if valid: add playlist to SQLA and redirect to list-of-playlists
    """

    form = PlaylistForm()

    if form.validate_on_submit():
        name = form.name.data
        description = form.description.data

        playlist = Playlist(name=name, description=description)

        db.session.add(playlist)
        db.session.commit()

        flash('Successfully create a playlist!', 'success')
        return redirect(url_for('show_playlist', playlist_id=playlist.id))
    else:
        return render_template('new_playlist.html', form=form)
Example #20
0
def add_playlist():
    """Handle add-playlist form:

    - if form not filled out or invalid: show form
    - if valid: add playlist to SQLA and redirect to list-of-playlists
    """

    form = PlaylistForm()
    if form.validate_on_submit():
        playlist = Playlist(name=form.name.data,
                            description=form.description.data)
        if form.name.data.isspace():
            form.name.errors.append('Please enter a name for this playlist')
            return render_template('new_playlist.html', form=form)
        if form.description.data.isspace():
            form.description.errors.append(
                'Please enter an description for this song')
            return render_template('new_playlist.html', form=form)
        db.session.add(playlist)
        db.session.commit()
        return redirect('/playlists')
    return render_template('new_playlist.html', form=form)
Example #21
0
def add_playlist():
    print(request.form)
    """Handle add-playlist form:

    - if form not filled out or invalid: show form
    - if valid: add playlist to SQLA and redirect to list-of-playlists
    """
    form = PlaylistForm()
    if form.validate_on_submit():
        name = form.name.data
        description = form.description.data
        flash(
            f"Created new playlist: name is {name}, description is {description}"
        )
        ps = Playlist(name=name, description=description)

        db.session.add(ps)
        # ps = Playlist(name=name, description=description)
        db.session.commit()
        return redirect('/')
    else:
        return render_template('new_playlist.html', form=form)
Example #22
0
def add_playlist():
    """Handle add-playlist form:

    - if form not filled out or invalid: show form
    - if valid: add playlist to SQLA and redirect to list-of-playlists
    """

    form = PlaylistForm()

    if form.validate_on_submit():  #csrf & is POST
        name = form.name.data
        description = form.description.data

        playlist = Playlist(name=name, description=description)

        db.session.add(playlist)
        db.session.commit()

        flash(f"Playlist created!")
        return redirect(f'/playlists')

    else:
        return render_template("new_playlist.html", form=form)
Example #23
0
def profile(id):
    """Example hidden page for logged-in users only."""

    # raise 'here'
    if "user_id" not in session or id != session['user_id']:
        flash("You must be logged in to view!")
        return redirect("/login")
    else:
        id = session["user_id"]
        user = User.query.get_or_404(id)
        form = PlaylistForm()
        user = User.query.get_or_404(id)
        playlists = Playlist.query.filter_by(user_id=id).all()
        if form.validate_on_submit():
            name = form.name.data
            new_playlist = Playlist(name=name, user_id=session['user_id'])
            db.session.add(new_playlist)
            db.session.commit()
            playlists.append(new_playlist)
            return redirect(f"/users/profile/{id}")
        return render_template("users/profile.html",
                               playlists=playlists,
                               form=form,
                               user=user)