예제 #1
0
 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")
     
     
     
     
예제 #2
0
    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('./'))