示例#1
0
文件: app.py 项目: DUCK251/fyyurapp
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))
示例#2
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')
示例#3
0
文件: app.py 项目: adengz/fyyur
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))
示例#4
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')
示例#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')
示例#6
0
文件: app.py 项目: adengz/fyyur
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))
示例#7
0
def edit_venue(venue_id):
    venue = Venue.query.get(venue_id)
    form = VenueForm(obj=venue)
    if form.validate():
        form.populate_obj(venue)
    # TODO: populate form with values from venue with ID <venue_id>

    return render_template("forms/edit_venue.html", form=form, venue=venue)
示例#8
0
文件: app.py 项目: clay-coffman/FSND
def edit_venue_submission(venue_id):

    venue = Venue.query.get(venue_id)

    form = VenueForm(request.form)  # maybe need obj=venue param?

    form.populate_obj(venue)

    db.session.add(venue)
    db.session.commit()
    flash("Venue " + request.form["name"] + " was successfully updated!")
    return redirect(url_for("show_venue", venue_id=venue_id))
示例#9
0
文件: app.py 项目: madmed88/FSND
def edit_venue_submission(venue_id):
    form = VenueForm(request.form)
    try:
        venue = Venue.query.get(venue_id)
        form.populate_obj(venue)
        db.session.commit()
        flash('Venue ' + request.form['name'] + ' was successfully edited!')
    except:
        db.session.rollback()
        flash('An error occurred. Venue ' + form['name'] +
              ' could not be edited.')
    finally:
        db.session.close()
    return redirect(url_for('show_venue', venue_id=venue_id))
示例#10
0
文件: app.py 项目: MElhomosy/Project1
def edit_venue_submission(venue_id):
    # take values from the form submitted, and update existing
    # venue record with ID <venue_id> using the new attributes
    form = VenueForm(request.form)
    try:
        data = request.form
        venue = db.session.query(Venue).get(venue_id)
        form.populate_obj(venue)
        db.session.commit()
    except:
        db.session.rollback()
    finally:
        db.session.close()
    return redirect(url_for('show_venue', venue_id=venue_id))
示例#11
0
文件: app.py 项目: madmed88/FSND
def create_venue_submission():
    form = VenueForm(request.form)
    try:
        venue = Venue()
        form.populate_obj(venue)
        db.session.add(venue)
        db.session.commit()
        flash('Venue ' + request.form['name'] + ' was successfully listed!')
    except:
        db.session.rollback()
        flash('An error occurred. Venue ' + form['name'] +
              ' could not be listed.')
    finally:
        db.session.close()
    return render_template('pages/home.html')
示例#12
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(request.form)
    try:
        name = request.form['name']
        city = request.form['city']
        state = request.form['state']
        address = request.form['address']
        phone = request.form['phone']
        facebook_link = request.form['facebook_link']
        genres = request.form.getlist('genres')
        image_link = request.form['image_link']
        website = request.form['website']

        add_venue = Venue(name=name,
                          city=city,
                          state=state,
                          address=address,
                          phone=phone,
                          genres=genres,
                          facebook_link=facebook_link,
                          website=website,
                          image_link=image_link)
        form.populate_obj(add_venue)

        db.session.add(add_venue)
        db.session.commit()

        flash('Venue ' + add_venue.name + ' was successefully listed')
    except ValueError as e:
        print(e)
        db.session.rollback()
        traceback.print_exc()
        flash('An error occured! Venue ' + add_venue.name +
              ' could not be listed')
    finally:
        db.session.close()

    # 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/
    return render_template('pages/home.html')
示例#13
0
文件: app.py 项目: MElhomosy/Project1
def create_venue_submission():
    error = False
    form = VenueForm(request.form)
    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:
        error = True
        print(e)
        flash('An error occurred. Venue ' + request.form['name'] +
              ' could not be listed.')
        db.session.rollback()
    finally:
        db.session.close()
    if error:
        abort(400)
    else:
        return render_template('pages/home.html')
示例#14
0
文件: app.py 项目: AbdullahHB/fyyur
def edit_venue(venue_id):
    # it must be imported here to avoid circular import
    from forms import VenueForm
    venue: Venue = Venue.query.get_or_404(venue_id)
    form = VenueForm(obj=venue)
    # and I'm not adding request.form as it's already added by flask-wtf
    # look here https://flask-wtf.readthedocs.io/en/stable/quickstart.html
    ###
    # Note that you don't have to pass request.form to Flask-WTF;
    # it will load automatically.
    # And the convenience validate_on_submit will check if it is a POST request
    # and if it is valid.
    ###
    venue_name = venue.name

    # this function return true only if it's a POST request and it's valid form
    # and choices are validated automatically unless validate_choices = false
    if form.validate_on_submit():
        form.populate_obj(venue)

        try:
            db.session.add(venue)
            db.session.commit()
        except SQLAlchemyError:
            print(sys.exc_info())
            db.session.rollback()
            db.session.close()
            flash('An error occurred. Venue ' + venue_name +
                  ' could not be edited.')
            return render_template('forms/edit_venue.html',
                                   form=form,
                                   venue_name=venue_name)

        flash('Venue ' + venue.name + ' was successfully updated!')
        return redirect(url_for('show_venue', venue_id=venue_id))

    return render_template('forms/edit_venue.html',
                           form=form,
                           venue_name=venue_name)
示例#15
0
文件: app.py 项目: AbdullahHB/fyyur
def create_venue():
    # it must be imported here to avoid circular import
    from forms import VenueForm
    form = VenueForm()

    if form.validate_on_submit():
        venue = Venue()
        form.populate_obj(venue)
        try:
            db.session.add(venue)
            db.session.commit()
        except SQLAlchemyError:
            print(sys.exc_info())
            db.session.rollback()
            db.session.close()
            flash('An error occurred. Venue ' + form.name.data +
                  ' could not be listed.')
            return render_template('forms/new_venue.html', form=form)

        flash('Venue ' + venue.name + ' was successfully listed!')
        return redirect(url_for('show_venue', venue_id=venue.id))
    return render_template('forms/new_venue.html', form=form)
示例#16
0
def edit_venue_submission(venue_id):
    error = False
    venue = Venue.query.get(venue_id)
    form = VenueForm()
    try:
        if form.validate_on_submit():
            form.populate_obj(venue)
            db.session.add(venue)
            db.session.commit()
            flash('Venue {} was successfully updated!'.format(form.name.data))
            return redirect(url_for('show_venue', venue_id=venue_id))
        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 redirect(url_for('show_venue', venue_id=venue_id))
示例#17
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(request.form)
    try:
        form.validate()

        venue = Venue()
        form.populate_obj(venue)
        db.session.add(venue)
        db.session.commit()
        # on successful db insert, flash success
        flash('Venue ' + venue + ' was successfully listed!')
    except Exception as e:
        # 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/
        db.session.rollback()
        flash('An error occurred. Venue ' + form.name.data +
              ' could not be listed.')
    finally:
        db.session.close()
    return render_template('pages/home.html')
示例#18
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, meta = {'csrf': False})
  if form.validate():
    try:
      venue = Venue.query.get_or_404(venue_id)
      form.populate_obj(venue)
      db.session.add(venue)
      db.session.commit()
      flash('Venue update success!')
    except ValueError as e:
      print(e)
      flash('Error in updating 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 redirect(url_for('show_venue', venue_id=venue_id))