コード例 #1
0
ファイル: voters.py プロジェクト: rice-apps/rice-elections
 def delete_voters(self, election, data):
     self.voters_task(election, data, 'delete_voters')
     voter_set = models.get_voter_set(election)
     for voter in data['voters']:
         voter_set.discard(voter)
     out = {'status': 'OK',
            'msg': 'Deleting',
            'voters': sorted(list(voter_set))}
     self.response.write(json.dumps(out))
コード例 #2
0
 def delete_voters(self, election, data):
     self.voters_task(election, data, 'delete_voters')
     voter_set = models.get_voter_set(election)
     for voter in data['voters']:
         voter_set.discard(voter)
     out = {'status': 'OK',
            'msg': 'Adding',
            'voters': sorted(list(voter_set))}
     self.response.write(json.dumps(out))
コード例 #3
0
    def get(self):
        # Authenticate user
        voter = auth.get_voter(self)
        status = models.get_admin_status(voter)
        if not status:
            webapputils.render_page(self, '/templates/message',
                {'status': 'Not Authorized', 'msg': MSG_NOT_AUTHORIZED})
            return

        # Get election
        election = auth.get_election()
        if not election:
            panel = get_panel(
                PAGE_URL,
                {'status': 'ERROR','msg': 'No election found.'},
                None)
            webapputils.render_page_content(self, PAGE_URL, panel)
            return

        if election.universal:
            panel = get_panel(
                PAGE_URL,
                {'status': 'Universal Election',
                 'msg': 'This is a universal election, anyone with a valid '
                        'NetID can vote for. Therefore you cannot manage '
                        'the voters list.'},
                None)
            webapputils.render_page_content(self, PAGE_URL, panel)
            return

        data = {'status': 'OK',
                'id': str(election.key()),
                'voters': sorted(list(models.get_voter_set(election)))}
        logging.info(data)
        panel = get_panel(PAGE_URL, data, data.get('id'))
        webapputils.render_page_content(self, PAGE_URL, panel)
コード例 #4
0
ファイル: voters.py プロジェクト: rice-apps/rice-elections
    def get(self):
        # Authenticate user
        voter = auth.get_voter(self)
        status = models.get_admin_status(voter)
        if not status:
            webapputils.render_page(self, '/templates/message',
                {'status': 'Not Authorized', 'msg': MSG_NOT_AUTHORIZED})
            return

        # Get election
        election = auth.get_election()
        if not election:
            panel = get_panel(
                PAGE_URL,
                {'status': 'ERROR','msg': 'No election found.'},
                None)
            webapputils.render_page_content(self, PAGE_URL, panel)
            return

        if election.universal:
            panel = get_panel(
                PAGE_URL,
                {'status': 'Universal Election',
                 'msg': 'This is a universal election, anyone with a valid '
                        'NetID can vote for. Therefore you cannot manage '
                        'the voters list.'},
                None)
            webapputils.render_page_content(self, PAGE_URL, panel)
            return

        # check to see if task already in task queue, indicates voters still being added
        # TODO: Don't add blank task, just see if there is already something working in the queue.
        # try:
        #     response = requests.get('https://www.googleapis.com/taskqueue/v1beta2/projects/owlection/taskqueues/voters/tasks')
        #
        #     # taskqueue.add(name=str(election.key()),
        #     #           queue_name='voters')
        # except taskqueue.TaskAlreadyExistsError:
        #     panel = get_panel(
        #         PAGE_URL,
        #         {'status': 'Adding Voters',
        #          'msg': 'Come back later. Still adding voters.'},
        #         None)
        #     webapputils.render_page_content(self, PAGE_URL, panel)
        #     return

        #checks to see if the voter set exists (in mem cache), 
        #if not indicates voters still being added
        
        # voter_set = memcache.get(str(election.key())+'-voter-set')
        # if not voter_set:
        #     deferred.defer(models.update_voter_set, election, _name=str(election.key()), _queue='voters')
        #     panel = get_panel(
        #         PAGE_URL,
        #         {'status': 'Adding Voters',
        #          'msg': 'Come back later. Still adding voters.'},
        #         None)
        #     webapputils.render_page_content(self, PAGE_URL, panel)
        #     return


        data = {'status': 'OK',
                'id': str(election.key()),
                'voters': list(models.get_voter_set(election))}
                #'voters': sorted(list(models.get_voter_set(election)))}
        logging.info(data)
        panel = get_panel(PAGE_URL, data, data.get('id'))
        webapputils.render_page_content(self, PAGE_URL, panel)
コード例 #5
0
    def get(self):
        # Authenticate user
        voter = auth.get_voter(self)
        status = models.get_admin_status(voter)
        if not status:
            webapputils.render_page(self, '/templates/message', {
                'status': 'Not Authorized',
                'msg': MSG_NOT_AUTHORIZED
            })
            return

        # Get election
        election = auth.get_election()
        if not election:
            panel = get_panel(PAGE_URL, {
                'status': 'ERROR',
                'msg': 'No election found.'
            }, None)
            webapputils.render_page_content(self, PAGE_URL, panel)
            return

        if election.universal:
            panel = get_panel(
                PAGE_URL, {
                    'status':
                    'Universal Election',
                    'msg':
                    'This is a universal election, anyone with a valid '
                    'NetID can vote for. Therefore you cannot manage '
                    'the voters list.'
                }, None)
            webapputils.render_page_content(self, PAGE_URL, panel)
            return

        # check to see if task already in task queue, indicates voters still being added
        # TODO: Don't add blank task, just see if there is already something working in the queue.
        # try:
        #     response = requests.get('https://www.googleapis.com/taskqueue/v1beta2/projects/owlection/taskqueues/voters/tasks')
        #
        #     # taskqueue.add(name=str(election.key()),
        #     #           queue_name='voters')
        # except taskqueue.TaskAlreadyExistsError:
        #     panel = get_panel(
        #         PAGE_URL,
        #         {'status': 'Adding Voters',
        #          'msg': 'Come back later. Still adding voters.'},
        #         None)
        #     webapputils.render_page_content(self, PAGE_URL, panel)
        #     return

        #checks to see if the voter set exists (in mem cache),
        #if not indicates voters still being added

        # voter_set = memcache.get(str(election.key())+'-voter-set')
        # if not voter_set:
        #     deferred.defer(models.update_voter_set, election, _name=str(election.key()), _queue='voters')
        #     panel = get_panel(
        #         PAGE_URL,
        #         {'status': 'Adding Voters',
        #          'msg': 'Come back later. Still adding voters.'},
        #         None)
        #     webapputils.render_page_content(self, PAGE_URL, panel)
        #     return

        data = {
            'status': 'OK',
            'id': str(election.key()),
            'voters': list(models.get_voter_set(election))
        }
        #'voters': sorted(list(models.get_voter_set(election)))}
        logging.info(data)
        panel = get_panel(PAGE_URL, data, data.get('id'))
        webapputils.render_page_content(self, PAGE_URL, panel)