def edit_artist_submission(artist_id): # DONE: take values from the form submitted, and update existing # artist record with ID <artist_id> using the new attributes artist = Artists.query.get(artist_id) genre_exist = not (Genres.query.filter(Genres.name.ilike(\ request.form['genres'])).count() == 0) if not genre_exist: # adding the genre to session if entered genre is not in database add_genre = Genres(name=request.form['genres'].title()) db.session.add(add_genre) artist.name = request.form['name'] artist.city = request.form['city'] artist.state = request.form['state'] artist.phone = request.form['phone'] try: db.session.commit() except: db.session.rollback() flash('Something went wrong') finally: db.session.close() return redirect(url_for('show_artist', artist_id=artist_id))
def create_venue_submission(): # DONE: insert form data as a new Venue record in the db, instead # DONE: modify data to be the data object returned from db insertion # on successful db insert, flash success # DONE: on unsuccessful db insert, flash an error instead. # e.g., flash('An error occurred. Venue ' + data.name + ' could not be listed.') # see: http://flask.pocoo.org/docs/1.0/patterns/flashing/ area_exist = not (Areas.query.filter( Areas.state.ilike(request.form['state']), Areas.city.ilike(request.form['city'])).count() == 0) if not area_exist: # adding the area to session if entered area is not in database add_area = Areas(city=request.form['city'].title(), state=request.form['state'].upper()) db.session.add(add_area) genre_exist = not (Genres.query.filter(Genres.name.ilike(\ request.form['genres'])).count() == 0) if not genre_exist: # adding the genre to session if entered genre is not in database add_genre = Genres(name=request.form['genres'].title()) db.session.add(add_genre) new_venue_area = Areas.query.filter(Areas.city.ilike(request.form['city']),\ Areas.state.ilike(request.form['state'])).first() new_venue_genre = Genres.query.filter( Genres.name.ilike(request.form['genres'])).all() error = False try: add_venue = Venues(name=request.form['name'], address=request.form['address'], phone=request.form['phone'], facebook_link=request.form['facebook_link'], genres=new_venue_genre, area=new_venue_area) db.session.add(add_venue) db.session.commit() except: error = True db.session.rollback() finally: db.session.close() if error: flash( f'An error occurred. Venue {request.form["name"]} could not be listed.' ) else: flash(f'Venue {request.form["name"]} is successfully listed') return render_template('pages/home.html')
def change_genres(n): form = AddGenres() form.date.data = dt.date.today() if request.method == "GET": db_sess = Session() genres = db_sess.query(Genres).filter(Genres.id == n).first() db_sess.close() form.title.data = genres.title form.text.data = genres.text form.date.data = genres.date if form.validate_on_submit(): genres = Genres() genres.id = n genres.title = form.title.data text = form.text.data genres.text = text.replace('\n', '|') genres.date = form.date.data genres.user_id = current_user.get_id() db.session.merge(genres) db.session.commit() flash('News has been added') return redirect('/genres') return render_template('add_genres.html', form=form)
def create_artist_submission(): # called upon submitting the new artist listing form # DONE: insert form data as a new Artist record in the db, instead # DONE: modify data to be the data object returned from db insertion genre_exist = not (Genres.query.filter(Genres.name.ilike(\ request.form['genres'])).count() == 0) if not genre_exist: # adding the genre to session if entered genre is not in database add_genre = Genres(name=request.form['genres'].title()) db.session.add(add_genre) new_artist = Artists(name=request.form['name'], city=request.form['city'], state=request.form['state'], phone=request.form['phone'], facebook_link=request.form['facebook_link']) genres = Genres.query.filter_by(name=request.form['genres']).all() new_artist.genres = genres error = False try: db.session.add(new_artist) db.session.commit() db.session.refresh(new_artist) except: error = True db.session.rollback() flash(f'An error occurred. Artist {request.form["name"]}'\ f'could not be listed') finally: db.session.close() if not error: flash(f'Artist {request.form["name"]} was successfully listed!') # on successful db insert, flash success # DONE: on unsuccessful db insert, flash an error instead. # e.g., flash('An error occurred. Artist ' + data.name + ' could not be listed.') if error: return render_template('pages/home.html') else: return redirect(url_for('show_artist', artist_id=new_artist.id))
def edit_venue_submission(venue_id): # DONE: take values from the form submitted, and update existing # venue record with ID <venue_id> using the new attributes area_exist = not (Areas.query.filter( Areas.state.ilike(request.form['state']), Areas.city.ilike(request.form['city'])).count() == 0) if not area_exist: # adding the area to session if entered area is not in database add_area = Areas(city=request.form['city'].title(), state=request.form['state'].upper()) db.session.add(add_area) genre_exist = not (Genres.query.filter(Genres.name.ilike(\ request.form['genres'])).count() == 0) if not genre_exist: # adding the genre to session if entered genre is not in database add_genre = Genres(name=request.form['genres'].title()) db.session.add(add_genre) venue = Venues.query.get(venue_id) venue.name = request.form['name'] venue.address = request.form['address'] venue.phone = request.form['phone'] genre = Genres.query.filter_by(name=request.form['genres']).first() venue.genres = [genre] areaa = Areas.query.filter(Areas.state.ilike(request.form['state']), Areas.city.ilike(request.form['city'])).first() venue.area = areaa venue.facebook_link = request.form['facebook_link'] try: db.session.commit() except: db.session.rollback() flash('Something went wrong') finally: db.session.close() return redirect(url_for('show_venue', venue_id=venue_id))
def populate_data_into_db( itunes_result ): # this is my list # "song" represents each search thing. for song in itunes_result: if not Genres.query.filter_by(genre=song['primaryGenreName']).first(): # add new genre using Genres class new_genre = Genres(genre=song['primaryGenreName']) db.session.add(new_genre) db.session.commit() # if genre exists in table, check if there is a song in that genre in the Songs table if Songs.query.filter_by(name=song["trackName"]).first(): continue else: # add new song using Songs class find_id = Genres.query.filter_by( genre=song['primaryGenreName']).first().id new_song = Songs(name=song['trackName'], artist=song['artistName'], album=song['collectionName'], genre_id=find_id) db.session.add(new_song) db.session.commit()
def add_genres(): form = AddGenres() form.date.data = dt.date.today() if form.validate_on_submit(): title = form.title.data text = form.text.data text = text.replace('\n', '|') id = current_user.get_id() date = form.date.data f = form.photo.data filename = secure_filename(f.filename) f.save(os.path.join('static', 'images', filename)) genres = Genres( photo=filename, date=date, title=title, text=text, user_id=id) db.session.add(genres) db.session.commit() flash('Genres has been added') return render_template('add_genres.html', form=form)
def post(self, request): name = request.POST['name'] genre = request.POST['genre'] Genres(name=name, genre=genre).save() return HttpResponseRedirect(reverse('genres_show'))