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)
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)
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)
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")
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')
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)
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))
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))
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')
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)
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))
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)
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')
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)
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')
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)
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))
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'))
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))
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')
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))
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')
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')
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)
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)
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')
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))
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))