Ejemplo n.º 1
0
    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!')
Ejemplo n.º 2
0
    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()))
Ejemplo n.º 3
0
 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!')
Ejemplo n.º 4
0
 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)
Ejemplo n.º 5
0
    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!')
Ejemplo n.º 6
0
    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!')
Ejemplo n.º 7
0
    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))
Ejemplo n.º 8
0
    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!')
Ejemplo n.º 9
0
    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')
Ejemplo n.º 10
0
    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)
Ejemplo n.º 11
0
    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!')
Ejemplo n.º 12
0
    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!')