コード例 #1
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,
      genres=form.genres.data,
      facebook_link=form.facebook_link.data,
      website=form.website.data,
      image_link=form.image_link.data,
      seeking_talent=form.seeking_talent.data,
      seeking_description=form.seeking_description.data,
    )
    venue.insert()

    flash('Venue ' + request.form['name'] + ' was successfully listed!', 'success')
  except:
    db.session.rollback()
    flash('An error occurred. Venue ' + request.form['name'] + ' could not be listed.', 'error')
  finally:
    db.session.close()

  return render_template('pages/home.html')
コード例 #2
0
ファイル: app.py プロジェクト: violinalan/FSND
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, meta={'csrf': False})
    if form.validate():
        try:
            venue = Venue()
            form.populate_obj(venue)

            if (request.form['seeking_talent'] == 'True'):
                venue.seeking_talent = True
            else:
                venue.seeking_talent = False

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

            flash('Venue ' + venue.name + ' was successfully listed!')
        except:
            db.session.rollback()
            flash('An error occurred. Venue ' + venue.name +
                  ' could not be listed.')
        finally:
            db.session.close()
    else:
        message = []
        for field, err in form.errors.items():
            message.append(field + ' ' + '|'.join(err))
        flash('Errors ' + str(message))

    # 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')
コード例 #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
    # on successful db insert, flash success

    # 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/flashin

    data = request.form
    try:
        new_venue = Venue(genres=data.getlist("genres[]"),
                          name=data.get("name"),
                          address=data.get("address"),
                          city=data.get("city"),
                          state=data.get("state"),
                          facebook_link=data.get("facebook_link"),
                          phone=data.get("phone"),
                          website=data.get("website_link"),
                          image_link=data.get("image_link"))

        Venue.insert(new_venue)

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

    except SQLAlchemyError as e:
        flash('An error occurred. Venue ' + request.form['name'] +
              ' could not be listed.')
    return render_template('pages/home.html')
コード例 #4
0
def create_venue_submission():
  # DONE: insert form data as a new Venue record in the db, instead
  # DONE: modify data to be the data object returned from db insertion
  try:
    new_data = VenueForm(request.form)
    venue = Venue(name=new_data.name.data,
            address=new_data.address.data,
            city=new_data.city.data,
            state=new_data.state.data,
            phone=new_data.phone.data,            
            facebook_link=new_data.facebook_link.data,
            image_link=new_data.image_link.data,
            genres=','.join(new_data.genres.data))
    if not venue.isDuplicate():
      db.session.add(venue)
      db.session.commit()
      # on successful db insert, flash success
      flash('Venue ' + new_data.name.data + ' was successfully listed!')
    else:
      flash('Venue ' + new_data.name.data + ' was not inserted since it is already listed!')
  except:
    db.session.rollback() 
    # DONE: on unsuccessful db insert, flash an error instead. 
    flash('An error occurred. Venue ' + new_data.name.data + ' could not be listed.')
  finally:
    db.session.close()
  
  return render_template('pages/home.html')
コード例 #5
0
def create_venue_submission():
    form = VenueForm()
    error = False
    # if the form passed validation, populate the venue object from form data
    if form.validate_on_submit():
        try:
            venue = Venue()

            form.populate_obj(venue)
            # genres is a list, so convert it to string
            genresList = request.form.getlist('genres')
            venue.genres = ', '.join(genresList)
            db.session.add(venue)
            # to return users to the new venue's page, flush the session, and store the id in another variable
            db.session.flush()
            venue_id = venue.id
            db.session.commit()
        except:
            # if failed, roll back and display a message to the user
            error = True
            db.session.rollback()
            print(sys.exc_info())
        finally:
            db.session.close()
            # if error, return to home and display a message, or go to the new venue's page
            if error:
                flash(
                    'Oops! Something wrong happened, venue ' +
                    str(form.name.data) + ' could not be listed!', 'error')
                return render_template('pages/home.html')
            else:
                flash('Venue ' + str(form.name.data) +
                      ' was listed successfully!')
                return redirect(url_for('show_venue', venue_id=venue_id))
    return render_template('forms/new_venue.html', form=form)
コード例 #6
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)
    if form.validate():
        try:
            seeking_talent = False
            seeking_description = ''
            if 'seeking_talent' in request.form:
                seeking_talent = request.form['seeking_talent'] == 'y'
            if 'seeking_description' in request.form:
                seeking_description = request.form['seeking_description']
            venue_details = Venue(name=request.form['name'],
                                  genres=request.form.getlist('genres'),
                                  address=request.form['address'],
                                  city=request.form['city'],
                                  state=request.form['state'],
                                  phone=request.form['phone'],
                                  website=request.form['website_link'],
                                  facebook_link=request.form['facebook_link'],
                                  image_link=request.form['image_link'],
                                  seeking_talent=seeking_talent,
                                  seeking_description=seeking_description)
            Venue.insert(venue_details)
            # on successful db insert, flash success
            flash('Venue ' + request.form['name'] +
                  ' was successfully listed!')
        except:
            flash('An error occurred. Venue ' + request.form['name'] +
                  ' could not be listed.')
    return render_template('pages/home.html')
コード例 #7
0
    def post_venue(jwt):

        try:
            venue_data = request.get_json()

            name = venue_data.get('name')
            address = venue_data.get('address')
            city = venue_data.get('city')
            zipcode = venue_data.get('zipcode')
            venue_image = venue_data.get('image')
            description = venue_data.get('description')
            is_available = venue_data.get('is_available')

            venue = Venue(
                name=name,
                address=address,
                city=city,
                zipcode=zipcode,
                is_available=is_available,
                image=venue_image,
                description=description
            )

            venue.insert()

            return jsonify({
                'success': True,
                'venue': venue.format()
            }), 200
        except Exception:
            print(sys.exc_info())
            abort(404)
コード例 #8
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

    error = False
    try:

        form = VenueForm(request.form, meta={'csrf': False})
        new_venue = Venue()
        form.populate_obj(new_venue)
        new_venue.image_link = "https://images.unsplash.com/photo-1543900694-133f37abaaa5?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=400&q=60"
        db.session.add(new_venue)
        db.session.commit()
    except:
        db.session.rollback()
        error = True
        print(sys.exc_info())
    finally:
        db.session.close()
        if error:
            flash('Venue ' + request.form['name'] + ' was an error!')
            return render_template('pages/home.html')
        else:
            # on successful db insert, flash success
            flash('Venue ' + request.form['name'] +
                  ' was successfully listed!')
            return render_template('pages/home.html')
コード例 #9
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
    error = False
    try:
        name = request.form.get('name')
        city = request.form.get('city')
        state = request.form.get('state')
        address = request.form.get('address')
        phone = request.form.get('phone')
        genres = request.form.get('genres')
        image_link = request.form.get('image_link')
        facebook_link = request.form.get('facebook_link')
        new_record = Venue(name=name,
                           city=city,
                           state=state,
                           address=address,
                           phone=phone,
                           genres=genres,
                           image_link=image_link,
                           facebook_link=facebook_link)
        Venue.create(new_record)
    except:
        db.session.rollback()
        print(sys.exc_info())
        error = True
    finally:
        if error:
            flash('An error occurred.It could not be listed.')
            return render_template('pages/home.html')
        else:
            flash('Venue ' + request.form['name'] +
                  ' was successfully listed!')
            return render_template('pages/home.html')
        db.session.close()
コード例 #10
0
def create_venue_form():
    form = VenueForm(request.form)

    if form.validate_on_submit():
        error = False

        try:
            venue = Venue()
            form.populate_obj(venue)

            talent = request.form.get('seeking_talent')
            if talent == 'y':
                venue.seeking_talent = True
            else:
                venue.seeking_talent = False

            db.session.add(venue)
            db.session.commit()
        except:
            error = True
            db.session.rollback()
            print(sys.exc_info())
        finally:
            db.session.close()
        if error:
            flash('An error occurred. Venue could not be listed.')
        else:
            flash('Venue was successfully listed!')

        return render_template('pages/home.html')
    else:
        for field, err in form.errors.items():
            flash('Error: ' + field + ' ' + '|'.join(err))

        return render_template('forms/new_venue.html', form=form)
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

    name = request.form.get('name')
    city = request.form.get('city')
    state = request.form.get('state')
    phone = request.form.get('phone')
    genres = request.form.get('genres')
    facebook_link = request.form.get('facebook_link')

    venue = Venue(name=name,
                  city=city,
                  state=state,
                  phone=phone,
                  genres=genres,
                  facebook_link=facebook_link)
    ##venue.id =1  ##Kaustav
    try:
        venue.add()
        flash("Venue" + request.form['name'] + "was successfully listed!")
    except:
        flash('An error occurred. Venue ' + request.form['name'] +
              ' could not be listed.')
        db.session.rollback()
        #abort(422)
    finally:
        db.session.close()
    ##flash('Venue ' + request.form['name'] + ' was successfully listed!')
    # 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')
コード例 #12
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

    try:
        new_venue = Venue(
            name=request.form['name'],
            genres=request.form.getlist('genres'),
            address=request.form['address'],
            city=request.form['city'],
            state=request.form['state'],
            phone=request.form['phone'],
            website=request.form['website'],
            facebook_link=request.form['facebook_link'],
            image_link=request.form['image_link'],
            seeking_talent=request.form['seeking_talent'],
            description=request.form['seeking_description'],
        )
        #insert new venue records into the db
        Venue.insert(new_venue)
        # on successful db insert, flash success
        flash('Venue ' + request.form['name'] + ' was successfully listed!')
    except SQLAlchemyError as e:
        # on unsuccessful db insert, flash an error instead.
        flash('An error occurred. Venue ' + request.form['name'] +
              ' could not be listed.')
    return render_template('pages/home.html')
コード例 #13
0
ファイル: venue.py プロジェクト: samandarjon/udacity_fyyur
def create_venue_submission():
    form = VenueForm(request.form)
    if form.validate_phone(form.phone):
        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!',
                "success")
        except:
            flash(
                'Error occurred. Venue ' + form.name + ' could not be listed.',
                "danger")
    else:
        flash("Phone number is not valid", 'warning')

    return render_template('pages/home.html')
コード例 #14
0
def create_venue_submission():
    # DONE: TODO: insert form data as a new Venue record in the db, instead
    # DONE: TODO: modify data to be the data object returned from db insertion

    # on successful db insert, flash success
    venue_form = VenueForm(request.form)

    try:
        newVenue = Venue(
            name=venue_form.name.data,
            address=venue_form.address.data,
            city=venue_form.city.data,
            state=venue_form.state.data,
            phone=venue_form.phone.data,
            facebook_link=venue_form.facebook_link.data,
            image_link=venue_form.image_link.data,
            genres=",".join(venue_form.genres.data),
            seeking_talent=venue_form.seeking_talent.data == 'True')
        newVenue.add()
        flash('Venue ' + newVenue.name + ' was successfully listed!')
        return redirect(url_for('index'))
    except:
        # DONE: 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 ' + venue_form.name.data +
              ' could not be listed.')
        print(sys.exc_info())
        return render_template('forms/new_venue.html', form=venue_form)
コード例 #15
0
ファイル: app.py プロジェクト: bojan777/Fyyur
def create_venue_submission():
    form = VenueForm(request.form, meta={'csrf': False})
    if form.validate():
        try:
            venue = Venue()
            form.populate_obj(venue)
            venue.seeking_talent = (form.seeking_talent.data == 'y')
            db.session.add(venue)
            db.session.commit()
            flash('Venue ' + request.form['name'] +
                  ' was successfully listed!')

        except ValueError as e:
            print(e)
            db.session.rollback()
            flash('An error occurred. Artist could not be listed.')
        finally:
            db.session.close()
    else:
        message = []
        for field, err in form.errors.items():
            message.append(field + ' ' + '|'.join(err))
        flash('Errors ' + str(message))

    return render_template('pages/home.html')
コード例 #16
0
ファイル: venue.py プロジェクト: varsha0201/fyyur-fullstacknd
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')
コード例 #17
0
ファイル: app.py プロジェクト: janroijen/fyyur-jhr
def delete_venue(venue_id):
    try:
        Venue.delete(venue_id)
    except (DBAPIError, SQLAlchemyError):
        abort(404)

    return Response(status=200)
コード例 #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)
    venue_data = Venue.query.get(venue_id)
    if venue_data:
        if form.validate():
            seeking_talent = False
            seeking_description = ''
            if 'seeking_talent' in request.form:
                seeking_talent = request.form['seeking_talent'] == 'y'
            if 'seeking_description' in request.form:
                seeking_description = request.form['seeking_description']
            setattr(venue_data, 'name', request.form['name'])
            setattr(venue_data, 'genres', request.form.getlist('genres'))
            setattr(venue_data, 'address', request.form['address'])
            setattr(venue_data, 'city', request.form['city'])
            setattr(venue_data, 'state', request.form['state'])
            setattr(venue_data, 'phone', request.form['phone'])
            setattr(venue_data, 'website', request.form['website'])
            setattr(venue_data, 'facebook_link', request.form['facebook_link'])
            setattr(venue_data, 'image_link', request.form['image_link'])
            setattr(venue_data, 'seeking_description', seeking_description)
            setattr(venue_data, 'seeking_talent', seeking_talent)
            Venue.update(venue_data)
            return redirect(url_for('show_venue', venue_id=venue_id))
        else:
            print(form.errors)
    return render_template('errors/404.html'), 404
コード例 #19
0
def push(request):
    if request.method == 'POST':
        try:
            # capture JSON data, convert to dictionary
            jsonData = json.loads(request.POST['checkin'])

            # check to see if the venue exists
            try:
				send_reply(jsonData['id'])
                venue = Venue.objects.get(venueId = jsonData['venue']['id'])

            # if not, then create it!
            except Exception:

                # make the venue model
                venue = Venue(
                    venueId = jsonData['venue']['id'],
                    name = jsonData['venue']['name'],
                    address = jsonData['venue']['location']['address'],
                    lat = jsonData['venue']['location']['lat'],
                    lng = jsonData['venue']['location']['lng'],
                    postalCode = jsonData['venue']['location']['postalCode'],
                    city = jsonData['venue']['location']['postalCode'],
                    state = jsonData['venue']['location']['state'],
                    country = jsonData['venue']['location']['country'],
                )

                # save dat ish
                venue.save()
            return HttpResponse("OK\r\n")
        except Exception as steve:
            return HttpResponseServerError("ERROR" + " " + steve.message + "\r\n")
コード例 #20
0
def create_venue_submission():
  error = False

  form = VenueForm()
  try:
    venue = Venue(
      name=form.name.data,
      genres=form.genres.data,
      city=form.city.data,
      state=form.state.data,
      phone=form.phone.data,
      facebook_link=form.facebook_link.data,
      address=form.address.data,
      seeking_talent=True,
      seeking_description='',
      upcoming_shows_count=0,
      past_shows_count=0
    )

    venue.insert()
  except:
    error = True
    print(sys.exc_info())
    db.session.rollback()

  if error:
    abort(400)
    flash('An error occured')
  else: 
    # on successful db insert, flash success
    flash('Venue ' + form.name.data + ' was successfully listed!')
  return render_template('pages/home.html')
コード例 #21
0
def create_venue_submission():
    # seeking = request.form['seeking_venue']
    # if seeking == 'y':
    #     seeking_venue = True
    # else:
    #     seeking_venue = False
    seeking = False

    newVenue = Venue(name=request.form['name'],
                     city=request.form['city'],
                     address=request.form['address'],
                     state=request.form['state'],
                     genres=request.form['genres'],
                     facebook_link=request.form['facebook_link'],
                     phone=request.form['phone'],
                     seeking_talent=seeking)

    if Venue.insert(newVenue):
        flash('Venue ' + request.form['name'] + ' was successfully listed!')
    else:
        abort(404)
        flash('An error occurred. Venue ' + request.form['name'] +
              ' could not be listed.')

    return redirect(url_for('show_venue', venue_id=newVenue.id))
コード例 #22
0
def create_venue_submission():
    try:
        form = VenueForm(request.form)

        venue = Venue(
            name=form.name.data,
            city=form.city.data,
            state=form.state.data,
            phone=form.phone.data,
            address=form.address.data,
            website=form.website.data,
            image_link=form.image_link.data,
            genres=', '.join(form.genres.data),
            facebook_link=form.facebook_link.data,
            seeking_talent=bool(form.seeking_talent.data),
            seeking_description=form.seeking_description.data,
        )
        venue.insert()

        flash(f'Venue {request.form["name"]} was successfully listed!')
    except Exception as e:
        flash(
            f'An error occurred. Venue {request.form["name"]} could not be listed.')
        print('Error', e)
    finally:
        return render_template('pages/home.html')
コード例 #23
0
def edit_venue_submission(venue_id):
    form = VenueForm(request.form)
    venue = Venue.query.get(venue_id)

    try:
        if venue:
            setattr(venue, 'name', request.form['name'])
            setattr(venue, 'city', request.form['city'])
            setattr(venue, 'state', request.form['state'])
            setattr(venue, 'address', request.form['address'])
            setattr(venue, 'phone', request.form['phone'])
            setattr(venue, 'genres', request.form.getlist('genres'))
            setattr(venue, 'facebook_link', request.form['facebook_link'])
            setattr(venue, 'image_link', request.form['image_link'])
            Venue.update(venue)
            flash('Venue ' + request.form['name'] +
                  'was successfully updated!')
    except:
        error = True
        db.session.rollback()
        print(sys.exc_info())
        flash(f'An error occurred. Venue could not be changed.')
    finally:
        db.session.close()
    return redirect(url_for('show_venue', venue_id=venue_id))
コード例 #24
0
ファイル: app.py プロジェクト: sanya-kenneth/FSND
def create_venue_submission():
    form = VenueForm(csrf_enabled=True)
    if form.validate_on_submit():
        venue_data = dict(name=form.name.data,
                          genres=list(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,
                          seek_description=form.seek_description.data,
                          image_link=form.image_link.data)
        check_venue = Venue.query.filter_by(name=form.name.data).first()
        if check_venue:
            flash('A venue with that name already exists')
            return render_template('pages/home.html')
        new_venue = Venue(**venue_data)
        new_venue.save()
        flash('Venue ' + request.form['name'] + ' was successfully listed!')
    else:
        errors = form.errors
        for key, error in errors.items():
            flash(f"{key}  Error " + " => " + f"{error[0]} :(")
        return render_template('pages/home.html')
    return render_template('pages/home.html')
コード例 #25
0
def create_venue_submission():
    # TODO: insert form data as a new Venue record in the db, instead
    try:
        # creating new Venue object, and in pending state until commit happen
        venue = Venue(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['genres']
        venue.add_genres(genres)

        db.session.add(venue)
        db.session.commit()
        flash('Venue ' + request.form['name'] + ' was successfully listed!')
    except Exception as error:
        print(error)
        db.session.rollback()
        # TODO: on unsuccessful db insert, flash an error instead.
        flash('An error occurred. Venue ' + request.form['name'] +
              ' could not be listed.')
    finally:
        db.session.close()

    # on successful db insert, flash success
    # 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')
コード例 #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
    try:
        seeking_talent = False
        seeking_description = ''
        if 'seeking_talent' in request.form:
            seeking_talent = request.form['seeking_talent'] == 'y'
        if 'seeking_description' in request.form:
            seeking_description = request.form['seeking_description']
        new_venue = Venue(
            name=request.form['name'],
            genres=request.form.getlist('genres'),
            address=request.form['address'],
            city=request.form['city'],
            state=request.form['state'],
            phone=request.form['phone'],
            website=request.form['website'],
            facebook_link=request.form['facebook_link'],
            image_link=request.form['image_link'],
            seeking_talent=seeking_talent,
            description=seeking_description,
        )
        #db.session.add(new_venue)
        #db.session.commit()

        Venue.insert(new_venue)
        flash('Venue ' + request.form['name'] + ' was successfully listed!')
    except SQLAlchemyError as e:
        print(e)  # logging
        flash('An error occurred. Venue ' + request.form['name'] +
              ' could not be listed.')

    return render_template('pages/home.html')
コード例 #27
0
ファイル: app.py プロジェクト: rgekhman/MyCodeSamples
def delete_venue(venue_id):
    venue = Venue(id=venue_id)
    try:
        isVenueExistsInShows, shows = venue.isVenueExistsInShows()
        if not isVenueExistsInShows:
            venue.delete()

            response = jsonify(type="success")
            response.status_code = 200
            return response
        else:
            raise CannotRemoveObject(
                'Cannot remove this venue because it is used in {} Shows'.
                format(len(shows)))

    except CannotRemoveObject as ex:
        _message = 'Venue could not be deleted. ' + ex.message
        response = jsonify(type="error", message=_message)
        response.status_code = ex.status_code
        return response

    except Exception as ex:
        _message = 'An error occurred. ' + ex.args[0]
        response = jsonify(type="error", message=_message)
        response.status_code = 522  #custom server error code
        return response
コード例 #28
0
ファイル: app.py プロジェクト: vladimir-ionita/Udacity
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
    # on successful db insert, flash success
    # flash('Venue ' + request.form['name'] + ' was successfully listed!')
    form = VenueForm(request.form)
    if form.validate():
        try:
            seeking_talent = False
            seeking_description = ''
            if 'seeking_talent' in request.form:
                seeking_talent = request.form['seeking_talent'] == 'y'
            if 'seeking_description' in request.form:
                seeking_description = request.form['seeking_description']
            new_venue = Venue(
                name=request.form['name'],
                genres=request.form.getlist('genres'),
                address=request.form['address'],
                city=request.form['city'],
                state=request.form['state'],
                phone=request.form['phone'],
                website=request.form['website'],
                facebook_link=request.form['facebook_link'],
                image_link=request.form['image_link'],
                seeking_talent=seeking_talent,
                seeking_description=seeking_description,
            )
            Venue.insert(new_venue)
            flash('Venue ' + request.form['name'] + ' was successfully listed!')
        except SQLAlchemyError 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/
            flash('An error occurred. Venue ' + request.form['name'] + ' could not be listed.')
    return render_template('pages/home.html')
コード例 #29
0
def create_venue_submit():

    form = VenueForm(csrf_enabled=True)

    if form.validate_on_submit():
        venue_data = dict(name=form.name.data,
                          genres=list(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,
                          seek_description=form.seek_description.data,
                          image_link=form.image_link.data)
        venue_already_exists = Venue.query.filter_by(
            name=form.name.data).first()
        if venue_already_exists:
            flash(
                'Error. There already exists a venue with that name. Please search for it or create another'
            )
            return render_template('pages/home.html')
        brand_new_venue = Venue(**venue_data)
        brand_new_venue.save()

        flash('Venue ' + request.form['name'] + ' was successfully listed!')
        return render_template('pages/home.html')

    else:
        flash('An errror ocurred. Venue ' + request.form['name'] +
              ' could not be listed')
        return render_template('pages/home.html')

    return render_template('pages/home.html')
コード例 #30
0
ファイル: app.py プロジェクト: rgekhman/MyCodeSamples
def create_venue_submission():
    venue_form = VenueForm(request.form)

    try:
        new_venue = Venue(name=venue_form.name.data,
                          genres=','.join(venue_form.genres.data),
                          address=venue_form.address.data,
                          city=venue_form.city.data,
                          state=venue_form.state.data,
                          phone=venue_form.phone.data,
                          facebook_link=venue_form.facebook_link.data,
                          image_link=venue_form.image_link.data)
        if not new_venue.isExists():
            new_venue.add()
            # on successful db insert, flash success
            flash('Venue ' + request.form['name'] +
                  ' was successfully listed!')
        else:
            flash(  'Venue with a Name: {} , City: {} , and State: {} already exists! New record not inserted'.\
                    format(request.form['name'], request.form['city'], request.form['state']))
    except Exception as ex:
        flash('An error occurred. Venue ' + request.form['name'] +
              ' could not be listed.')
        traceback.print_exc()

    return render_template('pages/home.html')
コード例 #31
0
def create_venue_submission():
    form = VenueForm(request.form)
    if form.validate():
        try:
            seeking_talent = False
            seeking_description = ''
            if 'seeking_talent' in request.form:
                seeking_talent = request.form['seeking_talent'] == 'y'
            if 'seeking_description' in request.form:
                seeking_description = request.form['seeking_description']
            new_venue = Venue(
                name=request.form['name'],
                genres=request.form.getlist('genres'),
                address=request.form['address'],
                city=request.form['city'],
                state=request.form['state'],
                phone=request.form['phone'],
                website=request.form['website'],
                facebook_link=request.form['facebook_link'],
                image_link=request.form['image_link'],
                seeking_talent=seeking_talent,
                seeking_description=seeking_description,
            )
            Venue.insert(new_venue)
            flash('Venue ' + request.form['name'] +
                  ' was successfully listed!')
        except SQLAlchemyError:
            flash('An error occurred. Venue ' + request.form['name'] +
                  ' could not be listed.')
    return render_template('pages/home.html')
コード例 #32
0
ファイル: importer.py プロジェクト: usmanm/goodplates
def load_venue(d):
	try:
		v = Venue.objects.get(locu_id=d["id"])
	except Venue.DoesNotExist:
		v = Venue(locu_id=d["id"],
		          name=d["name"],
		          address=d["address"],
		          locality=d["locality"],
		          region=d["region"],
			  lat=d["geo"][0],
			  lon=d["geo"][1],
		          website=d["website"]
		)
		v.save()
	return v
コード例 #33
0
ファイル: db_updates.py プロジェクト: mknudtsen/sk-events
def update_events(venue_ids):

    for identifier in venue_ids:
    	payload = {'apikey': SONGKICK, 'per_page': 50, 'page': 1}
    	url = 'http://api.songkick.com/api/3.0/venues/'+str(identifier)+'/calendar.json?'

    	r = requests.get(url, params=payload)
    	r.raise_for_status()
    	data = r.json()

    	venue = Venue.get(venue_id=identifier)
    	#venue.save()

    	try:
    		results = data['resultsPage']['results']['event']
    	except KeyError, error:
    		print 'An error occured: %s: There are no upcoming events for this venue: %s' % (error, venue.name)
    		continue

    	for item in results:
            try:
                event_id = item['id']
                name = item['displayName']
                type = item['type']
                status = item['status']
                datetime = item['start']['datetime']
                url = item['uri']
                popularity = item['popularity']
            except KeyError, error:
                print 'An error occured: %s: There is limited data for event: %s' % (error, event_id)
                pass

            event, _created = Event.get_or_create(event_id=event_id, venue=venue)
            event.name = name
            event.type = type
            event.status = status
            event.datetime = datetime
            event.url = url
            event.popularity = popularity
            print event.name
            event.save()

            for artist in item['performance']:
                try:
                    artist_id = artist['artist']['id']
                    name = artist['artist']['displayName']
                    performer, _created = Artist.get_or_create(artist_id=artist_id, name=name)
                    billing = artist['billing']
                    billing_index = artist['billingIndex']
                    p, _created = Performance.get_or_create(artist=performer, event=event)
                    p.billing = billing
                    p.billing_index = billing_index
                    p.save()

                except KeyError, error:
                    print 'An error occured %s' % error
                    pass
コード例 #34
0
    def get_queryset(self):
        lat = self.kwargs['lat']
        lng = self.kwargs['lng']

        result = []

        r = requests.get(
            'https://api.foursquare.com/v2/venues/explore?section=food&ll={0},{1}&client_id={2}&client_secret={3}&v={4}'
            .format(
                lat,
                lng,
                keyring.get_password('WebApp', 'client_id'),
                keyring.get_password('WebApp', 'client_secret'),
                '20150608'))

        if r.status_code == 200:
            # Loop through results
            for item in r.json()['response']['groups'][0]['items']:
                json_venue = item['venue']
                if 'location' in json_venue and 'address' in json_venue['location']:

                    venue = Venue(
                        id=json_venue['id'],
                        name=json_venue['name'],
                        address=json_venue['location']['address'],
                        rating=json_venue['rating'],
                        price=json_venue['price']['tier'] if 'price' in json_venue else 0,
                        lat=json_venue['location']['lat'],
                        lng=json_venue['location']['lng'])

                    result.append(venue)

                    if Venue.objects.filter(id = json_venue['id']).count() == 0:
                        venue.save()

        return result
コード例 #35
0
ファイル: generate_data.py プロジェクト: tufyx/amh_api
def build_venues():
    for v in venues:
        venue = Venue(name=v[0], address=v[1])
        venue.save()
コード例 #36
0
ファイル: views.py プロジェクト: ReptarAzar/rocket-backend
def home(request):
    if request.method == 'POST':
        try:
            # capture JSON data, convert to dictionary
            jsonData = simplejson.loads(request.POST['checkin'])

            # check to see if the user already exists
            try:
                user = FoursquareUser.objects.get(userId = jsonData['user']['id'])

            # if not, then create him!
            except Exception:

                # we have to check since since the twitter field isn't always there
                try:
                    twttr = jsonData['user']['contact']['twitter'],
                except:
                    twttr = None,

                # make the user model
                user = FoursquareUser(
                    userId = jsonData['user']['id'],
                    firstName = jsonData['user']['firstName'],
                    lastName = jsonData['user']['lastName'],
                    photo = jsonData['user']['photo'],
                    gender = jsonData['user']['gender'],
                    homeCity = jsonData['user']['homeCity'],
                    bio = jsonData['user']['bio'],
                    twitter = twttr
                )

                # save dat ish
                user.save()

            # check to see if the venue exists
            try:
                venue = Venue.objects.get(venueId = jsonData['venue']['id'])

            # if not, then create it!
            except Exception:

                # see if the contact stuff exists
                try:
                    phn = jsonData['venue']['contact']['phone']
                except:
                    phn = None
                try:
                    twttr = jsonData['venue']['contact']['twitter']
                except:
                    twttr = None

                # make the venue model
                venue = Venue(
                    venueId = jsonData['venue']['id'],
                    name = jsonData['venue']['name'],
                    phone = phn,
                    twitter = twttr,
                    address = jsonData['venue']['location']['address'],
                    lat = jsonData['venue']['location']['lat'],
                    lng = jsonData['venue']['location']['lng'],
                    postalCode = jsonData['venue']['location']['postalCode'],
                    city = jsonData['venue']['location']['postalCode'],
                    state = jsonData['venue']['location']['state'],
                    country = jsonData['venue']['location']['country'],
                    categoryId = jsonData['venue']['categories'][0]['id'],
                    categoryName = jsonData['venue']['categories'][0]['name'],
                    categoryPluralName = jsonData['venue']['categories'][0]['pluralName'],
                    categoryShortName = jsonData['venue']['categories'][0]['shortName'],
                    categoryIcon = jsonData['venue']['categories'][0]['icon'],
                    categoryPrimary = jsonData['venue']['categories'][0]['primary'],
                    statsCheckinsCount = jsonData['venue']['stats']['checkinsCount'],
                    statsUsersCount = jsonData['venue']['stats']['usersCount'],
                    statsTipsCount = jsonData['venue']['stats']['tipCount'],
                    statsLikesCount = jsonData['venue']['likes']['count'],
                    url = jsonData['venue']['url']
                )

                # save dat ish
                venue.save()

            checkin = Checkin(
                checkinId = jsonData['id'],
                createdAt = datetime.datetime.fromtimestamp(jsonData['createdAt']),
                timezone = jsonData['timeZone'],
                user = user,
                venue = venue
            )
            checkin.save()

            # ping the netduino!
            c = pycurl.Curl()
            c.setopt(c.URL, "http://69.193.126.141:8080")
            c.perform()
            return HttpResponse("OK\r\n")
        except Exception as steve:
            return HttpResponseServerError("ERROR" + " " + steve.message + "\r\n")
    else:
        print "NOT POST!"
        return HttpResponseServerError("ERROR NOT POST")
コード例 #37
0
def push(request):
    if request.method == 'POST':
        try:
            # capture JSON data, convert to dictionary
            jsonData = simplejson.loads(request.POST['checkin'])

            # ping the netduino right away
            r = ping.delay()

            # check to see if the user already exists
            try:
                user = FoursquareUser.objects.get(userId = jsonData['user']['id'])

            # if not, then create him!
            except Exception:

                # we have to check since since the twitter field isn't always there
                try:
                    twttr = jsonData['user']['contact']['twitter'],
                except:
                    twttr = None,

                # make the user model
                user = FoursquareUser(
                    userId = jsonData['user']['id'],
                    firstName = jsonData['user']['firstName'],
                    lastName = jsonData['user']['lastName'],
                    photo = jsonData['user']['photo'],
                    gender = jsonData['user']['gender'],
                    homeCity = jsonData['user']['homeCity'],
                    bio = jsonData['user']['bio'],
                    twitter = twttr
                )

                # save dat ish
                user.save()

            # check to see if the venue exists
            try:
                venue = Venue.objects.get(venueId = jsonData['venue']['id'])

            # if not, then create it!
            except Exception:

                # see if the contact stuff exists
                try:
                    phn = jsonData['venue']['contact']['phone']
                except:
                    phn = None
                try:
                    twttr = jsonData['venue']['contact']['twitter']
                except:
                    twttr = None

                # make the venue model
                venue = Venue(
                    venueId = jsonData['venue']['id'],
                    name = jsonData['venue']['name'],
                    phone = phn,
                    twitter = twttr,
                    address = jsonData['venue']['location']['address'],
                    lat = jsonData['venue']['location']['lat'],
                    lng = jsonData['venue']['location']['lng'],
                    postalCode = jsonData['venue']['location']['postalCode'],
                    city = jsonData['venue']['location']['postalCode'],
                    state = jsonData['venue']['location']['state'],
                    country = jsonData['venue']['location']['country'],
                    categoryId = jsonData['venue']['categories'][0]['id'],
                    categoryName = jsonData['venue']['categories'][0]['name'],
                    categoryPluralName = jsonData['venue']['categories'][0]['pluralName'],
                    categoryShortName = jsonData['venue']['categories'][0]['shortName'],
                    categoryIcon = jsonData['venue']['categories'][0]['icon'],
                    categoryPrimary = jsonData['venue']['categories'][0]['primary'],
                    statsCheckinsCount = jsonData['venue']['stats']['checkinsCount'],
                    statsUsersCount = jsonData['venue']['stats']['usersCount'],
                    statsTipsCount = jsonData['venue']['stats']['tipCount'],
                    statsLikesCount = jsonData['venue']['likes']['count'],
                    url = jsonData['venue']['url']
                )

                # save dat ish
                venue.save()

            checkin = Checkin(
                checkinId = jsonData['id'],
                createdAt = datetime.datetime.fromtimestamp(jsonData['createdAt']),
                timezone = jsonData['timeZone'],
                user = user,
                venue = venue
            )
            checkin.save()

            # grab the mayor
            mayorJson = simplejson.loads(urllib2.urlopen(
                "https://api.foursquare.com/v2/venues/" +
                jsonData['venue']['id'] +
                "?oauth_token=Y10QHO1ZKLBPAXKUZPKSHBFW5WVRKURG0S2CKBX2LA04ERZS&v=20120608").read()
            )

            mayorId = mayorJson['response']['venue']['mayor']['user']['id']

            # check to see if mayor is in DB, if not then add it
            try:
                mayor = FoursquareUser.objects.get(userId = mayorId)
                venue.mayor = mayor
            except:

                # we have to check since since the twitter field isn't always there
                try:
                    twttr = mayorJson['response']['venue']['mayor']['user']['contact']['twitter'],
                except:
                    twttr = None,

                user = FoursquareUser(
                    userId = mayorJson['response']['venue']['mayor']['user']['id'],
                    firstName = mayorJson['response']['venue']['mayor']['user']['firstName'],
                    lastName = mayorJson['response']['venue']['mayor']['user']['lastName'],
                    photo = mayorJson['response']['venue']['mayor']['user']['photo'],
                    gender = mayorJson['response']['venue']['mayor']['user']['gender'],
                    homeCity = mayorJson['response']['venue']['mayor']['user']['homeCity'],
                    bio = mayorJson['response']['venue']['mayor']['user']['bio'],
                    twitter = twttr
                )

                # save dat ish
                user.save()

            venue.mayor = user

            return HttpResponse("OK\r\n")
        except Exception as steve:
            return HttpResponseServerError("ERROR" + " " + steve.message + "\r\n")
        finally:
            print r.status
    else:
        return HttpResponseServerError("Push some ish and get back to me\r\n")
コード例 #38
0
ファイル: db_updates.py プロジェクト: mknudtsen/sk-events
        	country = results['city']['country']['displayName']
        	lat = results['lat']
        	lng = results['lng']
        	street = results['street']
        	zip_code = results['zip']
        	phone = results['phone']
        	url = results['website']
        	capacity = results['capacity']
        except IntegrityError, error:
        	print 'An error occured: %s' % error
        	pass
        except KeyError, error:
        	print 'An error occured: %s' % error
        	pass

        venue, _created = Venue.get_or_create(venue_id=venue_id, name=name)
        venue.city = city
        venue.state = state
        venue.country = country
        venue.lat = lat
        venue.lng = lng
        venue.street = street
        venue.zip_code = zip_code
        venue.phone = phone
        venue.url = url
        venue.capacity = capacity
        print venue.name
        venue.save()

        time.sleep(1)