Esempio n. 1
0
def venues_create_post():
    # 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:
        form = VenueForm(request.form)
        if form.validate():
            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.getlist('genres')
            facebook_link = request.form.get('facebook_link', '')
            venue = Venue(name=name,
                          city=city,
                          state=state,
                          address=address,
                          phone=phone,
                          genres=genres,
                          facebook_link=facebook_link)

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

        # on successful db insert, flash success
        flash('Venue ' + request.form['name'] + ' was successfully listed!')
        return render_template('pages/home.html')
    except:
        db.session.rollback()
        flash('An error occurred. Venue ' + request.form['name'] +
              ' could not be listed.')
Esempio n. 2
0
def create_venue_submission():
    error = False
    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']
        genre = request.form.getlist('genres')
        venue.genres = ','.join(genre)
        venue.facebook_link = request.form['facebook_link']
        db.session.add(venue)
        db.session.commit()
    except:
        error = True
        db.session.rollback()
        print(sys.exc_info())

    db.session.close()
    if error:
        flash('An error occured. Venue ' +
              request.form['name'])
    else:
        flash('Venue ' + request.form['name'] +
              ' was successfully added!')
    return render_template('pages/home.html')
Esempio n. 3
0
 def merge(self, id, other_id):
     try:
         old = Venue.get(id)
         new = Venue.get(other_id)
         Venue.merge(old, new)
         # add this to fixup dict, so will never have to merge again
         venue_fixup_dict[old.name] = new.name
         venue_fixup_dict.tidy(old.name, new.name)
         flash("%s merged into %s and learned" % (old.name, new.name))
     except SQLObjectNotFound:
         flash("Could not move")
     util.redirect("/venues/%s" % other_id)
Esempio n. 4
0
 def save(self, id=0, **kw):
     if id:
         try:
             v = Venue.get(id)
             v.set(**v.clean_dict(kw))
             flash("Updated")
         except SQLObjectNotFound:
             flash("Update Error")
     else:
         v = Venue(added_by=identity.current.user, **Venue.clean_dict(kw))
         flash("Added")
     v.approved = datetime.now()
     util.redirect("/venues/%s" % v.id)
Esempio n. 5
0
def update_venues():
    refresh_date = datetime.date.today() - datetime.timedelta(venue_refresh_days)
    venues = Venue.select(
        AND(Venue.q.approved != None, OR(Venue.q.batch_updated == None, Venue.q.batch_updated < refresh_date))
    )
    count = venues.count()
    if not util.is_production():
        count = min(count, 10)

    for venue in venues[:count]:
        if venue.zip_code:
            area = ", " + venue.zip_code
        else:
            area = ", Portland, OR"
        if venue.address:
            try:
                lat, lon, zip_code = geo.get_geocode(venue.address + area)
                venue.geocode_lat = lat
                venue.geocode_lon = lon
                if not venue.zip_code:
                    venue.zip_code = zip_code
            except IOError:
                pass
        venue.batch_updated = datetime.datetime.now()

    return count
Esempio n. 6
0
def create_venue_submission():
    form = VenueForm()
    # 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
    if request.method == 'POST':
        try:
            venue = Venue(
                  name=form.name.data,
                  city=form.city.data,
                  state=form.state.data,
                  address=form.address.data,
                  genres=form.genres.data,
                  phone=form.phone.data,
                  website=form.website.data,
                  image_link=form.image_link.data,
                  facebook_link=form.facebook_link.data
                )

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

            # on successful db insert, flash success
            flash('Venue ' + form.name.data + ' was successfully listed!')
        except:
            db.session.rollback()

            # DONE: on unsuccessful db insert, flash an error instead.
            flash('An error occurred. Venue ' +
                  form.name.data + ' could not be listed.')
        finally:
            db.session.close()
            return render_template('pages/home.html')
Esempio n. 7
0
def load_venues(file_user):

    # Venue.query.delete()

    for row in (open(file_user)):
        row = row.strip()

        user_id, venue_name, venue_url, venue_email, venue_address, venue_city, venue_type, venue_backspace, venue_capacity, venue_license, time_id, venue_rent, venue_ranking = row.split(
            ",")

        # IF YOU ADD THE ACT PREFERRED: ADD THE venue_show_preferred TO THE UMPAKING

        new_venue = Venue(user_id=user_id,
                          venue_name=venue_name,
                          venue_url=venue_url,
                          venue_email=venue_email,
                          venue_address=venue_address,
                          venue_city=venue_city,
                          venue_type=venue_type,
                          venue_backspace=venue_backspace,
                          venue_capacity=venue_capacity,
                          venue_license=venue_license,
                          time_id=time_id,
                          venue_rent=venue_rent,
                          venue_ranking=venue_ranking)

        db.session.add(new_venue)
        db.session.commit()
Esempio n. 8
0
def load_venues():
    """Load venue information into database"""

    print('load_venues')

    Venue.query.delete()

    for row in open("seed_data/venues.csv"):
        row = row.rstrip()
        subcategory, \
        created_by, \
        title, \
        addr_1, \
        addr_2, \
        city, \
        postal_code, \
        state = row.split(',')

        cat_sub = Category_Subcategory.query.filter_by(name=subcategory).first()

        vnu = Venue(subcategory_id=cat_sub.id,
                   created_by=created_by,
                   name=title,
                   addr_1=addr_1,
                   addr_2=addr_2,
                   city=city,
                   postal_code=postal_code,
                   state=state)

        db.session.add(vnu)

    db.session.commit()
Esempio n. 9
0
def register_venue():

    name = request.form.get('name')
    addr_1 = request.form.get('addr_1')
    addr_2 = request.form.get('addr_2')
    city = request.form.get('city')
    postal_code = request.form.get('postal_code')
    state = request.form.get('state')
    country = request.form.get('country')
    category = request.form.get('category')

    if Venue.query.filter_by(name=name).first():
        return jsonify({'error': 'duplicate name'})

    user_id = session['user_id']
    user = User.query.get(user_id)
    created_by = user.id

    venue = Venue(name=name, \
                  addr_1=addr_1, \
                  addr_2=addr_2, \
                  city=city, \
                  postal_code=postal_code, \
                  state=state, \
                  country=country, \
                  created_by=created_by)

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

    session['venue_id'] = venue.id

    return redirect('/create')
Esempio n. 10
0
    def edit(self, id=0, **kw):
        form_vals = {}
        template = ".templates.event.add"
        if id:
            try:
                e = Event.get(id)
                form_vals = util.so_to_dict(e)
                form_vals['artists'] = "\n".join([a.name for a in e.artists])
                form_vals['venue'] = dict(text=e.venue.name)
                template = ".templates.event.edit"
            except SQLObjectNotFound:
                pass
        else:
            form_vals = dict(id=id)
        try:
            a = Artist.get(int(kw['artist_prefill']))
            form_vals['artists'] = a.name
        except (SQLObjectNotFound, KeyError):
            pass
        try:
            v = Venue.get(int(kw['venue_prefill']))
            flash(form_vals)
            form_vals['venue'] = dict(text=v.name)
        except (SQLObjectNotFound, KeyError):
            pass

        return dict(tg_template=template, event_form=event_form, form_vals=form_vals)
Esempio n. 11
0
def create_venue_submission():
    try:
        venueData = request.form
        venueName = venueData.get('name')
        venueCity = venueData.get('city')
        venueState = venueData.get('state')
        venueAddress = venueData.get('address')
        venuePhone = venueData.get('phone')
        venueFacebookLink = venueData.get('facebook_link')
        venueGenresList = venueData.getlist('genres')
        venue = Venue(name=venueName,
                      city=venueCity,
                      state=venueState,
                      address=venueAddress,
                      phone=venuePhone,
                      facebook_link=venueFacebookLink)
        for venueGenres in venueGenresList:
            if Genres.query.filter_by(name=venueGenres).first():
                venue.genres.append(
                    Genres.query.filter_by(name=venueGenres).first())
            else:
                genres = Genres(name=venueGenres)
                venue.genres.append(genres)
        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')
Esempio n. 12
0
def create_venue_submission():
  form = VenueForm(request.form)
  flashType = 'fail' #default Initialization of flash type to false
  if form.validate():
    try:
      venue = Venue(name = request.form['name'],
        city = request.form['city'],
        state = request.form['state'],
        address = request.form['address'],
        phone = request.form['phone'],
        genres = request.form.getlist('genres'),
        facebook_link = request.form['facebook_link']
      )
      db.session.add(venue)
      db.session.commit()
      flashType = 'success'
      flash('Venue ' + request.form['name'] + ' was successfully listed!')
    except:
      flash('An error occurred due to database insertion error. Venue {} could not be listed.'.format(request.form['name']))
    finally:
      db.session.close()
  else:
    flash(form.errors)
    flash('An error occurred due to form validation. Venue {} could not be listed.'.format(request.form['name']))
  return render_template('pages/home.html')
Esempio n. 13
0
def show_search_result():

    location = request.form["location"]

    venue = findAVenue(location)

    name = venue.get("name", "")
    img_url = venue.get("img_url", "")
    address = venue.get("address", "")

    matched_venue = Venue.query.filter_by(img_url=img_url).first()
    print(matched_venue)

    if venue == "No matching venues.":
        flash("No result for that location.  Try, 'San Francisco, CA'.")
        return redirect("/")

    if matched_venue:

        return render_template("search_result.html",
                               matched_venue=matched_venue)
    else:
        matched_venue = None
        if img_url:
            new_venue = Venue(name=name, address=address, img_url=img_url)

        db.session.add(new_venue)
        db.session.commit()

        return render_template("search_result.html",
                               name=name,
                               img_url=img_url,
                               address=address,
                               matched_venue=matched_venue)
Esempio n. 14
0
def create_venue_submission():
    error = False
    try:
        dict = request.form
        new_venue = Venue(name=dict.get('name'),
                          city=dict.get('city'),
                          state=dict.get('state'),
                          address=dict.get('address'),
                          phone=dict.get('phone'),
                          genres=dict.getlist('genres'),
                          facebook_link=dict.get('facebook_link'))
        db.session.add(new_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 ' + request.form['name'] +
              ' could not be listed.')
    else:
        flash('Venue ' + request.form['name'] + ' was successfully listed!')
    return render_template('pages/home.html')
Esempio n. 15
0
 def edit(self, id=0):
     if id:
         try:
             v = Venue.get(id)
         except SQLObjectNotFound:
             flash("Invalid ID")
             util.redirect("/venues/list")
     else:
         v = {}
     return dict(venue_form=venue_form, form_vals=v)
Esempio n. 16
0
 def delete(self, id):
     try:
         v = Venue.get(id)
         v.destroySelf()
         flash("Deleted")
     except SQLObjectNotFound:
         flash("Not Found")
     except SQLObjectIntegrityError:
         flash("Cannot delete")
     util.redirect("/venues/list")
Esempio n. 17
0
 def untrack(self, id, viewing="no"):
     u = identity.current.user
     try:
         v = Venue.get(id)
         if v in u.venues:
             u.removeVenue(v)
     except SQLObjectNotFound:
         flash("Venue not found")
         util.redirect("/")
     if viewing == "no":
         util.redirect_previous()
     else:
         util.redirect("/venues/%s" % v.id)
Esempio n. 18
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
    data = {}
    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')
        image_link = request.form.get('image_link')
        genres = request.form.getlist('genres')
        facebook_link = request.form.get('facebook_link')
        website = request.form.get('website')
        seeking_talent = request.form.get('seeking_talent')
        if seeking_talent == "True":
            seeking_talent = True
        else:
            seeking_talent = False

        seeking_description = request.form.get('seeking_description')
        venue = Venue(name=name,
                      city=city,
                      state=state,
                      address=address,
                      phone=phone,
                      image_link=image_link,
                      genres=genres,
                      facebook_link=facebook_link,
                      website=website,
                      seeking_talent=seeking_talent,
                      seeking_description=seeking_description)
        db.session.add(venue)
        db.session.commit()
        data = venue
        print(data)
    except:
        error = True
        db.session.rollback()
        print(sys.exc_info())
    finally:
        db.session.close()
    if error:
        # TODO: on unsuccessful db insert, flash an error instead.
        flash('An error occurred. Venue ' + data.name +
              ' could not be listed.')
    else:
        # on successful db insert, flash success
        flash('Venue ' + data.name + ' was successfully listed!')
    return render_template('pages/home.html')
Esempio n. 19
0
def create_venue_submission():
    """
  Submit new venue form and persist
  """
    try:
        request.get_data()
        genres = request.form.getlist('genres')
        venue_dict = request.form.to_dict()
        seeking_talent = venue_dict['seeking_talent'] == "True"
        venue = Venue(name=venue_dict['name'], city=venue_dict['city'], state=venue_dict['state'],\
                      address=venue_dict['address'], phone=venue_dict['phone'],\
                      facebook_link=venue_dict['facebook_link'],\
                      website_link=venue_dict['website_link'], image_link=venue_dict['image_link'],\
                      seeking_talent=seeking_talent, seeking_description=venue_dict['seeking_description'])
        venue.create(genres)
        flash('Venue ' + request.form['name'] + ' was successfully listed!')
    except Exception as e:
        print("Error while creating new venue: ", e)
        print(traceback.format_exc())
        flash('An error occurred. Venue ' + request.form['name'] +
              ' could not be listed.')
        abort(500)
    return render_template('pages/home.html')
Esempio n. 20
0
 def dyntrack(self, id, track):
     u = identity.current.user
     ret = "Error"
     try:
         v = Venue.get(id)
         if track == "true" and v not in u.venues:
             u.addVenue(v)
             ret = "Tracked"
         if track == "false" and v in u.venues:
             u.removeVenue(v)
             ret = "Untracked"
     except SQLObjectNotFound:
         pass
     return ret
Esempio n. 21
0
    def show(self, id, list_all=0):
        try:
            v = Venue.get(id)
        except SQLObjectNotFound:
            flash("Venue ID not found")
            util.redirect("/venues/list")
        except ValueError:
            try:
                v = Venue.byNameI(urllib.unquote_plus(id))
            except SQLObjectNotFound:
                flash("Venue ID not found")
                util.redirect("/venues/list")
            
        is_tracked = identity.current.user and v in identity.current.user.venues

        past_events = v.past_events.orderBy('-date')
        if not list_all:
            past_events = past_events[:5]
        future_events = v.future_events.orderBy('date')

        return dict(venue=v, past_events=past_events, future_events=future_events,
            description=util.desc_format(v.description), googlemap=googlemap,
            tracked_count=v.users.count(), is_tracked=is_tracked)
Esempio n. 22
0
def all_venues_handler():
    # Return all venuess in database.
    # If request method is GET, run a query on the database's Venue table
    # (Class) for all venues. Return value is a list of Venue objects.
    if request.method == 'GET':
        venues = session.query(Venue).all()
        print(venues)

        # Query results (variable venues which is a list data type) are
        # serialized, or, made into a dictionary then added to a list via a list
        # comprehension.  This list is then jsonfied for injestion by front end.
        return jsonify(venues=[i.serialize for i in venues])

    # Make a new venue and store it in the database.
    elif request.method == 'POST':
        # Flask.Request.args creates a MultiDict (dictionary subclass customized
        # to deal with multiple values for the same key which, is used by the
        # parsing functions in the wrappers. This is necessary because some HTML
        # form elements pass multiple values for the same key.) with the parsed
        # contents of the query string (strings in the URL after the "?").
        # Prototype: get(key, default=None, type=None)
        location = request.args.get('location', '')
        venueType = request.args.get('mealType', '')

        # Create venue_info variable by calling the imported
        # findAVenue function.
        venue_info = findAVenue(venueType, location)

        # If there is venue info, create a venue variable that is
        # equal to the instantiation of the Venue Class defined in our
        # model(models.py).
        if venue_info != "No Venues Found":
            venue = Venue(venue_name=unicode(venue_info['name']),
                          venue_address=unicode(venue_info['address']),
                          venue_image=venue_info['image'])
            # Add venue variable just created to session.
            session.add(venue)
            # Commit VEnue instance (venue variable created) to db.
            session.commit()

            # Return jsonified dictionary that results when object is serialized
            # via the Venue serialize attribute method.
            return jsonify(venue=venue.serialize)
        else:
            # If no venue data resulted from running findAVenue on
            # the meal type and location passed in the address bar upon url
            # request, return error message.
            return jsonify(
                {"error": f"No Venues Found for {venueType} in {location}"})
Esempio n. 23
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
    form = VenueForm()
    error = False

    name = form.name.data
    city = form.city.data
    state = form.state.data
    address = form.address.data
    phone = form.phone.data
    genres = form.genres.data
    web_site = form.web_site.data
    facebook_link = form.facebook_link.data
    image_link = form.image_link.data
    seeking_talent = True if form.seeking_talent.data == 'Yes' else False
    seeking_description = form.seeking_description.data

    try:
        venue = Venue(name=name,
                      city=city,
                      state=state,
                      address=address,
                      phone=phone,
                      image_link=image_link,
                      genres=genres,
                      facebook_link=facebook_link,
                      web_site=web_site,
                      seeking_talent=seeking_talent,
                      seeking_description=seeking_description)
        db.session.add(venue)
        db.session.commit()
    except:
        db.session.rollback()
        print(sys.exc_info())
        error = True
    finally:
        db.session.close()

    if error:
        flash('An error occurred. Venue ' + request.form['name'] +
              ' could not be listed.')
    else:
        flash('Venue ' + request.form['name'] + ' was successfully listed!')
    # DONE: 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')
Esempio n. 24
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:
        data = Venue()
        data.name = request.form['name']
        data.city = request.form['city']
        data.state = request.form['state']
        data.address = request.form['address']
        data.phone = request.form['phone']
        data.genres = request.form.getlist('genres')
        data.facebook_link = request.form['facebook_link']

        if Venue.query.filter_by(name=data.name).filter_by(
                city=data.city).filter_by(state=data.state).filter_by(
                    address=data.address) != None:
            flash("Venue " + request.form['name'] +
                  " is already in the database")
            return render_template('pages/home.html')

        db.session.add(data)
        db.session.commit()
    except:
        error = True
        db.session.rollback()
        print(sys.exc_info())
    finally:
        db.session.close()
    if error:
        flash("error occurs at " + request.form['name'])
        print(sys.exc_info())
    if not error:
        # on successful db insert, flash success
        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')
Esempio n. 25
0
def create_venue_submission():

    data = request.form
    name = data['name']
    city = data['city']
    state = data['state']
    address = data['address']
    phone = data['phone']
    genres = data.getlist('genres')
    facebook_link = data['facebook_link']
    website = data['website']
    image_link = data['image_link']
    seeking_talent = bool(data['seeking_talent'])
    seeking_description = data['seeking_description']

    if Venue.query.first() != None and Venue.query.filter_by(
            phone=phone).first() != None:
        flash('this Venue is already listed!')
    else:
        try:
            new_venue = Venue(name=name,
                              city=city,
                              state=state,
                              address=address,
                              phone=phone,
                              genres=genres,
                              facebook_link=facebook_link,
                              image_link=image_link,
                              website=website,
                              seeking_talent=seeking_talent,
                              seeking_description=seeking_description)
            db.session.add(new_venue)
            db.session.commit()
            # on successful db insert, flash success
            flash('Venue ' + request.form['name'] +
                  ' was successfully listed!')
        except:
            db.session.rollback()
            # TODO: on unsuccessful db insert, flash an error instead.
            flash('Something went wrong :( Venue ' + request.form['name'] +
                  ' could not be listed')
        finally:
            db.session.close()

    # 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')
Esempio n. 26
0
def edit_artist_submission(artist_id):
    # TODO: take values from the form submitted, and update existing
    # artist record with ID <artist_id> using the new attributes
    edit_artist = Venue(name=request.form.get('name'),
                        genres=request.form.get('genres'),
                        address=request.form.get('address'),
                        city=request.form.get('city'),
                        state=request.form.get('state'),
                        phone=request.form.get('phone'))
    try:
        data = edit_artist
        db.session.commit()
    except:
        db.session.rollback()
    finally:
        db.session.close()
    return redirect(url_for('show_artist', artist_id=artist_id))
Esempio n. 27
0
    def create_venue(obj):

        if hasattr(obj, 'website'):
            website = obj['website']
        else:
            website = None

        new_venue = Venue(name=obj['name'],
                          slug=obj['slug'],
                          website=website,
                          address=obj['address'],
                          google_id=obj['google_id'],
                          location=obj['location'],
                          phone=obj['phone'])

        session.add(new_venue)
        session.commit()
        return
Esempio n. 28
0
def create_venue_submission():
    try:
        name = request.form.get('name')
        city = request.form.get('city')
        state = request.form.get('state')
        genres = request.form.getlist('genres')

        address = request.form.get('address')
        phone = request.form.get('phone')
        image_link = request.form.get('image_link')
        facebook_link = request.form.get('facebook_link')
        website = request.form.get('website')
        seeking_talent = request.form.get('seeking_talent')
        seeking_description = request.form.get('seeking_description')

        # TODO: insert form data as a new Venue record in the db, instead
        data = Venue(
            name=name,
            city=city,
            state=state,
            genres=genres,
            address=address,
            phone=phone,
            image_link=image_link,
            facebook_link=facebook_link,
            website=website,
            seeking_talent=seeking_talent,
            seeking_description=seeking_description
        )
        # TODO: modify data to be the data object returned from db insertion
        db.session.add(data)
        db.session.commit()
        # on successful db insert, flash success
        flash('Venue ' + request.form['name'] + ' was successfully listed!')
    except:
        db.session.rollback()
        # TODO: on unsuccessful db insert, flash an error instead.
        flash('An error occurred. Venue ' + data.name + ' could not be listed.')
        return
    finally:
        db.session.close()
        # see: http://flask.pocoo.org/docs/1.0/patterns/flashing/
    return render_template('pages/home.html')
Esempio n. 29
0
def edit_venue_submission(venue_id):
    # TODO: take values from the form submitted, and update existing
    form = VenueForm()
    venue = Venue.query.filter_by(Venue.id == venue_id)
    edit_venue = Venue(name=request.form.get('name'),
                       genres=request.form.get('genres'),
                       address=request.form.get('address'),
                       city=request.form.get('city'),
                       state=request.form.get('state'),
                       phone=request.form.get('phone'))
    try:
        data = edit_venue
        db.session.commit()
    except:
        db.session.rollback()
    finally:
        db.session.close()
    # venue record with ID <venue_id> using the new attributes
    return redirect(url_for('show_venue', venue_id=venue_id))
Esempio n. 30
0
def create_venue_submission():
    # TODO: insert form data as a new Venue record in the db, instead
    # 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!')
    # 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/
    new_venue = Venue(
        name=request.form.get('name'),
        genres=request.form.get('genres'),
        address=request.form.get('address'),
        city=request.form.get('city'),
        state=request.form.get('state'),
        phone=request.form.get('phone'),
        website_link=request.form.get('website_link'),
        facebook_link=request.form.get('facebook_link'),
        image_link=request.form.get('image_link'),
        seeking_talent=request.form.get('seeking_talent'),
        seeking_description=request.form.get('seeking_description'),
        past_shows_count=request.form.get('past_shows_count'),
        upcoming_shows_count=request.form.get('upcoming_shows_count'))
    try:
        data = new_venue
        db.session.add(data)
        db.session.commit()

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

    finally:
        db.session.close()

    return render_template('pages/home.html')
def create_venue_submission():
    try:
        form = VenueForm(request.form)
        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)

        db.session.add(venue)
        db.session.commit()
        flash('Venue: {0} created successfully'.format(venue.name))
    except Exception as err:
        flash('An error occurred creating the Venue: {0}. Error: {1}'.format(
            venue.name, err))
        db.session.rollback()
    finally:
        db.session.close()

    return render_template('pages/home.html'), 201
Esempio n. 32
0
def load_venues(venues_json):
    """load venues & information into database"""

    # import pdb; pdb.set_trace()

    py_dict = json.loads(open(venues_json).read())
    for venue in py_dict:
        venue_id = venue['id']
        city = venue['city']
        name = venue['name']
        country_code = venue['country_code']
        description = venue['description']
        status = venue['status']
        length = venue['length']
        turns = venue['turns']
        latitude = venue['latitude']
        longitude = venue['longitude']
        maplink = venue['maplink']
        fulllap = venue['fulllap']
        motogpfulllap = venue['motogpfulllap']
        venue = Venue(venue_id=venue_id,
                      city=city,
                      name=name,
                      country_code=country_code,
                      description=description,
                      status=status,
                      length=length,
                      turns=turns,
                      longitude=longitude,
                      latitude=latitude,
                      maplink=maplink,
                      fulllap=fulllap,
                      motogpfulllap=motogpfulllap)
        print(venue)

        db.session.add(venue)
    db.session.commit()
Esempio n. 33
0
def create_venue_submission():
    try:
        new_venue = Venue(
            name=request.form['name'],
            city=request.form['city'],
            state=request.form['state'],
            address=request.form['address'],
            phone=request.form['phone'],
            genres=request.form.get('genres', ''),
            facebook_link=request.form.get('facebook_link', ''),
            website=request.form.get('website', ''),
            image_link=request.form.get('image_link', ''),
            seeking_talent=bool(request.form.get('seeking_talent', False)),
            seeking_description=request.form.get('seeking_description', ''))
        db.session.add(new_venue)
        db.session.commit()
        flash('Venue ' + request.form['name'] + ' was successfully listed!')
    except:
        flash('Venue ' + request.form['name'] + ' could not be listed!')
        flash(sys.exc_info())
        db.session.rollback()
    finally:
        db.session.close()
        return render_template('pages/home.html')
Esempio n. 34
0
def insert_venues(venues):
    """Instantiate into db Venues table a venue record."""

    for venue in venues:

        try:
            # Check if venue's SeatGeek id is already in db.
            Venue.query.filter(Venue.venue_sg_id == venue).one()

        except:
            # If not in db, create venue record with SeatGeek response.
            venue_dict = get_sg_venue(venue)

            try:
                venue_name = venue_dict['venues'][0]['name']

                if venue_name == None:
                    venue_name = "Venue name"

            except:
                venue_name = "Venue name"

            try:
                venue_add = venue_dict['venues'][0]['address']

                if venue_add == None:
                    venue_add = "345 Address"

            except:
                venue_add = "345 Address"

            try:
                venue_city = venue_dict['venues'][0]['city']

                if venue_city == None:
                    venue_city = "Venue City"

            except:
                venue_city = "Venue City"

            try:
                venue_state = venue_dict['venues'][0]['state']

                if venue_state == None:
                    venue_state = "ST"

            except:
                venue_state = "ST"

            try:
                venue_zip = venue_dict['venues'][0]['postal_code']

                if venue_zip == None:
                    venue_zip = "12492"

            except:
                venue_zip = "12492"

            # Insert into db.
            new_venue = Venue(venue_sg_id=venue,
                              venue_name=venue_name,
                              venue_add=venue_add,
                              venue_city=venue_city,
                              venue_state=venue_state,
                              venue_zip=venue_zip)

            db.session.add(new_venue)
            db.session.commit()
Esempio n. 35
0
    def save(self, id, **kw):
        try:
            v = Venue.byName(kw['venue']['text'])
        except SQLObjectNotFound:
            v = Venue(name=kw['venue']['text'], added_by=identity.current.user)

        artists = kw.pop('artists')
        if not artists:
            artists = ""
        artist_name_list = [artist.strip() for artist in artists.split('\n')]
        # elim blank items in list
        artist_name_list = [artist for artist in artist_name_list if artist]
        if not kw.get('name'):
            kw['name'] = ", ".join(artist_name_list)

        # updating
        if id:
            try:
                e = Event.get(id)
                flash_msg = "updated"
            except SQLObjectNotFound:
                flash("Database error, please try again")
                redirect("/")
        # inserting
        else:
            e = Event(name=kw['name'], date=kw['date'], time=kw['time'], venue=v,
                added_by=identity.current.user)
            # mark user as going to all added events by default
            if not "admin" in identity.current.groups:
                att = Attendance(user=identity.current.user, event=e, planning_to_go=True)
            flash_msg = "added, will be reviewed and posted within 24 hrs"

        del kw['venue']
        e.set(**e.clean_dict(kw))
        old_venue = e.venue
        e.venue = v
        old_venue.destroy_if_unused()
        old_artists = set([a.name for a in e.artists])
        # add new artists
        artist_list = []
        for artist in artist_name_list:
            try:
                a = Artist.byNameI(artist)
                if not a in e.artists:
                    e.addArtist(a)
            except SQLObjectNotFound:
                a = Artist(name=artist, added_by=identity.current.user)
                e.addArtist(a)
            artist_list.append(a)
        # remove old artists
        for artist in e.artists:
            if artist not in artist_list:
                e.removeArtist(artist)
                artist.destroy_if_unused()
        new_artists = set([a.name for a in e.artists])
        # approve all artists at approved events
        if e.approved:
            for artist in e.artists:
                if not artist.approved:
                    artist.approved = datetime.now()
        # add entry to UpdateLog
        if old_artists != new_artists and e.approved:
            u = UpdateLog(
                changed_by=identity.current.user.id,
                table_name="artist_event",
                table_id=e.id,
                attrib_name="artists",
                attrib_old_value=old_artists,
                attrib_new_value=new_artists
                )
        flash("Event %s" % flash_msg)
        util.redirect("/events/%s" % e.id)
Esempio n. 36
0
    def import_to_db(self, event):
        flag_for_review = False
        venue_name = self.venue_name_fix(event['venue']['name'])
        try:
            v = Venue.byNameI(venue_name)
        except SQLObjectNotFound:
            v = Venue(name=venue_name, added_by=identity.current.user)
            flag_for_review = True
        if event['venue'].has_key('phone'):
            phone = event['venue']['phone']
            if not len(phone) >= 8:
                phone = "503-" + phone
            p = validators.PhoneNumber()
            try:
                event['venue']['phone'] = p.to_python(phone)
            except:
                event['venue']['phone'] = None
        self._set_optional_fields(v, event['venue'], ("address", "phone", "zip_code",
            "url", "description"))

        event_name = self.event_name_fix(event['name'])
        event_date = event["date"]
        event_time = event.get("time")
        if event_time:
            event_time = event_time.lower()
        # check same venue, date, time
        db_events = Event.selectBy(date=event_date,
            time=event_time, venue=v)
        if db_events.count():
            e = db_events[0]
            new_event = False
        else:
            # no time? still could be skippable, if event name is the same
            db_events = Event.selectBy(date=event_date,
                name=event_name, venue=v)
            if db_events.count():
                e = db_events[0]
                new_event = False
            else:
                e = Event(venue=v, name=event_name,
                    date=event_date, time=event_time,
                    added_by=identity.current.user)
                new_event = True
                try:
                    s = Source.byName(event["source"])
                except SQLObjectNotFound:
                    s = Source(name=event["source"])
                    flag_for_review = True
                e.addSource(s)
        self._set_optional_fields(e, event, ("cost", "ages", "url",
            "description", "ticket_url"))

        for artist in self.artists_clean(event['artists']):
            try:
                a = Artist.byNameI(artist)
                # artist was a similar, but now it's listed as having an event
                # so approve it
                if not a.approved:
                    a.approved = datetime.now()
            except SQLObjectNotFound:
                a = Artist(name=artist, added_by=identity.current.user)
                flag_for_review = True
            if not e.id in [existing.id for existing in a.events]:
                a.addEvent(e)

        # flag all events from certain unreliable sources
        if event["source"] in ("ticketswest", "upcoming", "lastfm"):
            flag_for_review = True

        if new_event and not flag_for_review:
            e.approved = datetime.now()
        elif flag_for_review:
            e.approved = None
        return (new_event, flag_for_review)
Esempio n. 37
0
def get_image_url():
    """
    Retrieves venue image URL from db and returns JSON object with the URL.
    """
    image_url = Venue.get_venue_img()
    return jsonify(image_url)
Esempio n. 38
0
 def search_closest(self):
     search_text = "sw 4th and burnside, portland or"
     venue_list = Venue.closest(search_text, with_event=True)
     return dict(venues=venue_list, saddr=search_text, start=search_text)
Esempio n. 39
0
def venue_page_process():
    """Process new venue"""
    user_id = session.get("user_id")

    user = User.query.filter_by(user_id=user_id).first()

    monday = request.json.get("monday")
    tuesday = request.json.get("tuesday")
    wednesday = request.json.get("wednesday")
    thursday = request.json.get("thursday")
    friday = request.json.get("friday")
    saturday = request.json.get("saturday")
    sunday = request.json.get("sunday")
    morning = request.json.get("morning")
    late_morning = request.json.get("late_morning")
    early_night = request.json.get("early_night")
    late_night = request.json.get("late_night")
    venue_name = request.json.get("venue_name")
    venue_url = request.json.get("venue_url")
    venue_email = request.json.get("venue_email")
    venue_address = request.json.get("venue_address")
    venue_city = request.json.get("venue_city")
    venue_type = request.json.get("venue_type")
    venue_backspace = request.json.get("venue_backspace")
    venue_capacity = request.json.get("venue_capacity")
    venue_license = request.json.get("venue_license")
    venue_rent = request.json.get("venue_rent")

    check_venue_info = Venue.query.filter_by(
        venue_address=venue_address).first()

    if check_venue_info:

        return jsonify("venue_already_register")

    else:

        new_time = Time(monday=monday,
                        tuesday=tuesday,
                        wednesday=wednesday,
                        thursday=thursday,
                        friday=friday,
                        saturday=saturday,
                        sunday=sunday,
                        morning=morning,
                        late_morning=late_morning,
                        early_night=early_night,
                        late_night=late_night)

        db.session.add(new_time)
        db.session.commit()
        db.session.refresh(new_time)

        new_venue = Venue(user_id=user_id,
                          venue_name=venue_name,
                          venue_url=venue_url,
                          venue_email=venue_email,
                          venue_address=venue_address,
                          venue_city=venue_city,
                          venue_type=venue_type,
                          venue_backspace=venue_backspace,
                          venue_capacity=venue_capacity,
                          venue_license=venue_license,
                          time_id=new_time.time_id,
                          venue_rent=venue_rent)

        db.session.add(new_venue)
        db.session.commit()
        db.session.refresh(new_venue)

        venue_rarking = adding_ranking("venue", new_venue.venue_id)

        return jsonify(time_id=new_time.time_id,
                       monday=new_time.monday,
                       tuesday=new_time.tuesday,
                       wednesday=new_time.wednesday,
                       thursday=new_time.thursday,
                       friday=new_time.friday,
                       saturday=new_time.saturday,
                       sunday=new_time.sunday,
                       morning=new_time.morning,
                       late_morning=new_time.late_morning,
                       early_night=new_time.early_night,
                       late_night=new_time.late_night,
                       venue_id=new_venue.venue_id,
                       venue_name=new_venue.venue_name,
                       venue_url=new_venue.venue_url,
                       venue_email=new_venue.venue_email,
                       venue_address=new_venue.venue_address,
                       venue_city=new_venue.venue_city,
                       venue_type=new_venue.venue_type,
                       venue_backspace=new_venue.venue_backspace,
                       venue_capacity=new_venue.venue_capacity,
                       venue_license=new_venue.venue_license,
                       venue_rent=new_venue.venue_rent)