Beispiel #1
0
 def post(self):
     #test param exists and is right type
     try:
         table_delete = int(self.request.get('table_id'))
     except:
         table_delete = 0
     try:
         result_delete = int(self.request.get('result_id'))
     except:
         result_delete = 0
     try:
         result_set = int(self.request.get('result_set'))
     except:
         result_set = 0            
     if(table_delete == 0 or result_delete == 0):
         logging.warning("param or type wrong")
         self.redirect('/existingtable')
     else:            
         u = None
         if users.get_current_user() == None:
             if 'sportablesuser' in self.request.cookies:
                 u = User.gql("WHERE tempusername = :1", self.request.cookies['sportablesuser'])
         else:
             u = User.gql("WHERE username = :1", users.get_current_user())
         if u != None:
             if u.count() == 1:
                 #test if table and team exists
                 tablek = db.Key.from_path('Table', table_delete)
                 tablet = db.get(tablek)
                 resultk = db.Key.from_path('Result', result_delete)
                 resultt = db.get(resultk)                    
                 if not type(tablet) is NoneType and not type(resultt) is NoneType:
                     for o in u:
                         #test if user is table owner and table owns team                           
                         if (o.key().id() == tablet.user.key().id() and
                                     tablet.key().id() == resultt.table.key().id()):
                             #delete team using helperfunctions.function
                             helperfunctions.deleteresult(resultk, tablek)
                             table_object = 'result'
                             return_page = 'Results'       
                             object_action = 'deleted'
                             object_url = 'getresults'
                             self.redirect('/displaymessage?table_id='+
                                       str(table_delete)+'&table_object='+table_object+'&return_page='+
                                       return_page+'&object_action='+object_action+'&object_url='+
                                       object_url+'&result_set='+str(result_set))
                         else:
                             logging.warning("attempt to delete another user's team")
                             self.redirect('/existingtable')
                 else:
                     logging.warning("attempt to delete a team that doesn't exist (or its table doesn't exist)")
                     self.redirect('/existingtable')
             else:
                 logging.warning("user has a google or temp account but has no User entity")
                 self.redirect('/existingtable')
         else:
             logging.warning("user has neither logged in with a google account or a set a cookie")
             self.redirect('/existingtable')
Beispiel #2
0
 def post(self):
     #test param exists and is right type
     try:
         table_get = int(self.request.get('tbl_id'))
     except:
         table_get = 0
     table_name = self.request.get('name', default_value="Unnamed team")            
     if(table_get == 0):
         logging.warning("param or type wrong")
         self.redirect('/existingtable')
     else:
         u = None
         if users.get_current_user() == None:
             if 'sportablesuser' in self.request.cookies:
                 u = User.gql("WHERE tempusername = :1", self.request.cookies['sportablesuser'])
         else:
             u = User.gql("WHERE username = :1", users.get_current_user())
         if u != None:
             if u.count() == 1:
                 #test if table exists
                 k = db.Key.from_path('Table', table_get)
                 tb = db.get(k)
                 if not type(tb) is NoneType:
                     for o in u:
                         #test if user is owner
                         if o.key().id() == tb.user.key().id():
                             team = Team(table=tb,
                                 name=table_name,
                                 games_played=0,
                                 games_won=0,
                                 games_drawn=0,
                                 games_lost=0,
                                 goals_for=0,
                                 goals_against=0,
                                 goal_difference=0,
                                 points_deducted=0,           
                                 points=0).put()
                             table_id = table_get
                             table_object = 'team'
                             return_page = 'Teams'       
                             object_action = 'added'
                             object_url = 'getteams'        
                             self.redirect('/displaymessage?table_id='+str(table_id)+
                                       '&table_object='+table_object+'&return_page='+
                                       return_page+'&object_action='+object_action+'&object_url='+object_url)
                         else:
                             logging.warning("attempt to add a team to another user's table")
                             self.redirect('/existingtable')
                 else:
                     logging.warning("attempt to add team to a table that doesn't exist")
                     self.redirect('/existingtable')
             else:
                 logging.warning("user has a google or temp account but has no User entity")
                 self.redirect('/existingtable')
         else:
             logging.warning("user has neither logged in with a google account or a set a cookie")
             self.redirect('/existingtable')
Beispiel #3
0
 def get(self):
     #test param exists and is right type
     notapp=1
     if 'sportablesapp' in self.request.cookies:
         notapp=0
     try:
         table_get = int(self.request.get('table_name'))
     except:
         table_get = 0
     if(table_get == 0):
         logging.warning("param or type wrong")
         self.redirect('/existingtable')
     else:
         u = None
         if users.get_current_user() == None:
             if 'sportablesuser' in self.request.cookies:
                 u = User.gql("WHERE tempusername = :1", self.request.cookies['sportablesuser'])
         else:
             u = User.gql("WHERE username = :1", users.get_current_user())
         if u != None:
             if u.count() == 1:
                 #test if table exists
                 k = db.Key.from_path('Table', table_get)
                 tb = db.get(k)
                 if not type(tb) is NoneType:
                     for o in u:
                         #test if user is owner
                         if o.key().id() == tb.user.key().id():
                             tms = Team().all()
                             tms.filter('table = ', k)
                             tms.order('-points')
                             tms.order('-goal_difference')
                             tms.order('-goals_for')
                             tms.order('name')
                             rs = Result().all()
                             rs.filter('table = ', k)
                             template_values = {
                                 'notapp': notapp,
                                 'tabledata': tb,
                                 'teamsdata': tms,
                                 'resultsdata': rs
                             }
                             path = os.path.join(os.path.dirname(__file__), 'table.html')
                             self.response.out.write(template.render(path, template_values))
                         else:
                             logging.warning("attempt to get another user's table")
                             self.redirect('/existingtable')
                 else:                        
                     logging.warning("attempt to get a table that doesn't exist")
                     self.redirect('/existingtable')
             else:
                 logging.warning("user has a google or temp account but has no User entity")
                 self.redirect('/existingtable')
         else:
             logging.warning("user has neither logged in with a google account or a set a cookie")
             self.redirect('/existingtable')
Beispiel #4
0
 def get(self):
     #test param exists and is right type
     notapp=1
     if 'sportablesapp' in self.request.cookies:
         notapp=0
     try:
         table_get = int(self.request.get('table_name'))
     except:
         table_get = 0
     if(table_get == 0):
         logging.warning("param or type wrong")
         self.redirect('/existingtable')
     else:
         u = None
         if users.get_current_user() == None:
             if 'sportablesuser' in self.request.cookies:
                 u = User.gql("WHERE tempusername = :1", self.request.cookies['sportablesuser'])
         else:
             u = User.gql("WHERE username = :1", users.get_current_user())
         if u != None:
             if u.count() == 1:
                 #test if table exists
                 k = db.Key.from_path('Table', table_get)
                 tb = db.get(k)
                 if not type(tb) is NoneType:
                     for o in u:
                         #test if user is owner
                         if o.key().id() == tb.user.key().id():
                             server_name = os.environ['SERVER_NAME']
                             if (server_name == 'localhost'):
                                 server_port = ':'+os.environ['SERVER_PORT']
                             else:
                                 server_port = ''
                             viewable_url  = server_name+server_port+'?table='+str(table_get)
                             template_values = {
                                 'notapp': notapp,
                                 'tabledata': tb,
                                 'viewable_url': viewable_url
                             }
                             path = os.path.join(os.path.dirname(__file__), 'share.html')
                             self.response.out.write(template.render(path, template_values))
                         else:
                             logging.warning("attempt to get another user's table")
                             self.redirect('/existingtable')
                 else:
                     logging.warning("attempt to get a table that doesn't exist")
                     self.redirect('/existingtable')
             else:
                 logging.warning("user has a google or temp account but has no User entity")
                 self.redirect('/existingtable')
         else:
             logging.warning("user has neither logged in with a google account or a set a cookie")
             self.redirect('/existingtable')
Beispiel #5
0
 def get(self):
     #test param exists and is right type
     try:
         table_get = int(self.request.get('tbl_id'))
     except:
         table_get = 0
     try:
         viewable_get = int(self.request.get('viewable'))
     except:
         viewable_get = None            
     if(table_get == 0):
         logging.warning("param or type wrong")
         self.redirect('/existingtable')
     else:
         u = None
         if users.get_current_user() == None:
             if 'sportablesuser' in self.request.cookies:
                 u = User.gql("WHERE tempusername = :1", self.request.cookies['sportablesuser'])
         else:
             u = User.gql("WHERE username = :1", users.get_current_user())
         if u != None:
             if u.count() == 1:
                 #test if table exists
                 k = db.Key.from_path('Table', table_get)
                 tb = db.get(k)
                 if not type(tb) is NoneType:
                     for o in u:
                         #test if user is owner
                         if o.key().id() == tb.user.key().id():
                             #update viewable boolean if set to number
                             if viewable_get != None:
                                 tb.viewable = bool(viewable_get)
                                 tb.put()
                             self.redirect('/getshare?table_name=' + str(table_get))
                         else:
                             logging.warning("attempt to get another user's table")
                             self.redirect('/existingtable')
                 else:
                     logging.warning("attempt to get a table that doesn't exist")
                     self.redirect('/existingtable')
             else:
                 logging.warning("user has a google or temp account but has no User entity")
                 self.redirect('/existingtable')
         else:
             logging.warning("user has neither logged in with a google account or a set a cookie")
             self.redirect('/existingtable')
Beispiel #6
0
 def get(self):
     #test param exists and is right type
     try:
         table_delete = int(self.request.get('table_to_delete'))
     except:
         table_delete = 0
     if(table_delete == 0):
         logging.warning("param or type wrong")
         self.redirect('/existingtable')
     else:
         u = None
         if users.get_current_user() == None:
             if 'sportablesuser' in self.request.cookies:
                 u = User.gql("WHERE tempusername = :1", self.request.cookies['sportablesuser'])
         else:
             u = User.gql("WHERE username = :1", users.get_current_user())
         if u != None:
             if u.count() == 1:
                 #test if table exists
                 k = db.Key.from_path('Table', table_delete)
                 tb = db.get(k)
                 if not type(tb) is NoneType:
                     for o in u:
                         #test if user is owner
                         if o.key().id() == tb.user.key().id():
                             helperfunctions.deletetable(k)
                             table_id = 0
                             table_object = 'table'
                             return_page = 'Your tables'      
                             object_action = 'deleted'
                             object_url = 'existingtable'        
                             self.redirect('/displaymessage?table_id='
                                           +str(table_id)+'&table_object='+table_object+'&return_page='
                                           +return_page+'&object_action='+object_action+'&object_url='+object_url)
                         else:
                             logging.warning("attempt to delete another user's table")
                             self.redirect('/existingtable')
                 else:
                     logging.warning("attempt to delete a table that doesn't exist")
                     self.redirect('/existingtable')
             else:
                 logging.warning("user has a google or temp account but has no User entity")
                 self.redirect('/existingtable')
         else:
             logging.warning("user has neither logged in with a google account or a set a cookie")
             self.redirect('/existingtable')
Beispiel #7
0
 def get(self):
     tab = None
     u = None
     table_name = self.request.get('name', default_value="Unnamed table")
     try:
         points_for_win = int(self.request.get('points_for_win'))
     except:
         points_for_win = 3
     try:
         points_for_score_draw = int(self.request.get('points_for_score_draw'))
     except:
         points_for_score_draw = 1
     try:
         points_for_draw = int(self.request.get('points_for_draw'))
     except:
         points_for_draw = 1
     try:
         points_for_lose = int(self.request.get('points_for_lose'))
     except:
         points_for_lose = 0
     if users.get_current_user() == None:
         if 'sportablesuser' in self.request.cookies:
             u = User.gql("WHERE tempusername = :1", self.request.cookies['sportablesuser'])
     else:
         u = User.gql("WHERE username = :1", users.get_current_user())
     if u != None:
         if u.count() == 1:        
             for p in u:
                 table = Table(user=p,
                     name=table_name,
                     points_for_win=points_for_win,
                     points_for_score_draw=points_for_score_draw,
                     points_for_draw=points_for_draw,
                     points_for_lose=points_for_lose,
                     viewable=True).put()
                 tab = table.id()
             self.redirect('/getteams?table_name=' + str(tab))
         else:
             logging.warning("user has a google or temp account but has no User entity")
             self.redirect('/')
     else:
         logging.warning("user has neither logged in with a google account or a set a cookie")
         self.redirect('/')                
Beispiel #8
0
 def get(self):
     #test param exists and is right type
     notapp=1
     if 'sportablesapp' in self.request.cookies:
         notapp=0
     try:
         result_set = int(self.request.get('result_set'))
     except:
         result_set = 0      
     try:
         table_get = int(self.request.get('table_name'))
     except:
         table_get = 0           
     if(table_get == 0):
         logging.warning("param or type wrong")
         self.redirect('/existingtable')
     else:
         u = None
         if users.get_current_user() == None:
             if 'sportablesuser' in self.request.cookies:
                 u = User.gql("WHERE tempusername = :1", self.request.cookies['sportablesuser'])
         else:
             u = User.gql("WHERE username = :1", users.get_current_user())
         if u != None:
             if u.count() == 1:
                 #test if table exists
                 k = db.Key.from_path('Table', table_get)
                 tb = db.get(k)
                 if not type(tb) is NoneType:
                     for o in u:
                         #test if user is owner
                         if o.key().id() == tb.user.key().id():
                             tms = Team().all()
                             tms.filter('table = ', k)
                             tms.order('-points')
                             tms.order('-goal_difference')
                             tms.order('-goals_for')
                             tms.order('name')
                             if(tms.count()<2):
                                 disable = 1
                             else:
                                 disable = 0           
                             #new test part
                             rs = Result().all()
                             rs.filter('table = ', k)
                             rs_away = Result().all()
                             rs_away.filter('table = ', k)
                             hrl = []
                             if int(result_set) != 0:
                                 rs.filter('home_team_id = ', result_set)
                                 rs_away.filter('away_team_id = ', result_set)
                                 for r in rs:
                                     hrl.append(int(r.key().id()))
                                 for r in rs_away:
                                     hrl.append(int(r.key().id()))
                                 rs = Result.get_by_id(hrl)
                                 rs.sort(key=lambda result: result.time_added)        
                             #new test end
                             score_options = range(300)
                             template_values = {
                                 'notapp': notapp,
                                 'tabledata': tb,
                                 'teamsdata': tms,
                                 'result_set_data': result_set,
                                 'resultsdata': rs,
                                 'disable': disable,
                                 'score_options': score_options
                             }
                             path = os.path.join(os.path.dirname(__file__), 'results.html')
                             self.response.out.write(template.render(path, template_values))
                         else:
                             logging.warning("attempt to get teams from another user's table")
                             self.redirect('/existingtable')
                 else:
                     logging.warning("attempt to get teams from a table that doesn't exist")
                     self.redirect('/existingtable')
             else:
                 logging.warning("user has a google or temp account but has no User entity")
                 self.redirect('/existingtable')
         else:
             logging.warning("user has neither logged in with a google account or a set a cookie")
             self.redirect('/existingtable')
Beispiel #9
0
 def post(self):
     #test param exists and is right type
     try:
         table_get = int(self.request.get('tbl_id'))
     except:
         table_get = 0
     try:
         home_team = int(self.request.get('home_team'))
     except:
         home_team = 0
     try:
         away_team = int(self.request.get('away_team'))
     except:
         away_team = 0
     try:
         home_team_score = int(self.request.get('home_team_score'))
     except:
         home_team_score = None
     try:
         away_team_score = int(self.request.get('away_team_score'))
     except:
         away_team_score = None           
     if (table_get == 0 or home_team == 0 or away_team == 0 or home_team_score == None
            or away_team_score == None):
         logging.warning("param or type wrong")
         self.redirect('/existingtable')
     else:
         u = None
         if users.get_current_user() == None:
             if 'sportablesuser' in self.request.cookies:
                 u = User.gql("WHERE tempusername = :1", self.request.cookies['sportablesuser'])
         else:
             u = User.gql("WHERE username = :1", users.get_current_user())
         if u != None:
             if u.count() == 1:
                 #test if table and teams exist
                 k = db.Key.from_path('Table', table_get)
                 t = db.get(k)
                 htk = db.Key.from_path('Team', home_team)
                 htm = db.get(htk)
                 atk = db.Key.from_path('Team', away_team)
                 atm = db.get(atk)                    
                 if not type(t) is NoneType and not type(htm) is NoneType and not type(atm) is NoneType:
                     for o in u:
                         #test if user is owner and check that home and away is isn't the same team
                         if (o.key().id() == t.user.key().id() and
                                     t.key().id() == htm.table.key().id() and t.key().id() == atm.table.key().id() and
                                     htm.key().id() != atm.key().id()):
                             #update home team            
                             htm.games_played = htm.games_played + 1
                             pts = 0
                             if home_team_score > away_team_score:
                                 htm.games_won = htm.games_won + 1
                                 pts = t.points_for_win  
                             elif home_team_score > 0 and (home_team_score == away_team_score):
                                 htm.games_drawn = htm.games_drawn + 1
                                 pts = t.points_for_score_draw
                             elif home_team_score == 0 and (home_team_score == away_team_score):
                                 htm.games_drawn = htm.games_drawn + 1
                                 pts = t.points_for_draw             
                             else:
                                 htm.games_lost = htm.games_lost + 1
                                 pts = t.points_for_lose
                             htm.goals_for = htm.goals_for + home_team_score
                             htm.goals_against = htm.goals_against + away_team_score
                             htm.goal_difference = htm.goals_for - htm.goals_against
                             htm.points =  htm.points + int(pts)       
                             htm.put()
                             #update away team            
                             atm.games_played = atm.games_played + 1
                             pts = 0
                             if home_team_score < away_team_score:
                                 atm.games_won = atm.games_won + 1
                                 pts = t.points_for_win  
                             elif home_team_score > 0 and (home_team_score == away_team_score):
                                 atm.games_drawn = atm.games_drawn + 1
                                 pts = t.points_for_score_draw
                             elif home_team_score == 0 and (home_team_score == away_team_score):
                                 atm.games_drawn = atm.games_drawn + 1
                                 pts = t.points_for_draw             
                             else:
                                 atm.games_lost = atm.games_lost + 1
                                 pts = t.points_for_lose
                             atm.goals_for = atm.goals_for + away_team_score
                             atm.goals_against = atm.goals_against + home_team_score
                             atm.goal_difference = atm.goals_for - atm.goals_against
                             atm.points =  atm.points + int(pts)       
                             atm.put()
                             #add result      
                             result = Result(table=t,
                                 home_team_id=home_team,
                                 home_team_name=htm.name,
                                 home_team_score=home_team_score,
                                 away_team_id=away_team,
                                 away_team_name=atm.name,
                                 away_team_score=away_team_score,
                                 time_added=datetime.now()).put()
                             table_id = str(t.key().id())
                             table_object = 'result'
                             return_page = 'Results'       
                             object_action = 'added'
                             object_url = 'getresults'        
                             self.redirect('/displaymessage?table_id='+
                                           str(table_id)+'&table_object='+table_object+'&return_page='+
                                           return_page+'&object_action='+object_action+'&object_url='+object_url)
                         else:
                             logging.warning("attempt to add a result to another user's table or team")
                             self.redirect('/existingtable')
                 else:
                     logging.warning("attempt to add result to a table or a team that doesn't exist")
                     self.redirect('/existingtable')
             else:
                 logging.warning("user has a google or temp account but has no User entity")
                 self.redirect('/existingtable')
         else:
             logging.warning("user has neither logged in with a google account or a set a cookie")
             self.redirect('/existingtable')