Example #1
0
def voter_ballot_items_retrieve_view(request):
    """
    (voterBallotItemsRetrieve) Request a skeleton of ballot data for this voter location,
    so that the web_app has all of the ids it needs to make more requests for data about each ballot item.
    :param request:
    :return:
    """
    voter_device_id = get_voter_device_id(request)  # We look in the cookies for voter_device_id
    # If passed in, we want to look at
    google_civic_election_id = request.GET.get('google_civic_election_id', 0)
    use_test_election = request.GET.get('use_test_election', False)
    use_test_election = False if use_test_election == 'false' else use_test_election
    use_test_election = False if use_test_election == 'False' else use_test_election

    if positive_value_exists(use_test_election):
        google_civic_election_id = 2000  # The Google Civic API Test election
    elif not positive_value_exists(google_civic_election_id):
        # We look in the cookies for google_civic_election_id
        google_civic_election_id = get_google_civic_election_id_from_cookie(request)

    # This 'voter_ballot_items_retrieve_for_api' lives in apis_v1/controllers.py
    results = voter_ballot_items_retrieve_for_api(voter_device_id, google_civic_election_id)
    response = HttpResponse(json.dumps(results['json_data']), content_type='application/json')

    # Save google_civic_election_id in the cookie so the interface knows
    google_civic_election_id_from_ballot_retrieve = results['google_civic_election_id']
    if positive_value_exists(google_civic_election_id_from_ballot_retrieve):
        set_google_civic_election_id_cookie(request, response, results['google_civic_election_id'])

    return response
Example #2
0
def voter_guides_to_follow_retrieve_view(request):  # voterGuidesToFollowRetrieve
    """
    Retrieve a list of voter_guides that a voter might want to follow (voterGuidesToFollow)
    :param request:
    :return:
    """
    voter_device_id = get_voter_device_id(request)  # We look in the cookies for voter_device_id
    kind_of_ballot_item = request.GET.get('kind_of_ballot_item', '')
    ballot_item_we_vote_id = request.GET.get('ballot_item_we_vote_id', '')
    google_civic_election_id = request.GET.get('google_civic_election_id', 0)
    use_test_election = request.GET.get('use_test_election', False)
    use_test_election = False if use_test_election == 'false' else use_test_election
    use_test_election = False if use_test_election == 'False' else use_test_election
    maximum_number_to_retrieve = get_maximum_number_to_retrieve_from_request(request)

    if positive_value_exists(ballot_item_we_vote_id):
        google_civic_election_id = 0
    if positive_value_exists(use_test_election):
        google_civic_election_id = 2000  # The Google Civic API Test election
    elif not positive_value_exists(google_civic_election_id):
        # We look in the cookies for google_civic_election_id
        google_civic_election_id = get_google_civic_election_id_from_cookie(request)
        # TODO DALE Consider getting this to work
        # # If the google_civic_election_id was found cached in a cookie and passed in, use that
        # # If not, fetch it for this voter by looking in the BallotItem table
        # if not positive_value_exists(google_civic_election_id):
        #     google_civic_election_id = fetch_google_civic_election_id_for_voter_id(voter_id)

    results = voter_guides_to_follow_retrieve_for_api(voter_device_id, kind_of_ballot_item, ballot_item_we_vote_id,
                                                      google_civic_election_id, maximum_number_to_retrieve)
    response = HttpResponse(json.dumps(results['json_data']), content_type='application/json')

    # Save google_civic_election_id with fresh version that we retrieved from BallotItem table (if not passed in)
    set_google_civic_election_id_cookie(request, response, results['google_civic_election_id'])

    return response
Example #3
0
def voter_address_save_view(request):
    """
    Save or update an address for this voter
    :param request:
    :return:
    """

    status = ''

    voter_device_id = get_voter_device_id(request)  # We look in the cookies for voter_device_id
    try:
        text_for_map_search = request.POST['text_for_map_search']
        text_for_map_search = text_for_map_search.strip()
        address_variable_exists = True
    except KeyError:
        text_for_map_search = ''
        address_variable_exists = False

    results = voter_address_save_for_api(voter_device_id, text_for_map_search, address_variable_exists)
    voter_address_saved = True if results['success'] else False

    if not positive_value_exists(text_for_map_search):
        json_data = {
            'status': results['status'],
            'success': results['success'],
            'voter_device_id': voter_device_id,
            'text_for_map_search': text_for_map_search,
            'voter_address_saved': voter_address_saved,
            'google_civic_election_id': 0,
        }
        response = HttpResponse(json.dumps(json_data), content_type='application/json')

        # Reset google_civic_election_id to 0 whenever we save an empty address
        google_civic_election_id = 0
        set_google_civic_election_id_cookie(request, response, google_civic_election_id)

        return response

    status += results['status'] + ", "
    # If here, we saved a valid address

    google_civic_election_id = get_google_civic_election_id_from_cookie(request)

    if positive_value_exists(google_civic_election_id):
        google_civic_election_id = convert_to_int(google_civic_election_id)
        if google_civic_election_id == 2000:
            use_test_election = True
        else:
            use_test_election = False
    else:
        use_test_election = False

    results = voter_ballot_items_retrieve_from_google_civic_for_api(voter_device_id, text_for_map_search,
                                                                    use_test_election)

    status += results['status']
    google_civic_election_id = results['google_civic_election_id']

    json_data = {
        'status': status,
        'success': results['success'],
        'voter_device_id': voter_device_id,
        'text_for_map_search': text_for_map_search,
        'voter_address_saved': voter_address_saved,
        'google_civic_election_id': google_civic_election_id,
    }

    response = HttpResponse(json.dumps(json_data), content_type='application/json')

    # Reset google_civic_election_id to the new election whenever we save a new address
    set_google_civic_election_id_cookie(request, response, google_civic_election_id)

    return response