def post(self): searchItem = self.request.get("searchBox") matchedCategories = [] matchedItems = [] searchFound=False if searchItem: #find matching categories cats = Category.all() for cat in cats: searchresult = re.search(str(searchItem).lower(),str(cat.name).lower()) if searchresult is not None: matchedCategories.append(cat) searchFound = True #find matching items items = Item.all() for item in items: searchresult = re.search(str(searchItem).lower(),str(item.name).lower()) if searchresult is not None: matchedItems.append(item) searchFound = True template_values = { 'matchedCategories': matchedCategories, 'matchedItems': matchedItems, 'logoutURL' : users.create_logout_url('./'), 'searchItem':searchItem, 'searchFound':searchFound } path = os.path.join(os.path.dirname(__file__), './html/search.html') self.response.out.write(template.render(path, template_values)) #below query looks from abc at beginning of string #db.GqlQuery("SELECT * FROM MyModel WHERE prop >= :1 AND prop < :2", "abc", u"abc" + u"\ufffd")
def get(self): user = users.get_current_user() if user: #check for key, if not exist show all categories from all users key = self.request.get("key") wKey = self.request.get("wKey") lKey = self.request.get("lKey") if (key and ( not (wKey and lKey) ) ): #item_1 = Item.all().order('rand_num').filter('rand_num >=', rand_num).filter(k, value) .get() key = db.Key(key) parentCategory = Category.gql("WHERE __key__ = :1",key) categoryUser = key.parent().name() items = db.GqlQuery("SELECT * FROM Item WHERE ANCESTOR IS :1",Helper.getCategoryKey(categoryUser, parentCategory[0].name)) if( items.count() >= 2): item_1 = "Not Enough Items" item_2 = "Not Enough Items" randomNumber_1 = random.randint(0,items.count() - 1 ) randomNumber_2 = randomNumber_1 while(randomNumber_1 == randomNumber_2): randomNumber_2 = random.randint(0,items.count() - 1 ) item_1 = items[randomNumber_1] item_2 = items[randomNumber_2] message="Click on one of the Items to vote" template_values = { 'item_1': item_1, 'item_2': item_2, 'message':message, 'key':key, 'logoutURL' : users.create_logout_url('./') } else: message = "Not enough items in this category. Choose another category." template_values = { 'message':message, 'key':key, 'logoutURL' : users.create_logout_url('./') } path = os.path.join(os.path.dirname(__file__), './html/vote.html') self.response.out.write(template.render(path, template_values)) elif (key and ( (wKey and lKey) )): key = db.Key(key) wKey = db.Key(wKey) lKey = db.Key(lKey) winningItem = Item.gql("WHERE __key__ = :1",wKey)[0] losingItem = Item.gql("WHERE __key__ = :1",lKey)[0] winningItem.wins = winningItem.wins + 1 winningItem.put() losingItem.loses = losingItem.loses + 1 losingItem.put() #self.redirect("./vote?category=%s", permanent=False) message = winningItem.name + ' wins over ' + losingItem.name #get 2 new random items key = self.request.get("key") key = db.Key(key) parentCategory = Category.gql("WHERE __key__ = :1",key) categoryUser = key.parent().name() items = db.GqlQuery("SELECT * FROM Item WHERE ANCESTOR IS :1",Helper.getCategoryKey(categoryUser, parentCategory[0].name)) item_1 = "Not Enough Items" item_2 = "Not Enough Items" if( items.count() != 0): randomNumber_1 = random.randint(0,items.count() - 1 ) randomNumber_2 = randomNumber_1 while(randomNumber_1 == randomNumber_2): randomNumber_2 = random.randint(0,items.count() - 1 ) item_1 = items[randomNumber_1] item_2 = items[randomNumber_2] template_values = { 'item_1': item_1, 'item_2': item_2, 'key':key, 'logoutURL' : users.create_logout_url('./'), 'message' : message } path = os.path.join(os.path.dirname(__file__), './html/vote.html') self.response.out.write(template.render(path, template_values)) else: categories = Category.all() template_values = { 'categories': categories, 'logoutURL' : users.create_logout_url('./') } path = os.path.join(os.path.dirname(__file__), './html/vote.html') self.response.out.write(template.render(path, template_values)) else: self.redirect(users.create_login_url('./'))