Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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')
Exemplo n.º 3
0
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)
Exemplo n.º 4
0
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')
Exemplo n.º 5
0
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')
Exemplo n.º 6
0
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')
Exemplo n.º 7
0
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')
Exemplo n.º 8
0
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')
Exemplo n.º 9
0
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')
Exemplo n.º 10
0
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')
Exemplo n.º 11
0
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()
Exemplo n.º 12
0
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")
Exemplo n.º 13
0
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')
Exemplo n.º 14
0
Arquivo: app.py Projeto: OAK06/FSND
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')
Exemplo n.º 15
0
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')
Exemplo n.º 16
0
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')
Exemplo n.º 17
0
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')
Exemplo n.º 18
0
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')
Exemplo n.º 19
0
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)
Exemplo n.º 20
0
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()