def create_artist_submission(): form = ArtistForm() if form.validate_on_submit(): try: artist = Artist() artist.name = request.form['name'] artist.city = request.form['city'] artist.state = request.form['state'] artist.phone = request.form['phone'] artist.image_link = request.form['image_link'] artist.genres = request.form.getlist('genres') artist.facebook_link = request.form['facebook_link'] artist.website = request.form['website'] artist.seeking_venue = True if 'seeking_venue' in request.form else False artist.seeking_description = request.form['seeking_description'] db.session.add(artist) db.session.commit() except Exception as e: db.session.rollback() flash( 'An error occurred. Artist {} Could not be listed!, {}'.format( request.form['name'], str(e))) finally: db.session.close() flash('Artist {} was successfully listed!'.format( request.form['name'])) return redirect(url_for('artists')) return render_template('forms/new_artist.html', form=form)
def create_artist_submission(): """ The function create new artist with properties filled into Artist Form and insert new artist to database Returns: Render Home Page with flash for successed or faild """ New_Artist_Form = ArtistForm(request.form) try: New_Artist = Artist() New_Artist.name = New_Artist_Form.name.data New_Artist.genres = ','.join(New_Artist_Form.genres.data) New_Artist.city = New_Artist_Form.city.data New_Artist.state = New_Artist_Form.state.data New_Artist.phone = New_Artist_Form.phone.data New_Artist.facebook_link = New_Artist_Form.facebook_link.data if(not ValidPhoneNumber(New_Artist_Form.phone.data)): raise ValueError db.session.add(New_Artist) db.session.commit() flash('Artist ' + request.form['name'] + ' was successfully listed!') except ValueError: db.session.rollback() flash('Incorrect phone number format xxx-xxx-xxxx (' + request.form['phone']+ '), please try again.') except: db.session.rollback() flash('An error occurred. Artist ' + request.form['name'] + ' could not be listed.') finally: db.session.close() return render_template('pages/home.html')
def create_artist_submission(): form = ArtistForm() error = False if form.validate_on_submit(): try: artist = Artist() form.populate_obj(artist) genresList = request.form.getlist('genres') artist.genres = ', '.join(genresList) db.session.add(artist) # to return users to the new artist page, flush the session, and store the id in another variable db.session.flush() artist_id = artist.id db.session.commit() except: error = True db.session.rollback() print(sys.exc_info()) finally: db.session.close() if error: flash( 'Oops! Something wrong happened, artist' + str(form.name.data) + ' could not be listed!', 'error') return render_template('pages/home.html') else: flash('Artist ' + str(form.name.data) + ' was listed successfully!') return redirect(url_for('show_artist', artist_id=artist_id)) return render_template('forms/new_artist.html', form=form)
def create_artist_submission(): form = ArtistForm() error = False try: artist = Artist() artist.name = request.form['name'] artist.city = request.form['city'] artist.state = request.form['state'] artist.phone = request.form['phone'] tmp_genres = request.form.getlist('genres') artist.genres = ','.join(tmp_genres) artist.website = request.form['website'] artist.image_link = request.form['image_link'] artist.facebook_link = request.form['facebook_link'] artist.seeking_description = request.form['seeking_description'] db.session.add(artist) db.session.commit() except: error = True db.session.rollback() print(sys.exc_info()) finally: db.session.close() if error: flash('An error occurred. Artist ' + request.form['name'] + ' could not be listed.') else: flash('Artist ' + request.form['name'] + ' was successfully listed!') return render_template('pages/home.html')
def create_artist_submission(): # called upon submitting the new artist listing form # TODO: insert form data as a new Venue record in the db, instead artist = Artist() artist.name = request.form.get('name') artist.city = request.form.get('city') artist.state = request.form.get('state') artist.phone = request.form.get('phone') artist.image_link = request.form.get('image_link') artist.facebook_link = request.form.get('facebook_link') artist.genres = request.form.getlist('genres') try: db.session.add(artist) db.session.commit() except: db.session.rollback() finally: db.session.close() # TODO: modify data to be the data object returned from db insertion # on successful db insert, flash success flash('Artist ' + request.form['name'] + ' was successfully listed!') # TODO: on unsuccessful db insert, flash an error instead. # e.g., flash('An error occurred. Artist ' + data.name + ' could not be listed.') return render_template('pages/home.html')
def create_artist_submission(): # called upon submitting the new artist listing form errorFlag = False try: artist = Artist() submission = request.form artist.city = submission['city'] artist.facebook_link = submission['facebook_link'] artist.genres = submission.getlist('genres') artist.image_link = submission['image_link'] artist.name = submission['name'] artist.phone = submission['phone'] artist.seeking_description = submission['seeking_description'] artist.seeking_venue = True if 'seeking_venue' in submission else False artist.state = submission['state'] artist.website = submission['website'] db.session.add(artist) db.session.commit() except Exception as e: errorFlag = True db.session.rollback() finally: db.session.close() if not errorFlag: # on successful db insert, flash success flash('Artist ' + request.form['name'] + ' was successfully listed!') else: # on unsuccessful db insert, flash an error instead. flash('An error occurred. Artist ' + request.form['name'] + ' could not be listed.') return render_template('pages/home.html')
def create_artist_submission(): # called upon submitting the new artist listing form # TODO: insert form data as a new Venue record in the db, instead # TODO: modify data to be the data object returned from db insertion form = ArtistForm(request.form) try: artist = Artist() artist.name = request.form.get('name') artist.city = request.form.get('city') artist.state = request.form.get('state') artist.phone = request.form.get('phone') artist.genres = form.genres.data artist.image_link = request.form.get('image_link', None) artist.facebook_link = request.form.get('facebook_link', None) artist.website = request.form.get('website', None) artist.seeking_venue = boolean_check(request.form.get('seeking_venue', None)) artist.seeking_description = request.form.get('seeking_description', False) artist.insert() # on successful db insert, flash success flash('Artist ' + request.form['name'] + ' was successfully listed!') except: flash('An error occurred. Artist ' + request.form['name'] + ' could not be listed.') # TODO: on unsuccessful db insert, flash an error instead. # e.g., flash('An error occurred. Venue ' + data.name + ' could not be listed.') return render_template('pages/home.html')
def create_artist_submission(): data = Artist() error = False # called upon submitting the new artist listing form # TODO: insert form data as a new Venue record in the db, instead try: data.name = request.form['name'] data.city = request.form['city'] data.state = request.form['state'] data.phone = request.form['phone'] data.genres = ','.join(request.form.getlist('genres')) data.facebook_link = request.form['facebook_link'] db.session.add(data) db.session.commit() except: error = True db.session.rollback() # TODO: on unsuccessful db insert, flash an error instead. flash('An error occurred. Artist ' + data.name + ' could not be listed.') finally: # on successful db insert, flash success if error == False: flash('Artist ' + request.form['name'] + ' was successfully listed!') return render_template('pages/home.html')
def create_artist_submission(): form = ArtistForm(request.form) new_artist = Artist() new_artist.name = form.name.data new_artist.city = form.city.data new_artist.state = form.state.data new_artist.genres = form.genres.data new_artist.phone = form.phone.data new_artist.facebook_link = form.facebook_link.data new_artist.image_link = form.image_link.data new_artist.website = form.website.data new_artist.seeking_description = form.seeking_description.data new_artist.seeking_talent = form.seeking_talent.data try: db.session.add(new_artist) db.session.commit() # on successful db insert, flash success flash('Artist ' + request.form['name'] + ' was successfully listed!') except: db.session.rollback() # TODO: on unsuccessful db insert, flash an error instead. flash('An error occurred. Artist ' + new_artist.name + ' could not be listed.') finally: db.session.close() return render_template('pages/home.html')
def create_artist_submission(): form = ArtistForm(request.form) try: artist = Artist() form.populate_obj(artist) db.session.add(artist) db.session.commit() flash(' validate Thank You .') except ValueError as e: print(e) flash(' Error You input Invalidate Please Try again .') db.session.rollback() finally: db.session.close() error = False artist = Artist() if (request.form['seeking_description'] != None): artist.seeking_venue = True artist.name = request.form['name'] artist.city = request.form['city'] artist.state = request.form['state'] artist.phone = request.form['phone'] artist.genres = request.form.getlist('genres') artist.website = request.form['website'] artist.seeking_description = request.form['seeking_description'] artist.facebook_link = request.form['facebook_link'] artist.image_link = request.form['image_link'] try: db.session.add(artist) db.session.commit() except: error = True db.session.rollback() #TODO: on unsuccessful db insert, flash an error instead. flash('An error occurred. Venue ' + request.form['name'] + ' could not be listed.') finally: db.session.close() if error: error = True else: flash('Artist ' + request.form['name'] + ' was successfully listed!') return render_template('pages/home.html')
def addArtistData(): artists = Artist.query.all() # only load data if db is empty if (not len(artists)): for defaultArtist in artists_default_data: artist = Artist() artist.city = defaultArtist['city'] artist.facebook_link = defaultArtist['facebook_link'] artist.genres = defaultArtist['genres'] artist.image_link = defaultArtist['image_link'] artist.name = defaultArtist['name'] artist.phone = defaultArtist['phone'] artist.seeking_description = defaultArtist['seeking_description'] artist.seeking_venue = defaultArtist['seeking_venue'] artist.state = defaultArtist['state'] artist.website = defaultArtist['website'] db.session.add(artist) db.session.commit()
def create_artist_submission() -> str: form_data = request.form.to_dict() artist_name = request.form["name"] genres = form_data.pop("genres") if isinstance(genres, str): genres = [genres] artist = Artist(**form_data) artist.genres = Genre.query.filter(Genre.name.in_(genres)).all() try: db.session.add(artist) db.session.commit() flash(f"Artist {artist_name} was successfully listed!") except SQLAlchemyError: db.session.rollback() flash(f"An error occurred. Artist {artist_name} could not be listed.") return render_template("pages/home.html")
def create_artist_submission(): # called upon submitting the new artist listing form error = False try: website = '' seeking_venue = False seeking_description = '' image_link = '' if 'seeking_venue' in request.form: seeking_venue = request.form['seeking_venue'] if 'seeking_description' in request.form: seeking_description = request.form['seeking_description'] if 'website' in request.form: website = request.form['website'] if 'image_link' in request.form: image_link = request.form['image_link'] artist = Artist() artist.name = request.form['name'] artist.city = request.form['city'] artist.state = request.form['state'] artist.phone = request.form['phone'] artist.genres = ','.join(request.form.getlist('genres')) artist.facebook_link = request.form['facebook_link'] artist.image_link = image_link artist.website = website artist.seeking_venue = seeking_venue artist.seeking_description = seeking_description db.session.add(artist) db.session.commit() except Exception as e: error = True print(f'Error ==> {e}') db.session.rollback() finally: db.session.close() if error: flash('An error occurred. Artist ' + request.form['name'] + ' could not be listed.') else: flash('Artist ' + request.form['name'] +' was successfully listed!') return render_template('pages/home.html')
def create_artist_submission(): # called upon submitting the new artist listing form # TODO: insert form data as a new Venue record in the db, instead - DONE # TODO: modify data to be the data object returned from db insertion - DONE # TODO: on unsuccessful db insert, flash an error instead. - DONE # e.g., flash('An error occurred. Artist ' + data.name + ' could not be listed.') form = ArtistForm(request.form, meta={'csrf': False}) if form.validate(): try: artist = Artist() artist.name = request.form.get('name', '') artist.city = request.form.get('city', '') artist.state = request.form.get('state', '') artist.phone = request.form.get('phone', '') artist.image_link = request.form.get('image_link', '') artist.genres = json.dumps(request.form.getlist('genres')) if (request.form.get('seeking_venue', False) == 'y'): artist.seeking_venue = True else: artist.seeking_venue = False artist.seeking_description = request.form.get('seeking_description', '') artist.website = request.form.get('website', '') artist.facebook_link = request.form.get('facebook_link', '') db.session.add(artist) db.session.commit() # on successful db insert, flash success flash('Artist ' + request.form['name'] + ' was successfully listed!') except: db.session.rollback() # on unsuccessful db insert, flash an error flash('An error occurred. Artist ' + artist.name + ' could not be listed.') finally: return render_template('pages/home.html') else: message = [] for field, err in form.errors.items(): message.append(field + ' ' + '|'.join(err)) flash('Errors ' + str(message)) return render_template('pages/home.html')
def create_artist_submission(): error = False form = ArtistForm() try: name = form.name.data if (db.session.query(Artist.name).filter_by(name=name).scalar() is not None): flash('The artist : "' + name + '" already exists', 'error') return render_template('forms/new_artist.html', form=form) form.validate() if (len(form.phone.errors) > 0): flash(','.join(form.phone.errors)) return render_template('forms/new_artist.html', form=form) artist = Artist() artist.name = name artist.city = form.city.data artist.state = form.state.data artist.phone = format_phone(form.phone.data) artist.genres = ','.join(request.form.getlist('genres')) artist.facebook_link = form.facebook_link.data artist.website = form.website.data artist.image_link = form.image_link.data artist.seeking_venues = form.seeking_venues.data artist.seeking_description = form.seeking_description.data db.session.add(artist) db.session.commit() except Exception as e: error = True db.session.rollback() finally: db.session.close() if error: flash( 'An error occured. artist ' + request.form['name'] + ' Could not be listed.', 'error') else: flash('Artist ' + request.form['name'] + ' was successfully listed.') return render_template('pages/home.html')
def create_artist_submission(): error = False try: data = request.form artist = Artist() artist.name = data['name'] genres = [] for (k, v) in data.items(multi=True): if k == 'genres': genres.append(v) artist.genres = genres artist.city = data['city'] artist.state = data['state'] artist.phone = data['phone'] artist.website = data['website'] artist.facebook_link = data['facebook_link'] artist.seeking_venue = 'seeking_venue' in data artist.seeking_description = data['seeking_description'] artist.image_link = data['image_link'] db.session.add(artist) db.session.commit() except: db.session.rollback() error = True print(sys.exc_info()) finally: db.session.close() if error: flash('ERROR: Artist ' + request.form['name'] + ' could not be listed!') else: flash('Artist ' + request.form['name'] + ' was successfully listed!') return render_template('pages/home.html')
def create_artist_submission(): # called upon submitting the new artist listing form # TODO: insert form data as a new Venue record in the db, instead # TODO: modify data to be the data object returned from db insertion form = ArtistForm() error = False try: artist = Artist() artist.name = request.form['name'] artist.city = request.form['city'] artist.state = request.form['state'] artist.phone = request.form['phone'] tmp_genres = request.form.getlist('genres') artist.genres = ','.join(tmp_genres) artist.website = request.form['website'] artist.image_link = request.form['image_link'] artist.facebook_link = request.form['facebook_link'] artist.seeking_description = request.form['seeking_description'] db.session.add(artist) db.session.commit() except: error = True db.session.rollback() print(sys.exc_info()) finally: db.session.close() # TODO: on unsuccessful db insert, flash an error instead. if error: flash('An error occurred. Artist ' + request.form['name'] + ' could not be listed.') else: # on successful db insert, flash success flash('Artist ' + request.form['name'] + ' was successfully listed!') return render_template('pages/home.html')
def create_artist_submission(): try: artist = Artist(name=request.form.get('name', '')) artist.city = request.form.get('city', '') artist.state = request.form.get('state', '') artist.phone = request.form.get('phone', '') artist.image_link = request.form.get('image_link', '') artist.genres = request.form.getlist('genres') artist.facebook_link = request.form.get('facebook_link', '') artist.website = request.form.get('website_link', '') artist.seeking_venue = request.form.get('seeking_venue', 'n') == 'y' artist.seeking_description = request.form.get('seeking_description', '') db.session.add(artist) db.session.commit() flash('Artist ' + request.form['name'] + ' was successfully listed!') except: db.session.rollback() flash('An error occurred. Artist ' + request.form['name'] + ' could not be listed.') finally: db.session.close() return render_template('pages/home.html')
def create_artist_submission(): form = ArtistForm() if form.validate_on_submit(): try: artist = Artist() artist.name = form.name.data artist.city_id = get_city_id(form.city.data, form.state.data) artist.phone = form.phone.data artist.image_link = form.image.data artist.facebook_link = form.facebook.data artist.website = form.website.data artist.seeking_venue = form.isSeeking.data artist.seeking_description = form.seekingDesc.data artist.genres = form.genres.data db.session.add(artist) db.session.commit() flash('Artist ' + artist.name + ' was successfully listed!') except Exception as e: flash('An error occurred: ' + str(e)) db.session.rollback() finally: db.session.close() return redirect(url_for('artists')) return render_template('forms/new_artist.html', form=form)
def populate(): # venues musical_hop = Venue( name="The Musical Hop", address="1015 Folsom Street", city="San Francisco", state="CA", phone="123-123-1234", website="https://www.themusicalhop.com", facebook_link="https://www.facebook.com/TheMusicalHop", seeking_talent=True, seeking_description= "We are on the lookout for a local artist to play every two weeks. Please call us.", image_link= "https://images.unsplash.com/photo-1543900694-133f37abaaa5?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=400&q=60" ) musical_hop.genres = session.query(Genre).filter( Genre.name.in_(["Jazz", "Reggae", "Swing", "Classical", "Folk"])).all() dueling_pianos = Venue( name="The Dueling Pianos Bar", address="335 Delancey Street", city="New York", state="NY", phone="914-003-1132", website="https://www.theduelingpianos.com", facebook_link="https://www.facebook.com/theduelingpianos", seeking_talent=False, seeking_description="", image_link= "https://images.unsplash.com/photo-1497032205916-ac775f0649ae?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=750&q=80" ) dueling_pianos.genres = session.query(Genre).filter( Genre.name.in_(["Classical", "R&B", "Hip-Hop"])).all() park_square = Venue( name="Park Square Live Music & Coffee", address="34 Whiskey Moore Ave", city="San Francisco", state="CA", phone="415-000-1234", website="https://www.parksquarelivemusicandcoffee.com", facebook_link="https://www.facebook.com/ParkSquareLiveMusicAndCoffee", seeking_talent=False, seeking_description="", image_link= "https://images.unsplash.com/photo-1485686531765-ba63b07845a7?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=747&q=80" ) park_square.genres = session.query(Genre).filter( Genre.name.in_(["Rock n Roll", "Jazz", "Classical", "Folk"])).all() # artists guns_n_petals = Artist( name="Guns N Petals", city="San Francisco", state="CA", phone="326-123-5000", website="https://www.gunsnpetalsband.com", facebook_link="https://www.facebook.com/GunsNPetals", seeking_venue=True, seeking_description= "Looking for shows to perform at in the San Francisco Bay Area!", image_link= "https://images.unsplash.com/photo-1549213783-8284d0336c4f?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=300&q=80" ) guns_n_petals.genres = session.query(Genre).filter( Genre.name.in_(["Rock n Roll"])).all() matt_quevedo = Artist( name="Matt Quevedo", city="New York", state="NY", phone="300-400-5000", website="", facebook_link="https://www.facebook.com/mattquevedo923251523", seeking_venue=False, seeking_description="", image_link= "https://images.unsplash.com/photo-1495223153807-b916f75de8c5?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=334&q=80" ) matt_quevedo.genres = session.query(Genre).filter(Genre.name.in_( ["Jazz"])).all() wild_sax_band = Artist( name="The Wild Sax Band", city="San Francisco", state="CA", phone="432-325-5432", website="", facebook_link="", seeking_venue=False, seeking_description="", image_link= "https://images.unsplash.com/photo-1558369981-f9ca78462e61?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=794&q=80" ) wild_sax_band.genres = session.query(Genre).filter( Genre.name.in_(["Jazz", "Classical"])).all() # shows shows = [ Show(venue=musical_hop, artist=guns_n_petals, start_time=datetime.strptime("2019-05-21T21:30:00.000Z", DATETIME_FMT), duration=60), Show(venue=park_square, artist=matt_quevedo, start_time=datetime.strptime("2019-06-15T23:00:00.000Z", DATETIME_FMT), duration=60), Show(venue=park_square, artist=wild_sax_band, start_time=datetime.strptime("2035-04-01T20:00:00.000Z", DATETIME_FMT), duration=60), Show(venue=park_square, artist=wild_sax_band, start_time=datetime.strptime("2035-04-08T20:00:00.000Z", DATETIME_FMT), duration=60), Show(venue=park_square, artist=wild_sax_band, start_time=datetime.strptime("2035-04-15T20:00:00.000Z", DATETIME_FMT), duration=60), ] # set availability for artists availability_time = datetime.today().replace(second=0, microsecond=0) availability = [ Availability(artist=guns_n_petals, from_date=availability_time, sat_from=time(hour=19), sat_to=time(hour=0), sun_from=time(hour=19), sun_to=time(hour=20)), Availability(artist=matt_quevedo, from_date=availability_time, sat_from=time(hour=12), sat_to=time(hour=0), sun_from=time(hour=12), sun_to=time(hour=20)), Availability(artist=wild_sax_band, from_date=availability_time, wed_from=time(hour=19), wed_to=time(hour=20), thu_from=time(hour=19), thu_to=time(hour=20), fri_from=time(hour=19), fri_to=time(hour=20), sat_from=time(hour=19), sat_to=time(hour=20)), ] try: # add venues session.add_all([musical_hop, dueling_pianos, park_square]) # add artists session.add_all([guns_n_petals, matt_quevedo, wild_sax_band]) # add shows session.add_all(shows) # add availability session.add_all(availability) session.commit() except: session.rollback() finally: session.close()