def post(self): user = auth.get_logged_in_user() if not user: return self.redirect(ERROR_URI) petition_id = self.request.get('id') petition = models.petition.get_petition(petition_id) position = petition.get_position() election_id = petition.get_election() election = models.election.get_election(election_id) organization_id = election.get_organization() organization = models.organization.get_organization(organization_id) petition_email = petition.get_user().get_id() + '@rice.edu' admin_emails = [] for admin in organization.get_admins(): admin_emails.append(admin + '@rice.edu') # Ensures you cannot unsign your own petition. You never voted in the first place. if user.get_id() == petition.get_user().get_id(): models.petition.unsign_petition(user, petition) self.response.out.write('Successfully unsigned!') if petition.get_signature_num() == election.get_threshold() - 1: threshold_not_met(petition.get_user().get_id(), organization.get_title(), election.get_title(), str(election.get_threshold()), str(petition.get_signature_num()), position, petition_email, admin_emails) else: self.response.out.write('You cannot unsign your own petition!')
def post(self): user = auth.get_logged_in_user() if not user: return self.redirect(ERROR_URI) election_id = self.request.get('id') election = models.election.get_election(election_id) self.response.out.write(json.dumps(election.get_positions()))
def post(self): user = auth.get_logged_in_user() if not user: return petition_id = self.request.get('id') petition = models.petition.get_petition(petition_id) models.petition.unvote_petition(user, petition) self.response.out.write('Successfully unvoted!')
def get(self): user = auth.get_logged_in_user() navbar = {} if user: navbar = { 'team_name': user.team_name, 'logged_in' : True, 'team_score' : user.team_score, 'faq' : True } view = pages.render_view('/FAQ') pages.render_page(self, view, navbar)
def delete(self): # Authenticate user user = auth.get_logged_in_user() if not user: return self.redirect(ERROR_URI) petition_id = self.request.get('id') petition = models.petition.get_petition(petition_id) # Make sure the user is not trying to delete someone else's petition assert petition.user.key() == user.key() models.petition.delete_petition(petition) self.response.out.write('Success!')
def post(self): # Authenticate user user = auth.get_logged_in_user() if not user: return # Should return error message here petition_id = self.request.get('id') petition = models.petition.get_petition(petition_id) # Make sure the user is not trying to delete someone else's petition assert petition.user.key() == user.key() models.petition.delete_petition(petition) self.response.out.write('Success!')
def post(self): # Authenticate user user = auth.get_logged_in_user() if not user: return # Should return error message here # Create petition data = json.loads(self.request.get('data')) logging.info('Petition Post: %s', data) petition = models.petition.create_petition(user, data) # Respond data['id'] = str(petition.key()) self.response.out.write(json.dumps(data))
def post(self): # Authenticate user user = auth.get_logged_in_user() if not user: return # Should return error message here sticky_id = self.request.get('id') sticky = models.sticky.get_sticky(sticky_id) # Make sure the user is not trying to delete someone else's sticky assert sticky.user.key() == user.key() models.sticky.delete_sticky(sticky) self.response.out.write('Success!')
def post(self): # Authenticate user user = auth.get_logged_in_user() if not user: return self.redirect(ERROR_URI) # Create petition data = json.loads(self.request.get('data')) logging.info('Petition Post: %s', data) petition = models.petition.create_petition(user, data) # Respond if not petition: self.response.out.write('Duplicate Petition') else: self.response.out.write('Success')
def get(self): # if now #See if user if logged in user = auth.get_logged_in_user() navbar = {} if user: navbar = { 'team_name': user.team_name, 'logged_in' : True, 'team_score' : user.team_score } now = datetime.now() - timedelta(hours=6) #Get CST from UTC if now > HIDE_TIME and now < CLOSE_TIME: view = pages.render_view('/outoftime', {}) pages.render_page(self, view, navbar) return scores = get_users_leaderboard() view = pages.render_view(PAGE_URI, {'teams': scores}) pages.render_page(self, view, navbar)
def delete(self): # Authenticate user user = auth.get_logged_in_user() if not user: return self.redirect(ERROR_URI) organization_id = self.request.get('id') organization = models.organization.get_organization(organization_id) # Make sure the user is authorized to delete the organization assert user.get_id() == ADMIN_ID models.organization.delete_organization(organization) elections = models.election.get_organization_elections(organization_id) for election in elections: for position in election.positions: petitions = models.petition.get_petitions_for_position(election.id, position) for petition in petitions: models.petition.delete_petition(petition) models.election.delete_election(election) self.response.out.write('Success!')
def post(self): # Authenticate user user = auth.get_logged_in_user() if not user: return # Should return error message here #Add a new attempt # Create attempt data = json.loads(self.request.get('data')) logging.info('Attempt Post: %s', data) puzzle_index = int(data['puzzleNum']) - 1 now = datetime.now() - timedelta(hours=6) #Get CST from UTC now = now.strftime('%Y-%m-%d %H:%M:%S') data['id'] = now attempts = get_attempts(user, puzzle_index) if len(attempts) == MAX_ATTEMPTS: data['success'] = False if data['attempt'] in models.puzzle_data.puzzle_answers[puzzle_index]: data['correctness'] = True else: data['correctness'] = False self.response.out.write(json.dumps(data)) return #Check if already solved for a in attempts: if a['correctness']: #Solved so say it is data['success'] = False data['correctness'] = True self.response.out.write(json.dumps(data)) return if data['attempt'].upper() in models.puzzle_data.puzzle_answers[puzzle_index]: data['correctness'] = True #Add up the score! user.team_score += 100 - len(attempts) * 10 user.put() data['team_name'] = user.team_name data['team_score'] = user.team_score else: data['correctness'] = False #Save user results #Save the attempt attempt ={ 'puzzle_num': puzzle_index, 'attempt_str': data['attempt'], 'correctness': data['correctness'] } create_attempt(user, attempt) # Respond data['success'] = True logging.info(data) self.response.out.write(json.dumps(data)) # class GarbageHandler(webapp2.RequestHandler): # def post(self): # # Authenticate user # user = auth.get_logged_in_user() # if not user: # return # Should return error message here # # sticky_id = self.request.get('id') # sticky = models.sticky.get_sticky(sticky_id) # # # Make sure the user is not trying to delete someone else's sticky # assert sticky.user.key() == user.key() # # models.sticky.delete_sticky(sticky) # self.response.out.write('Success!')