예제 #1
0
def listings():
    #load the listing page
    with sqlite3.connect('challenge.db') as conn:
        cursor = conn.cursor()
        if request.method == 'POST':
            #check for post method and set last timestamp returned from html request
            request_dict = request.form.to_dict()
            for k, v in request_dict.items():
                timestamp_to_be_used = k
                if v == 'Load more posts':
                    #use get_more_lastings with last timestamp to obtain next 30 listings
                    listings, first_timestamp, last_timestamp = Listing.get_more_listings(
                        cursor, timestamp_to_be_used)
                else:
                    listings, first_timestamp, last_timestamp = Listing.get_previous_listings(
                        cursor, timestamp_to_be_used)
                return render_template('listings.html',
                                       listings=listings,
                                       first_timestamp=first_timestamp,
                                       last_timestamp=last_timestamp)
        else:
            #if there is no post, we load the page with the most recent listings
            listings, first_timestamp, last_timestamp = Listing.get_last_30(
                cursor)
            return render_template('listings.html',
                                   listings=listings,
                                   first_timestamp=first_timestamp,
                                   last_timestamp=last_timestamp)
예제 #2
0
파일: app.py 프로젝트: rahul3103/gpback
def listings(source):
    if request.method == 'POST':
        listing = json.loads(request.data)
        try:
            print(listing)
            user = User.select().where(
                User.email == current_user.email).first()
            Listing.update(**listing).where(Listing.source == source,
                                            Listing.user == user).execute()
            return jsonify({'success': True}), 200
        except:
            return jsonify({'success': False})
예제 #3
0
파일: seed.py 프로젝트: ellakcd/PROJECT
def load_listings():
    """Load listings from seed data into database"""

    print "Listings"

    with open("seed_data/listings.txt") as listings:
        for row in listings:
            listing = row.rstrip().split("|")

            kwargs = dict(listing_id=listing[0],
                          neighborhood=listing[1],
                          address=listing[2],
                          price=listing[3],
                          avail_as_of=datetime.datetime.strptime(
                              listing[4], "%d-%b-%Y"),
                          length_of_rental=listing[5],
                          bedrooms=listing[6],
                          bathrooms=listing[7],
                          laundry=listing[8],
                          pets=listing[9],
                          description=listing[10],
                          main_photo=listing[11],
                          active=listing[12],
                          primary_lister=listing[13])

            for key in kwargs.keys():
                if kwargs[key] == "":
                    del kwargs[key]

            listing = Listing(**kwargs)

            db.session.add(listing)

    db.session.commit()
예제 #4
0
파일: app.py 프로젝트: rahul3103/gpback
def oauth_callback(provider):
    if not current_user.is_anonymous:
        return redirect(WEB_URL)
    oauth = OAuthSignIn.get_provider(provider)
    social_id, username, email = oauth.callback()
    if social_id is None:
        return redirect(WEB_URL)
    user = User.select().where(User.social_id == social_id).first()
    if not user:
        user = User(social_id=social_id, nickname=username, email=email)
        user.save()
        for data in data_source:
            data['user'] = user
            Listing.create(**data)
    login_user(user, True)
    return redirect(WEB_URL)
예제 #5
0
def listing_by_categories():
    cat_id = request.args.get('category_id')

    cat_list = []
    for l in Listing.select().where(Listing.categoryId == cat_id):
        li = model_to_dict(l, exclude=[l.cid])
        cat_list.append(li)
    db.close()
    return jsonify(cat_list)
예제 #6
0
파일: app.py 프로젝트: rahul3103/gpback
def me():
    if current_user.is_authenticated:
        user = User.select().where(User.email == current_user.email).first()
        listings = Listing.select().where(Listing.user == user)
        return (jsonify(listings=[
            listing.to_dict([Listing.user, Listing.id]) for listing in listings
        ],
                        user=user.to_dict())), 200
    return jsonify({'user_authentication': False}), 400
예제 #7
0
파일: server.py 프로젝트: ellakcd/PROJECT
def make_listing_profile():
    """add listing info to database"""

    roommates = request.form.getlist("roommates")

    laundry = True if request.form.get("laundry") == "True" else False
    pets = True if request.form.get("pets") == "True" else False
    living_there = True if request.form.get(
        "living_there") == "True" else False
    listing_id = request.form.get("listing_name")
    user_id = session["current_user"]

    main_photo = functions.save_photo("main_photo")
    photos = []
    photos.append(functions.save_photo("photo_1"))
    photos.append(functions.save_photo("photo_2"))
    photos.append(functions.save_photo("photo_3"))

    kwargs = dict(listing_id=listing_id,
                  address=request.form.get("address"),
                  neighborhood=request.form.get("neighborhood"),
                  price=int(request.form.get("price")),
                  avail_as_of=request.form.get("avail_date"),
                  length_of_rental=request.form.get("duration"),
                  main_photo=main_photo,
                  bedrooms=request.form.get("bedrooms"),
                  bathrooms=request.form.get("bathrooms"),
                  laundry=laundry,
                  pets=pets,
                  description=request.form.get("description"),
                  primary_lister=user_id)

    if Listing.query.get(listing_id):
        flash("Listing Name Taken")
        return redirect("/listings/{}".format(listing_id))
    else:
        for key in kwargs.keys():
            if kwargs[key] == "":
                del kwargs[key]
        db.session.add(Listing(**kwargs))
        db.session.commit()

        if living_there:
            functions.add_UserListing(user_id, listing_id)

        for roommate in roommates:
            functions.add_UserListing(roommate, listing_id)

        for photo in photos:
            db.session.add(Picture(listing_id=listing_id, photo=photo))
        db.session.commit()

        return redirect("/listings/{}".format(listing_id))
예제 #8
0
def search():
    with sqlite3.connect('challenge.db') as conn:
        cursor = conn.cursor()
        form = SearchForm()
        if request.method == 'POST':
            for key, val in request.form.to_dict().items():
                listings, first_timestamp, last_timestamp = Listing.get_by_title(
                    val, cursor)
                return render_template('listings.html',
                                       listings=listings,
                                       first_timestamp=first_timestamp,
                                       last_timestamp=last_timestamp)
        return render_template('search.html', form=form)
예제 #9
0
    def save_country_listing(self, new_listing, country):
        game = self.find_game_by_title(new_listing["game_title"])

        new_listing_usd_value = self.calculate_usd_value(new_listing["price"], country)

        if game:
            if game.last_updated != self.date or new_listing_usd_value < game.min_price:
                self.update_game_min_price(game, new_listing_usd_value, country)
        else:
            game = self.create_new_game(new_listing, new_listing_usd_value, country)

        listing = Listing(original_value=new_listing["price"],
                          usd_value=new_listing_usd_value,
                          date=self.date,
                          game_id=game,
                          country_id=country)

        self.db_util.save(listing)
예제 #10
0
def add_listing():
	
	new_listing = Listing()

	new_listing.bike_id = flask_session["bike"]	# get bike id from flask session
	new_listing.post_date = datetime.datetime.now()
	new_listing.post_expiration = datetime.datetime.now() + datetime.timedelta(30) # Post expires 30 days from now
	new_listing.post_status = "Active"
	new_listing.asking_price = request.form["price"] # FORM
	new_listing.latitude = request.form["latitude"] # FORM
	new_listing.longitude = request.form["longitude"] # FORM
	new_listing.additional_text = request.form["comments"] #FORM
	new_listing.user_id = g.user # Flask session
	new_listing.email = request.form["email"] #FORM

	db.session.add(new_listing)
	db.session.commit()

	return str(new_listing.bike_id)