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)
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)
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)
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)
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)