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)
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')
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)