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')
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')
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')
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')
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')
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')
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('/')
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')
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')