Ejemplo n.º 1
0
def search():
    if not session.get("logged_in"):
        return login()

    query_string = request.args.get("query").lower()

    items = Item.query()

    result_items = []
    item_ids = set()
    for item in items:
        if query_string in item.name.lower():
            if not item.key.id() in item_ids:
                result_items.append(item)
                item_ids.add(item.key.id())

    item_tags = Item_Tag.query(Item_Tag.tag == query_string)

    for item_tag in item_tags:
        if not item_tag.item in item_ids:
            item = Item.get_by_id(item_tag.item)
            result_items.append(
                item)  #can append it with value "only found in the tags"
            item_ids.add(
                item.key.id()
            )  #dont need to append it since all unique in this second query anyways

    return render_template("search_results.html",
                           result_items=result_items,
                           query=query_string)
Ejemplo n.º 2
0
def view_me():

    user = User.get_by_id(session["user_id"])

    if request.method == "POST":
        return render_template("tsktsk.html")
        review = Review(rating=int(request.form["rating"]),
                        reason=request.form["reason"],
                        user=user_id,
                        reviewer=session["user_id"],
                        flagged=False)
        review.put()

        update_user_rating(user_id, int(request.form["rating"]))

    sold_offers = []
    sold_items = Item.query(Item.seller_id == session["user_id"],
                            Item.sold == True)
    for item in sold_items:
        temp_offer = Offer.query(Offer.item == item.key.id()).get()
        sold_offers.append(temp_offer)

    purchased_offers = Offer.query(Offer.confirmed == True,
                                   Offer.bidder == session["user_id"])
    notifications = Notification.query(
        Notification.user == session["user_id"]).order(-Notification.time)
    return render_template("me.html",
                           user=user,
                           sold_offers=sold_offers,
                           purchased_offers=purchased_offers,
                           notifications=notifications)
Ejemplo n.º 3
0
def history():
    if not session.get("logged_in"):
        return login()

    sold_offers = []
    sold_items = Item.query(Item.seller_id == session["user_id"],
                            Item.sold == True)
    for item in sold_items:
        temp_offer = Offer.query(Offer.item == item.key.id()).get()
        sold_offers.append(temp_offer)

    purchased_offers = Offer.query(Offer.confirmed == True,
                                   Offer.bidder == session["user_id"])

    return render_template("history.html",
                           sold_offers=sold_offers,
                           purchased_offers=purchased_offers)
Ejemplo n.º 4
0
def browse(category_id):
    if not session.get("logged_in"):
        return login()

    items = Item.query(Item.category == category_id, Item.sold == False)

    for item in items:
        item.item_id = item.key.id()

    notifications = Notification.query(
        Notification.user == session["user_id"]).order(-Notification.time)

    category = Category.get_by_id(category_id)

    return render_template("browse.html",
                           items=items,
                           category=category,
                           category_id=category_id,
                           notifications=notifications)
Ejemplo n.º 5
0
def my_items():
    if not session.get("logged_in"):
        return login()

    items = Item.query(Item.seller_id == session.get("user_id"),
                       Item.sold == False)

    for item in items:
        item.item_id = item.key.id()

    notifications = Notification.query(
        Notification.user == session["user_id"]).order(-Notification.time)

    offers = Offer.query(Offer.bidder == session['user_id'],
                         Offer.confirmed == False)

    return render_template("my_items.html",
                           items=items,
                           notifications=notifications,
                           offers=offers)