Beispiel #1
0
def edit_venue(venue_id):
  form = VenueForm()
  venue={
    "id": 1,
    "name": "The Musical Hop",
    "genres": ["Jazz", "Reggae", "Swing", "Classical", "Folk"],
    "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"
  }
  # TODO: populate form with values from venue with ID <venue_id>
  form = VenueForm()
  venue = Venue.query.filter_by(id=venue_id).first()
  form.genres.default = venue.genres
  form.state.default = venue.state
  form.process()
  form.name.data = venue.name
  form.city.data = venue.city_name
  form.phone.data = venue.phone
  form.address.data = venue.address
  form.website.data = venue.website
  form.facebook_link.data = venue.facebock_link
  form.seeking_talent.data = venue.seeking_talent
  form.sseeking_description.data = venue.seeking_description
  form.image_link.data = venue.image_link
  return render_template('forms/edit_venue.html', form=form, venue=venue)
Beispiel #2
0
def edit_venue(venue_id):
    form = VenueForm()
    venue = Venue.find(venue_id)
    if venue is None:
        return abort(404)
    else:
        form = VenueForm(data=venue)
        return render_template('forms/edit_venue.html', form=form, venue=venue)
Beispiel #3
0
def create_venue_submission():
    # 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 = VenueForm()
    if form.validate_on_submit():
        form = VenueForm()
        if bool(
                VenueLocation.query.filter_by(
                    city=request.form['city']).first()) == False:
            city = request.form['city']
            state = request.form['state']
            try:
                location = VenueLocation(state=state, city=city)
                db.session.add(location)
                db.session.commit()
            except:
                db.session.rollback()
                flash('Oops! incorrect city/state value. Venue ' +
                      request.form['name'] + ' could not be listed.')
            finally:
                db.session.close()
        try:
            name = request.form['name']
            genres = form.genres.data
            city = request.form['city']
            address = request.form['address']
            phone = request.form['phone']
            image_link = "https://i.ibb.co/31v1Gfq/no-image.png" if form.image_link.data == '' else request.form[
                'image_link']
            website = request.form['website']
            facebook_link = request.form['facebook_link']
            seeking_talent = True if form.seeking_talent.data == 'Yes' else False
            seeking_description = request.form['seeking_description']
            venue = Venue(name=name,
                          genres=genres,
                          city=city,
                          address=address,
                          phone=phone,
                          image_link=image_link,
                          website=website,
                          facebook_link=facebook_link,
                          seeking_talent=seeking_talent,
                          seeking_description=seeking_description)
            db.session.add(venue)
            db.session.commit()
            flash('Venue ' + request.form['name'] +
                  ' was successfully listed!')
        except:
            db.session.rollback()
            flash('Oops! An error ' + str(sys.exc_info()[0]) +
                  ' ocurred. Venue ' + request.form['name'] +
                  ' could not be listed.')
        finally:
            db.session.close()
        return render_template('pages/home.html')
    else:
        return render_template('forms/new_venue.html', form=form)
Beispiel #4
0
def edit_venue(venue_id):

    venue = Venue.query.get(venue_id)
    genres = []
    for genre in venue.genres:
        genres.append(genre.id)
    data = {
        "id": venue.id,
        "name": venue.name,
        "genres": genres,
        "address": venue.address,
        "city": venue.city.name,
        "state": venue.city.state.name,
        "phone": venue.phone,
        "website": venue.website,
        "facebook_link": venue.facebook_link,
        "seeking_talent": venue.seeking_talent,
        "seeking_description": venue.seeking_description,
        "image_link": venue.image_link
    }
    # app.logger.debug(genres)
    form = VenueForm(name=venue.name, genres=genres,
                     phone=venue.phone, city=venue.city.name, state=venue.city.state.id, address=venue.address, facebook_link=venue.facebook_link)
    # TODO: populate form with values from venue with ID <venue_id>
    return render_template('forms/update_venue.html', form=form, venue=data, action="Edit")
Beispiel #5
0
def create_venue_submission():
    # insert form data as a new Venue record in the db, instead
    # modify data to be the data object returned from db insertion
    # see: http://flask.pocoo.org/docs/1.0/patterns/flashing/

    form = VenueForm(request.form, meta={"csrf": False})

    if form.validate_on_submit():
        try:
            venue: Venue = Venue()
            form.populate_obj(venue)
            db.session.add(venue)
            db.session.commit()
            # on successful db insert, flash success
            flash(f"Venue {request.form['name']} was successfully listed!")
        except ValueError as e:
            print(sys.exc_info())
            db.session.rollback()
            # on unsuccessful db insert, flash an error instead.
            flash(f"An error occurred: {str(e)}")
        finally:
            db.session.close()

    else:
        error_msg = []
        for field, error in form.errors.items():
            error_msg.append(f"{field}: {str(error)}")
        flash(f"Error occurred: {str(error_msg)}")

    return render_template('pages/home.html')
Beispiel #6
0
def create_venue():
    """Either load the blank form or submit a filled form to create a new venue."""

    form = VenueForm(request.form)
    if request.method == 'POST':
        if form.validate_on_submit():
            venue = Venue(name=form.name.data,
                          genres=json.dumps(form.genres.data),
                          city=form.city.data,
                          state=form.state.data,
                          address=form.address.data,
                          phone=form.phone.data,
                          facebook_link=form.facebook_link.data,
                          website=form.website.data,
                          seeking_talent=form.seeking_talent.data,
                          seeking_description=form.seeking_description.data,
                          email=form.email.data)
            try:
                db.session.add(venue)
                db.session.commit()
                message = f'Venue {venue.name} was successfully listed!', 'info'
            except Exception as e:
                app.logger.error(e)
                db.session.rollback()
                message = f'An error occurred. Venue {venue.name} could not be listed.', 'danger'
            flash(*message)
            return redirect(url_for('index'))
        else:
            errors = form.errors
            for e in errors:
                flash(f'{e}: {errors[e][0]}', 'danger')
    return render_template('forms/new_venue.html', form=form)
Beispiel #7
0
 def edit_venue_submission(venue_id):
     # takes values from the form submitted, and update existing
     # venue record with ID <venue_id> using the new attributes
     form = VenueForm()
     try:
         venue = Venue.query.get(venue_id)
         venue.name = form.name.data,
         venue.genres = form.genres.data,
         venue.address = form.address.data,
         venue.city = form.city.data,
         venue.state = form.state.data,
         venue.phone = form.phone.data,
         venue.website = form.website.data,
         venue.facebook_link = form.facebook_link.data,
         # venue.seeking_talent=form.seeking_talent.data,
         # venue.seeking_description=form.seeking_description.data,
         venue.image_link = form.image_link.data,
         venue.update()
         flash('Venue ' + form.name.data + ' was successfully edited!')
     except:
         venue.rollback()
         flash('An error occurred. venue ' + form.name.data +
               ' could not be edited.')
     finally:
         venue.close()
     return redirect(url_for('show_venue', venue_id=venue_id))
Beispiel #8
0
def edit_venue_submission(venue_id):
    try:
        form = VenueForm()
        venue = Venue.query.get(venue_id)
        name = form.name.data
        venue.name = name
        venue.genres = form.genres.data
        venue.city = form.city.data
        venue.state = form.state.data
        venue.address = form.address.data
        venue.phone = form.phone.data
        venue.facebook_link = form.facebook_link.data
        venue.website = form.website.data
        venue.image_link = form.image_link.data
        venue.seeking_talent = form.seeking_talent.data
        venue.seeking_description = form.seeking_description.data

        db.session.commit()
        flash('Venue ' + name + ' has been updated')
    except ():
        db.session.rollback()
        flash('An error occured while trying to update Venue')
    finally:
        db.session.close()

    return redirect(url_for('show_venue', venue_id=venue_id))
Beispiel #9
0
def create_venue_submission():
    error = False
    form = VenueForm(request.form)
    try:
        venues = Venue()
        venues.name = form.name.data
        venues.city = form.city.data
        venues.state = form.state.data
        venues.address = form.address.data
        venues.phone = form.phone.data
        venues.facebook_link = form.facebook_link.data
        venues.image_link = form.image_link.data
        # Convert List To String Speated By ,
        venues.genres = ','.join(form.genres.data)
        venues.seeking_talent = True if form.seeking_talent.data == "True" else False
        venues.seeking_description = form.seeking_description.data
        db.session.add(venues)
        db.session.commit()
    except Exception as ee:
        print(ee)
        db.session.rollback()
        error = True
    finally:
        db.session.close()
        if error:
            flash(' Error While Insert')
        else:
            flash('Venue ' + request.form['name'] +
                  ' was successfully listed!')

    return render_template('pages/home.html')
Beispiel #10
0
def create_venue_submission():
    form = VenueForm()
    if form.validate_on_submit():
        try:
            venue = Venue(
                name=form.name.data,
                city=form.city.data,
                state=form.state.data,
                address=form.address.data,
                phone=form.phone.data,
                image_link=form.image_link.data
                if form.image_link.data else None,
                facebook_link=form.facebook_link.data
                if form.facebook_link.data else None,
                genres=form.genres.data,
                website=form.website.data if form.website.data else None,
                seeking_talent=True
                if form.seeking_talent_description.data else False,
                seeking_description=form.seeking_talent_description.data
                if form.seeking_talent_description.data else None)
            db.session.add(venue)
            db.session.commit()
            flash('Venue ' + form.name.data + ' was successfully listed!')
            return render_template('pages/home.html')
        except Exception:
            db.session.rollback()
            print(sys.exc_info())
            flash('An error occurred. Venue ' + form.name.data +
                  ' could not be listed.')
            return render_template('pages/home.html')
        finally:
            db.session.close()
    else:
        return render_template('forms/new_venue.html', form=form)
Beispiel #11
0
def edit_venue_submission(venue_id):
    # TODO: take values from the form submitted, and update existing
    # venue record with ID <venue_id> using the new attributes
    error = False
    form = VenueForm()
    venue = Venue.query.get(venue_id)

    if venue is None:
        abort(404)

    try:
        if form.validate_on_submit():
            form.populate_obj(venue)
            venue.genres = ','.join(form.genres.data)
            db.session.commit()
        else:
            error = True
            for fieldName, errorMessages in form.errors.items():
                for err in errorMessages:
                    print(err, file=sys.stdout)
    except:
        error = True
        db.session.rollback()
        print(sys.exc_info())
    finally:
        db.session.close()

    if error:
        flash('Error!')
        return render_template('forms/edit_venue.html', form=form, venue=venue)
    else:
        flash('Venue Id : ' + str(venue_id) + ' edited!')

    return redirect(url_for('show_venue', venue_id=venue_id))
Beispiel #12
0
def edit_venue_submission(venue_id):
  form = VenueForm(request.form)
  # TODO: take values from the form submitted, and update existing
  if form.validate_on_submit():
    try:
      a = db.session.query(Venue).get(venue_id)
      a.name = form.name.data
      a.city = form.city.data
      a.state = form.state.data
      a.phone = form.phone.data
      a.address = form.address.data
      a.facebook_link = form.facebook_link.data
      a.genres = form.genres.data
      a.image_link = form.image_link.data
      a.website = form.website.data
      a.seeking_talent = bool(form.seeking_talent.data)
      a.seeking_description = form.seeking_description.data
      db.session.commit()
      flash('Venue ' + request.form['name'] + ' was successfully updated!')
    # TODO: on unsuccessful db insert, flash an error instead.
    except:
      flash('An error occurred. Venue ' + form.name.data + ' could not be updated.')
      db.session.rollback()
      print(sys.exc_info())
    finally:
      db.session.close()
    return redirect(url_for('show_venue', venue_id=venue_id))
  else:
    print(form.errors)
    return render_template('forms/edit_venue.html', form=form)
Beispiel #13
0
def create_venue_submission():

    form = VenueForm(request.form)
    if form.validate():
        try:

            venue = Venue()

            form.populate_obj(venue)

            db.session.add(venue)

            db.session.commit()
            flash('Venue ' + request.form['name'] +
                  ' was successfully listed!')

        except ValueError as e:

            flash('An error occurred. Venue ' + request.form['name'] +
                  ' could not be listed.')
            db.session.rollback()
            print(e)

        finally:

            db.session.close()
    else:
        #Get validation messages
        message = []
        for field, err in form.errors.items():
            message.append(field + '' + '|'.join(err))
        flash('Errors ' + str(message))
    return render_template('pages/home.html')
Beispiel #14
0
def create_venue_submission():
    form = VenueForm(request.form)

    try:
        new_venue = Venue(name=form.name.data,
                          city=form.city.data,
                          state=form.state.data,
                          address=form.address.data,
                          phone=form.phone.data,
                          genres=form.genres.data,
                          facebook_link=form.facebook_link.data,
                          image_link=form.image_link.data,
                          website=form.website.data,
                          seeking_talent=form.seeking_talent.data,
                          seeking_description=form.seeking_description.data)

        Venue.create(new_venue)

        flash('Venue ' + request.form['name'] + ' was successfully listed!')

    except ValueError:  # FIXME melhorar essa exception

        flash('Error occurred. Venue ' + form.name + ' could not be listed.')

    return render_template('pages/home.html')
def create_venue_submission():
    form = VenueForm()
    if form.validate_on_submit():
        try:
            venue = Venue()
            venue.name = request.form['name']
            venue.city = request.form['city']
            venue.state = request.form['state']
            venue.address = request.form['address']
            venue.phone = request.form['phone']
            venue.image_link = request.form['image_link']
            venue.genres = request.form.getlist('genres')
            venue.facebook_link = request.form['facebook_link']
            venue.website = request.form['website']
            venue.seeking_talent = True if 'seeking_talent' in request.form else False
            venue.seeking_description = request.form['seeking_description']
            db.session.add(venue)
            db.session.commit()
        except Exception as e:
            db.session.rollback()
            flash(
                'An error occurred. Venue {} Could not be listed!, {}'.format(
                    request.form['name'], str(e)))
        finally:
            db.session.close()
            flash('Venue {} was successfully listed!'.format(
                request.form['name']))
            return redirect(url_for('venues'))
    return render_template('forms/new_venue.html', form=form)
Beispiel #16
0
def create_venue_submission():
    error = False
    form = VenueForm()
    try:
        if form.validate_on_submit():
            venue = Venue(name=form.name.data,
                          city=form.city.data,
                          state=form.state.data,
                          address=form.address.data,
                          phone=form.phone.data,
                          image_link='',
                          facebook_link=form.facebook_link.data,
                          genres=form.genres.data,
                          website=form.website.data,
                          seeking_talent=form.seeking_talent.data,
                          seeking_description=form.seeking_description.data)
            db.session.add(venue)
            db.session.commit()
            flash('Venue {} was successfully listed!'.format(form.name.data))
            return redirect(url_for('index'))
        flash('An error occurred. Venue {} could not be listed. {}'.format(
            form.name.data, form.errors))
    except ():
        db.session.rollback()
        error = True
        print(sys.exc_info())
    finally:
        db.session.close()
    if error:
        abort(500)
        flash('There was an error, please try again.')

    return render_template('forms/new_venue.html')
Beispiel #17
0
def edit_venue(venue_id):
    vn = Venue.query.get(venue_id)
    venue = {
        "id": vn.id,
        "name": vn.name,
        "address": vn.address,
        "city": vn.city,
        "state": vn.state,
        "phone": vn.phone,
        "website": vn.website,
        "facebook_link": vn.facebook_link,
        "seeking_talent": vn.seeking_talent,
        "seeking_description": vn.seeking_description,
        "image_link": vn.image_link,
        "genres": [g.id for g in vn.genres]
    }
    form = VenueForm(**venue)
    error_msg = ''
    form.validate()
    for key, val in form.errors.items():
        if key != 'csrf_token':
            error_msg += key + ": " + ';'.join(val)
    if error_msg:
        flash(
            'There are few errors in the old venue info. Please fix them first! '
            + error_msg)

    return render_template('forms/edit_venue.html', form=form, venue=venue)
Beispiel #18
0
def create_venue_submission():
    venue = Venue()
    form = VenueForm()
    if not form.validate_on_submit():
        flash('Invalid value found in ' + ', '.join(form.errors.keys()) +
              ' field(s).')
        return render_template('forms/new_venue.html', form=form)
    else:
        error = False
        try:
            form.populate_obj(venue)
            venue.phone = format_phone(venue.phone)
            db.session.add(venue)
            db.session.flush()
            venue_id = venue.id
            db.session.commit()
        except:
            error = True
            db.session.rollback()
        finally:
            db.session.close()
        if error:
            flash('An error occurred. Venue ' + venue.name +
                  ' could not be listed.')
            return redirect(url_for('index'))
        else:
            flash('Venue ' + request.form['name'] +
                  ' was successfully listed!')
            return redirect(url_for('show_venue', venue_id=venue_id))
Beispiel #19
0
def edit_venue(venue_id):
    venue = Venue.query.get(venue_id)
    if venue:
        form = VenueForm(obj=venue)
        venue = {
            "id": venue_id,
            "name": venue.name,
            "genres": [venue.genres],
            "address": venue.address,
            "city": venue.city,
            "state": venue.city,
            "phone": venue.phone,
            "website": venue.web_site,
            "facebook_link": venue.facebook_link,
            "seeking_talent": venue.seeking_talent,
            "seeking_description": venue.seeking_description,
            "image_link": venue.image_link
        }
        # DONE: populate form with values from venue with ID <venue_id>
        return render_template('forms/edit_venue.html', form=form, venue=venue)

    else:
        flash('An error occurred. Artist ' + request.form['name'] +
              ' could not be edited.')
        return redirect(url_for('index'))
Beispiel #20
0
def edit_venue_submission(venue_id):
    venue = Venue.query.get(venue_id)
    if venue is None:
        abort(404)
    name = venue.name
    form = VenueForm()
    if not form.validate_on_submit():
        flash('Invalid value found in ' + ', '.join(form.errors.keys()) +
              ' field(s).')
        return render_template('forms/edit_venue.html', form=form, venue=venue)
    else:
        error = False
        try:
            edited = Venue()
            form.populate_obj(edited)
            for col in Venue.__table__.columns.keys():
                if col != 'id':
                    setattr(venue, col, getattr(edited, col))
            name = venue.name
            venue.phone = format_phone(venue.phone)
            db.session.commit()
        except:
            error = True
            db.session.rollback()
        finally:
            db.session.close()
        if error:
            flash('An error occurred. Venue ' + name +
                  ' could not be updated.')
            return redirect(url_for('index'))
        else:
            flash('Venue ' + name + ' was successfully updated!')
            return redirect(url_for('show_venue', venue_id=venue_id))
Beispiel #21
0
def create_venue_submission():
    try:
        form = VenueForm()
        venue = Venue(name=form.name.data,
                      city=form.city.data,
                      state=form.state.data,
                      address=form.address.data,
                      phone=form.phone.data,
                      image_link=form.image_link.data,
                      genres=form.genres.data,
                      facebook_link=form.facebook_link.data,
                      seeking_description=form.seeking_description.data,
                      website=form.website.data,
                      seeking_talent=form.seeking_talent.data)

        db.session.add(venue)
        db.session.commit()

        flash('Venue ' + request.form['name'] + ' was successfully listed!')
    except ():
        db.session.rollback()
        flash('An error occurred. Venue ' + request.form['name'] +
              ' could not be listed.')
    finally:
        db.session.close()
    return render_template('pages/home.html')
Beispiel #22
0
def edit_venue_submission(venue_id):
    # TODO: take values from the form submitted, and update existing
    # venue record with ID <venue_id> using the new attributes
    form = VenueForm(request.form)
    try:
        form.validate()

        venue = Venue.query.filter(Venue.id == venue_id).first()
        venue.name = form.name.data
        venue.city = form.city.data
        venue.state = form.state.data.name
        venue.address = form.address.data
        venue.genres = [genre.name for genre in form.genres.data]
        venue.phone = form.phone.data
        venue.image_link = form.image_link.data
        venue.facebook_link = form.facebook_link.data
        venue.website = form.website.data
        venue.seeking_talent = form.seeking_talent.data
        venue.seeking_description = form.seeking_description.data

        db.session.commit()

    except Exception as e:
        print(e)

        db.session.rollback()
    finally:
        db.session.close()

    return redirect(url_for('show_venue', venue_id=venue_id))
Beispiel #23
0
def create_venue_submission():
  # 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
  # TODO: 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/

  form = VenueForm(request.form, meta = {'csrf': False})
  if form.validate():
    try:
      venue = Venue()
      form.populate_obj(venue)
      db.session.add(venue)
      db.session.commit()
      flash('Venue ' + request.form['name'] + ' was successfully listed!')
    except ValueError as e:
      print(e)
      flash('Error in listing venue. Please try again.')
      db.session.rollback()
    finally:
      db.session.close()
  else:
    err_msg = []
    for field, err in form.errors.items():
      err_msg.append(field + '-' + '|'.join(err))
    flash('Errors: ' + str(err_msg))

  return render_template('pages/home.html')
Beispiel #24
0
def edit_venue_submission(venue_id):
    """Update the venue info using the form."""

    venue = Venue.query.get(venue_id)
    form = VenueForm(request.form)
    try:
        venue.name = form.name.data
        venue.genres = json.dumps(form.genres.data)
        venue.city = form.city.data
        venue.state = form.state.data
        venue.phone = form.phone.data
        venue.website = form.website.data
        venue.facebook_link = form.facebook_link.data
        venue.seeking_talent = form.seeking_talent.data
        venue.seeking_description = form.seeking_description.data
        venue.image_link = form.image_link.data
        venue.email = form.email.data

        db.session.commit()
        message = f'Venue ID {venue.id} was updated!', 'info'
    except Exception as e:
        app.logger.error(e)
        db.session.rollback()
        message = f'An error occurred. Changes not saved :(', 'danger'

    flash(*message)

    return redirect(url_for('show_venue', venue_id=venue_id))
def create_venue_submission():
    """ Submit callback for venue create form  """
    # Get the form data
    name = request.form['name']
    city = request.form['city']
    state = request.form['state']
    address = request.form['address']
    phone = request.form['phone']
    image_link = request.form['image_link']
    facebook_link = request.form['facebook_link']
    website = request.form['website']
    seeking_talent = request.form['seeking_talent'] == 'Yes'
    seeking_description = request.form['seeking_description']
    # genres is a list
    genres = request.form.getlist('genres')

    error = False
    form = VenueForm()
    # Validate form data
    if not form.validate_on_submit():
        flash(form.errors)
        # Redirect to the new_venue.html page with the error message in the above line
        return redirect(url_for('create_venue_submission'))

    try:
        # Create a venue instance using form data
        venue = Venue(
            name=name,
            city=city,
            state=state,
            address=address,
            phone=phone,
            image_link=image_link,
            facebook_link=facebook_link,
            website=website,
            seeking_talent=seeking_talent,
            seeking_description=seeking_description
        )
        db.session.add(venue)

        # Creating Venue generes instances and assigning using backref
        for genre in genres:
            new_genre = VenuesGenres(genre=genre)
            new_genre.venue = venue             # backref
            db.session.add(new_genre)

        db.session.commit()
    except Exception as err:
        print(err)
        db.session.rollback()
        error = True
    finally:
        db.session.close()

    if error:
        flash(f'An error occurred. Venue {name} could not be listed.')
        abort(500)

    flash(f'Venue {name} listed successfully')
    return render_template('pages/home.html')
Beispiel #26
0
def create_venue_submission():
    # 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 = VenueForm()
    name = form.name.data
    created = False
    if form.validate_on_submit():
        try:
            attrs = {attr: getattr(form, attr).data for attr in VENUE_SIMPLE_ATTRS}

            genres = ",".join(x for x in form.genres.data)
            new_venue = Venue(**attrs, genres=genres)
            db.session.add(new_venue)
            db.session.commit()
            # on successful db insert, flash success
            created = True
            flash("Venue " + name + " was successfully listed!")

        except:
            print(sys.exc_info())
        finally:
            db.session.close()

        if created:
            return redirect(url_for("index"))

    # TODO: on unsuccessful db insert, flash an error instead.
    # see: http://flask.pocoo.org/docs/1.0/patterns/flashing/
    flash("An error occurred. Venue " + name + " could not be listed.")
    return render_template("forms/new_venue.html", form=form)
Beispiel #27
0
def edit_venue(venue_id):
    """
    Load the form to edit an existing venue. Pre-populated with the current values loaded from the db.
    """

    venue = Venue.query.get(venue_id)
    form = VenueForm()

    data = {
        "id": venue.id,
        "name": venue.name,
        "genres": json.loads(venue.genres),
        "address": venue.address,
        "city": venue.city,
        "state": venue.state,
        "phone": venue.phone,
        "website": venue.website,
        "facebook_link": venue.facebook_link,
        "seeking_talent": venue.seeking_talent,
        "seeking_description": venue.seeking_description,
        "image_link": venue.image_link,
        "email": venue.email
    }

    return render_template('forms/edit_venue.html', form=form, venue=data)
Beispiel #28
0
 def create_venue_submission():
     # inserts form data as a new Venue record in the db, instead
     # modifies data to be the data object returned from db insertion
     form = VenueForm()
     try:
         venue = Venue(
             name=form.name.data,
             genres=form.genres.data,
             address=form.address.data,
             city=form.city.data,
             state=form.state.data,
             phone=form.phone.data,
             website=form.website.data,
             facebook_link=form.facebook_link.data,
             seeking_talent=form.seeking_talent.data,
             seeking_description=form.seeking_description.data,
             image_link=form.image_link.data,
         )
         venue.insert()
         flash('Venue ' + form.name.data + ' was successfully listed!')
     except:
         venue.rollback()
         flash('An error occurred. Venue ' + form.name.data +
               ' could not be listed.')
     finally:
         venue.close()
     return render_template('pages/home.html')
Beispiel #29
0
def edit_venue_submission(venue_id):
    form = VenueForm(request.form)
    venue = Venue.query.get(venue_id)
    error = False
    try:
        venue.name = request.form['name']
        venue.city = request.form['city']
        venue.state = request.form['state']
        venue.phone = request.form['phone']
        venue.genres = request.form.getlist('genres')
        venue.facebook_link = request.form['facebook_link']
        venue.website_link = request.form['website_link']
        venue.seeking_description = request.form['seeking_description']
        venue.image_link = request.form['image_link']
        venue.seeking_talent = request.form['seeking_talent']
        venue.address = request.form['address']
        if (venue.seeking_talent == 'y'):
            setattr(venue, 'seeking_talent', True)
        else:
            setattr(venue, 'seeking_talent', False)
    except:
        error = True
    finally:
        if not error:
            db.session.commit()
            flash('Venue ' + request.form['name'] +
                  ' was successfully updated!')
        else:
            flash('An error occured. Venue ' + venue.name +
                  ' could not be updated.')
            db.session.rollback()
    # FINISHED: take values from the form submitted, and update existing
    # venue record with ID <venue_id> using the new attributes
    return redirect(url_for('show_venue', venue_id=venue_id))
Beispiel #30
0
def edit_venue_submission(venue_id):
    try:
        request_data = {**request.form}
        request_data['genres'] = ','.join(request.form.getlist('genres') or [])
        request_data['seeking_talent'] = (request_data.get('seeking_talent')
                                          or '').lower() == 'y'

        form = VenueForm(**request_data)
        if not form.validate_on_submit():
            venue = Venue.query.filter_by(id=venue_id).first()
            return render_template('forms/edit_venue.html',
                                   form=form,
                                   venue=venue)

        request_data.pop('csrf_token', None)

        Venue.query.filter_by(id=venue_id).update(request_data)
        db.session.commit()
        flash('Venue ' + request.form['name'] + ' was successfully updated!')
    except:
        flash('Venue ' + request.form['name'] + ' was not updated!')
        db.session.rollback()
    finally:
        db.session.close()

    return redirect(url_for('show_venue', venue_id=venue_id))