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_submission(venue_id): form = VenueForm() if form.validate_on_submit(): data = request.form try: is_seeking_talent = True if data['seeking_description'].strip( ) else False venue = Venue.query.get(venue_id) venue.name = data['name'] venue.city = data['city'] venue.state = data['state'] venue.address = data['address'] venue.genres = request.form.getlist('genres') venue.phone = data['phone'] venue.image_link = data['image_link'] venue.facebook_link = data['facebook_link'] venue.website = data['website'] venue.seeking_talent = is_seeking_talent venue.seeking_description = data['seeking_description'] db.session.commit() flash(f'Venue {data["name"]} was successfully edited!') except: db.session.rollback() flash( f'An error occurred. Venue {data["name"]} could not be edited.' ) finally: db.session.close() # Flashing form validation errors for input, errors in form.errors.items(): flash(f'Invalid value for "{input}". {"".join(errors)}') return redirect(url_for('show_venue', venue_id=venue_id))
def create_venue_submission(): form = VenueForm() if form.validate_on_submit(): data = request.form try: is_seeking_talent = True if data['seeking_description'].strip( ) else False venue = Venue(name=data['name'], city=data['city'], state=data['state'], address=data['address'], genres=request.form.getlist('genres'), phone=data['phone'], image_link=data['image_link'], facebook_link=data['facebook_link'], website=data['website'], seeking_talent=is_seeking_talent, seeking_description=data['seeking_description']) db.session.add(venue) db.session.commit() flash(f'Venue {data["name"]} was successfully listed!') except: db.session.rollback() flash( f'An error occurred. Venue {data["name"]} could not be listed.' ) finally: db.session.close() return render_template('pages/home.html') # Flashing current errors for input, errors in form.errors.items(): flash(f'Invalid value for "{input}". {"".join(errors)}') return render_template('forms/new_venue.html', form=form)
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() 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 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 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): 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))
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 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_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 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 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 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(): # 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 addvenue(): form = VenueForm() if form.validate_on_submit(): add_venue('aditya166', str(form.venue_name.data), form.venue_open.data, form.venue_close.data, str(form.zip_code.data), str(form.city.data), str(form.address.data)) flash(f'Venue has been successfully added', 'success') return redirect(url_for('about')) return render_template('addvenue.html', title='Add Venue', form=form)
def new_venue(): """createVenue view.""" form = VenueForm() if form.validate_on_submit(): venue = models.Venue(postcode=form.postcode.data, city=form.city.data, name=form.name.data, description=form.description.data, venueId=form.venueId.data, street=form.street.data, number=form.number.data, lat=form.lat.data, long=form.long.data, location = db.GeoPt(float(form.lat.data), float(form.long.data))) venue.update_location() venue = venue.put() flash('Venue saved.') return redirect(url_for('list_venues')) return render_template('create_venue.html', form=form)
def edit_venue_submission(venue_id): form = VenueForm(request.form) # fix to get all selected values from form. data = request.form error = False print(json.dumps(data, indent=4)) if form.validate_on_submit(): # Get City info city_name = data.get('city') city_state = data.get('state', 'AL') city_id = City.get_id(city_state=city_state, city_name=city_name) if city_id is None: error = True # Get other fields name = data.get('name') address = data.get('address') phone = format_phone_number(data.get('phone')) image_link = data.get('image_link') genres = format_genres(data) facebook_link = data.get('facebook_link') website = data.get('website') seeking_talent = True if data.get('seeking_talent') else False seeking_description = data.get('seeking_description') try: venue = Venue.query.get(venue_id) venue.name = name venue.city_id = city_id venue.address = address venue.phone = phone venue.image_link = image_link venue.genres = genres venue.facebook_link = facebook_link venue.website = website venue.seeking_talent = seeking_talent venue.seeking_description = seeking_description db.session.commit() flash('Venue ' + name + ' was successfully updated!') except: db.session.rollback() print(sys.exc_info()) flash('An error occurred. Venue ' + name + ' could not be updated.') error = True finally: db.session.close() else: error = True if error: return abort(500) else: return redirect(url_for('show_venue', venue_id=venue_id))
def create_venue_submission(): form = VenueForm(request.form) print(request.form) facebook_link = form.facebook_link.data\ if form.facebook_link.data != "" else None image_link = form.image_link.data\ if form.image_link.data != "" else None website = form.website.data\ if form.website.data != "" else None seeking_talent = True\ if form.seeking_description.data != "" else False seeking_description = form.seeking_description.data\ if form.seeking_description.data != "" else None if form.validate_on_submit(): error = False try: venue = Venue(name=form.name.data, city=form.city.data, state=form.state.data, address=form.address.data, phone=form.phone.data, genres=",".join(form.genres.data), facebook_link=facebook_link, image_link=image_link, website=website, seeking_talent=seeking_talent, seeking_description=seeking_description) venue.insert() except Exception: error = True db.session.rollback() print(exc_info()) finally: db.session.close() if error: flash('An error occurred. Venue ' + form.name.data + 'could\ not be listed.') else: flash('Venue ' + form.name.data + ' was successfully\ listed!') return render_template('pages/home.html') else: flash('Please ensure all details provided are valid') print(form.errors) return render_template('forms/new_venue.html', form=form)
def create_venue_submission(): form = VenueForm() if not form.validate_on_submit(): flash(f'An error occurred. Venue could not be listed.', 'error') return render_template('pages/home.html') try: new_venue = Venue.from_dict(form.data) db.session.add(new_venue) db.session.commit() flash(f'Venue {new_venue.name} was successfully listed!') except: db.session.rollback() abort(500) finally: db.session.close() return render_template('pages/home.html')
def edit_venue_submission(venue_id): form = VenueForm(request.form) venue = Venue.query.get(venue_id) facebook_link = form.facebook_link.data\ if form.facebook_link.data != "" else None image_link = form.image_link.data\ if form.image_link.data != "" else None website = form.website.data\ if form.website.data != "" else None seeking_talent = True\ if form.seeking_description.data != "" else False seeking_description = form.seeking_description.data\ if form.seeking_description.data != "" else None if form.validate_on_submit(): error = False try: venue.name = form.name.data venue.city = form.city.data venue.address = form.address.data venue.state = form.state.data venue.phone = form.phone.data venue.genres = ",".join(form.genres.data) venue.facebook_link = facebook_link venue.image_link = image_link venue.website = website venue.seeking_talent = seeking_talent venue.seeking_description = seeking_description venue.update() except Exception: error = True db.session.rollback() print(exc_info()) finally: db.session.close() if error: flash('An error occurred. Venue ' + str(form.name.data) + 'could not be updated.') else: flash('Venue ' + str(form.name.data) + ' was successfully\ updated!') return redirect(url_for('show_venue', venue_id=venue_id)) else: flash('Please ensure all details are valid') return render_template('forms/edit_venue.html', form=form, venue=venue)
def create_venue_submission(): form = VenueForm() error = False try: if form.validate_on_submit(): venue = Venue( name=form.name.data, city=form.city.data, state=form.state.data, phone=form.phone.data, address=form.address.data, genres=form.genres.data, image_link=form.image_link.data, website=form.website.data, facebook_link=form.facebook_link.data, seeking_talent=form.seeking_talent.data, seeking_description=form.seeking_description.data ) db.session.add(venue) db.session.commit() # 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 else: raise Exception('Form validation failed') except Exception as e: print('create_venue_submission: ', e) db.session.rollback() print(sys.exc_info()) error = True finally: db.session.close() # on successful db insert, flash success if error: # TODO: on unsuccessful db insert, flash an error instead. # e.g., flash('An error occurred. Venue ' + data.name + ' could not be # listed.') flash('An error occurred. Venue ' + request.form['name'] + ' could not be listed.') return render_template('forms/new_venue.html', form=form) else: flash('Venue ' + request.form['name'] + ' was successfully listed!') 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 error = False form = VenueForm() try: if form.validate_on_submit(): new_venue = Venue( name=form.name.data, city=form.city.data, state=form.state.data, address=form.address.data, phone=form.phone.data, genres=','.join(form.genres.data), image_link=form.image_link.data, facebook_link=form.facebook_link.data, website=form.website.data, seeking_talent=form.seeking_talent.data, seeking_description=form.seeking_description.data) db.session.add(new_venue) 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() # on successful db insert, flash success if (error): flash('Error!') return render_template('forms/new_venue.html', form=form) else: flash('Venue ' + request.form['name'] + ' was successfully listed!') return redirect(url_for('index')) # 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('forms/new_venue.html', form=form)
def edit_venue_submission(venue_id): form = VenueForm() if not form.validate_on_submit(): flash(f'An error occurred. Venue could not be updated.', 'error') return redirect(url_for('show_venue', venue_id=venue_id)) try: venue = Venue.query.get(venue_id) for key in form.data: if form.data.get(key) is not None: setattr(venue, key, form.data.get(key)) db.session.commit() flash(f'Venue {venue.name} was successfully updated!') except: db.session.rollback() abort(500) finally: db.session.close() return redirect(url_for('show_venue', venue_id=venue_id))
def create_venue_submission(): error = False # on successful db insert, flash success form = VenueForm(request.form) # enum fix pattern: https://stackoverflow.com/questions/13558345/flask-app-using-wtforms-with-selectmultiplefield if form.validate_on_submit(): data = request.form city_name = data.get('city') city_state = data.get('state') name = data.get('name') genres = format_genres(data) address = data.get('address') phone = format_phone_number(data.get('phone')) facebook_link = data.get('facebook_link') image_link = data.get('image_link') try: city_id = City.get_id(city_state=city_state, city_name=city_name) if city_id is None: error = True new_venue = Venue(name=name, city_id=city_id, genres=genres, address=address, phone=phone, facebook_link=facebook_link, image_link=image_link) db.session.add(new_venue) db.session.flush() venue_id = new_venue.id db.session.commit() flash('Venue ' + name + ' was successfully listed!') except: db.session.rollback() print(sys.exc_info()) error = True finally: db.session.close() else: error = True if error: flash('An error occurred. Venue ' + name + ' could not be listed.') return abort(500) else: return redirect(url_for('show_venue', venue_id=venue_id))
def create_venue(): """ Create a venue """ is_post = (request.method == 'POST') form = VenueForm() if is_post: genres = form.genres.data else: genres = list() # set choices & validators based on possible options set_genre_field_options(form.genres, genres) if is_post and form.validate_on_submit(): venue = populate_venue(venue_factory(FactoryObj.OBJECT), form) # check for existing venue venue_id, venue_name = existing_venue( *extract_unique_properties(venue)) if venue_id is not None: url = url_for('display_venue', venue_id=venue_id) flash( Markup(f'A listing for {venue_name} already exists! ' f'Please see <a href="{url}">{venue_name}</a>.')) else: # add venue success, venue_name = create_venue_impl(venue) return create_result(success, venue_name, 'Venue') return render_template('forms/edit_venue.html', form=form, title='Create Venue', submit_action=url_for('create_venue'), cancel_url=url_for('index'), submit_text='Create', submit_title='Create venue')
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)
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)
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))
def create_venue_submission(): 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(): return render_template('forms/new_venue.html', form=form) request_data.pop('csrf_token', None) venue = Venue(**request_data) db.session.add(venue) db.session.commit() flash('Venue ' + request.form['name'] + ' was successfully listed!') except: flash('Venue ' + request.form['name'] + ' was failed!') db.session.rollback() finally: db.session.close() return render_template('pages/home.html')