Exemple #1
0
def voter_authenticate_manually_view(request):
    messages_on_stage = get_messages(request)

    voter_api_device_id = get_voter_api_device_id(
        request)  # We look in the cookies for voter_api_device_id
    store_new_voter_api_device_id_in_cookie = False
    if not positive_value_exists(voter_api_device_id):
        # Create a voter_device_id and voter in the database if one doesn't exist yet
        results = voter_setup(request)
        voter_api_device_id = results['voter_api_device_id']
        store_new_voter_api_device_id_in_cookie = results[
            'store_new_voter_api_device_id_in_cookie']

    voter_id = fetch_voter_id_from_voter_device_link(voter_api_device_id)
    voter_id = convert_to_int(voter_id)
    voter_on_stage_found = False
    voter_on_stage = Voter()
    try:
        voter_on_stage = Voter.objects.get(id=voter_id)
        voter_on_stage_found = True
    except Voter.MultipleObjectsReturned as e:
        handle_record_found_more_than_one_exception(e, logger=logger)
    except Voter.DoesNotExist:
        # This is fine, we will display an error
        pass

    if voter_on_stage_found:
        set_this_voter_as_admin = "UPDATE voter_voter SET is_admin=True WHERE id={voter_id};".format(
            voter_id=voter_id)
        unset_this_voter_as_admin = "UPDATE voter_voter SET is_admin=False WHERE id={voter_id};".format(
            voter_id=voter_id)

        set_as_verified_volunteer = "UPDATE voter_voter SET is_verified_volunteer=True WHERE id={voter_id};" \
                                    "".format(voter_id=voter_id)
        unset_as_verified_volunteer = "UPDATE voter_voter SET is_verified_volunteer=False WHERE id={voter_id};" \
                                      "".format(voter_id=voter_id)
        template_values = {
            'messages_on_stage': messages_on_stage,
            'voter': voter_on_stage,
            'voter_api_device_id': voter_api_device_id,
            'is_authenticated': request.user.is_authenticated(),
            'set_this_voter_as_admin': set_this_voter_as_admin,
            'unset_this_voter_as_admin': unset_this_voter_as_admin,
            'set_as_verified_volunteer': set_as_verified_volunteer,
            'unset_as_verified_volunteer': unset_as_verified_volunteer,
        }
    else:
        template_values = {
            'messages_on_stage': messages_on_stage,
        }
    response = render(request, 'voter/voter_authenticate_manually.html',
                      template_values)

    # We want to store the voter_api_device_id cookie if it is new
    # if positive_value_exists(voter_api_device_id) and positive_value_exists(store_new_voter_api_device_id_in_cookie):
    # DALE 2016-02-15 Always set if we have a voter_api_device_id
    if positive_value_exists(store_new_voter_api_device_id_in_cookie):
        set_voter_api_device_id(request, response, voter_api_device_id)

    return response
Exemple #2
0
def login_complete_view(request):
    try:
        voter_api_device_id = get_voter_api_device_id(request)
        if not positive_value_exists(voter_api_device_id):
            messages.add_message(request, messages.INFO,
                                 'Missing voter_api_device_id.')
            return HttpResponseRedirect(
                reverse('admin_tools:admin_home', args=()))

        voter_object = request.user
        if not voter_object:
            messages.add_message(request, messages.INFO, 'Missing voter.')
            return HttpResponseRedirect(
                reverse('admin_tools:admin_home', args=()))

        # TODO Write the Twitter or Facebook information to the voter table so we can access it via the APIs
        # Currently all of the twitter authentication for Django is in the separate social_auth* tables

        # Relink this voter_api_device_id to this Voter account
        voter_device_manager = VoterDeviceLinkManager()
        voter_device_link_results = voter_device_manager.retrieve_voter_device_link(
            voter_api_device_id)
        voter_device_link = voter_device_link_results['voter_device_link']

        update_voter_device_link_results = voter_device_manager.update_voter_device_link(
            voter_device_link, voter_object)
        if update_voter_device_link_results['voter_device_link_updated']:
            messages.add_message(request, messages.INFO, 'Voter updated.')
        else:
            messages.add_message(request, messages.INFO,
                                 'Voter could not be relinked.')
    except:
        messages.add_message(request, messages.INFO, 'Voter not updated.')

    return HttpResponseRedirect(reverse('login_user', args=()))
Exemple #3
0
def voter_authenticate_manually_process_view(request):
    voter_api_device_id = get_voter_api_device_id(request)  # We look in the cookies for voter_api_device_id
    voter_id = fetch_voter_id_from_voter_device_link(voter_api_device_id)

    voter_id = convert_to_int(voter_id)
    voter_signed_in = False
    try:
        voter_on_stage = Voter.objects.get(id=voter_id)
        # If the account associated with this voter_api_device_id is an admin, complete Django authentication
        if voter_on_stage.is_admin:
            voter_on_stage.backend = 'django.contrib.auth.backends.ModelBackend'
            login(request, voter_on_stage)
            messages.add_message(request, messages.INFO, 'Voter logged in.')
            voter_signed_in = True
        else:
            messages.add_message(request, messages.INFO, 'This account does not have Admin access.')
    except Voter.MultipleObjectsReturned as e:
        handle_record_found_more_than_one_exception(e, logger=logger)
        messages.add_message(request, messages.ERROR, 'More than one voter found. Voter not logged in.')
    except Voter.DoesNotExist:
        # This is fine, we will display an error
        messages.add_message(request, messages.ERROR, 'Voter not found. Voter not logged in.')

    if voter_signed_in:
        return HttpResponseRedirect(reverse('admin_tools:admin_home', args=()))
    else:
        return HttpResponseRedirect(reverse('voter:authenticate_manually', args=()))
Exemple #4
0
def voter_authenticate_manually_process_view(request):
    voter_api_device_id = get_voter_api_device_id(
        request)  # We look in the cookies for voter_api_device_id
    voter_id = fetch_voter_id_from_voter_device_link(voter_api_device_id)

    voter_id = convert_to_int(voter_id)
    voter_signed_in = False
    try:
        voter_on_stage = Voter.objects.get(id=voter_id)
        # If the account associated with this voter_api_device_id is an admin, complete Django authentication
        if voter_on_stage.is_admin:
            voter_on_stage.backend = 'django.contrib.auth.backends.ModelBackend'
            login(request, voter_on_stage)
            messages.add_message(request, messages.INFO, 'Voter logged in.')
            voter_signed_in = True
        else:
            messages.add_message(request, messages.INFO,
                                 'This account does not have Admin access.')
    except Voter.MultipleObjectsReturned as e:
        handle_record_found_more_than_one_exception(e, logger=logger)
        messages.add_message(
            request, messages.ERROR,
            'More than one voter found. Voter not logged in.')
    except Voter.DoesNotExist:
        # This is fine, we will display an error
        messages.add_message(request, messages.ERROR,
                             'Voter not found. Voter not logged in.')

    if voter_signed_in:
        return HttpResponseRedirect(reverse('admin_tools:admin_home', args=()))
    else:
        return HttpResponseRedirect(
            reverse('voter:authenticate_manually', args=()))
Exemple #5
0
def login_complete_view(request):
    try:
        voter_api_device_id = get_voter_api_device_id(request)
        if not positive_value_exists(voter_api_device_id):
            messages.add_message(request, messages.INFO, 'Missing voter_api_device_id.')
            return HttpResponseRedirect(reverse('admin_tools:admin_home', args=()))

        voter_object = request.user
        if not voter_object:
            messages.add_message(request, messages.INFO, 'Missing voter.')
            return HttpResponseRedirect(reverse('admin_tools:admin_home', args=()))

        # TODO Write the Twitter or Facebook information to the voter table so we can access it via the APIs
        # Currently all of the twitter authentication for Django is in the separate social_auth* tables

        # Relink this voter_api_device_id to this Voter account
        voter_device_manager = VoterDeviceLinkManager()
        voter_device_link_results = voter_device_manager.retrieve_voter_device_link(voter_api_device_id)
        voter_device_link = voter_device_link_results['voter_device_link']

        update_voter_device_link_results = voter_device_manager.update_voter_device_link(
           voter_device_link, voter_object)
        if update_voter_device_link_results['voter_device_link_updated']:
            messages.add_message(request, messages.INFO, 'Voter updated.')
        else:
            messages.add_message(request, messages.INFO, 'Voter could not be relinked.')
    except:
        messages.add_message(request, messages.INFO, 'Voter not updated.')

    return HttpResponseRedirect(reverse('admin_tools:admin_home', args=()))
Exemple #6
0
def position_like_count_doc_view(request):
    """
    Show documentation about positionLikeCount
    """
    url_root = WE_VOTE_SERVER_ROOT_URL
    template_values = position_like_count_doc.position_like_count_doc_template_values(url_root)
    template_values['voter_api_device_id'] = get_voter_api_device_id(request)
    return render(request, 'apis_v1/api_doc_page.html', template_values)
Exemple #7
0
def voter_position_comment_save_doc_view(request):
    """
    Show documentation about positionSave
    """
    url_root = WE_VOTE_SERVER_ROOT_URL
    template_values = voter_position_comment_save_doc.voter_position_comment_save_doc_template_values(url_root)
    template_values['voter_api_device_id'] = get_voter_api_device_id(request)
    return render(request, 'apis_v1/api_doc_page.html', template_values)
Exemple #8
0
def voter_star_status_retrieve_doc_view(request):
    """
    Show documentation about voterStarStatusRetrieve
    """
    url_root = WE_VOTE_SERVER_ROOT_URL
    template_values = voter_star_status_retrieve_doc.voter_star_status_retrieve_doc_template_values(url_root)
    template_values['voter_api_device_id'] = get_voter_api_device_id(request)
    return render(request, 'apis_v1/api_doc_page.html', template_values)
Exemple #9
0
def ballot_item_retrieve_doc_view(request):
    """
    Show documentation about ballotItemRetrieve
    """
    url_root = WE_VOTE_SERVER_ROOT_URL
    template_values = ballot_item_retrieve_doc.ballot_item_retrieve_doc_template_values(url_root)
    template_values['voter_api_device_id'] = get_voter_api_device_id(request)
    return render(request, 'apis_v1/api_doc_page.html', template_values)
Exemple #10
0
def voter_guides_followed_retrieve_doc_view(request):
    """
    Show documentation about organizationsFollowedRetrieve
    """
    url_root = WE_VOTE_SERVER_ROOT_URL
    template_values = voter_guides_followed_retrieve_doc.voter_guides_followed_retrieve_doc_template_values(url_root)
    template_values['voter_api_device_id'] = get_voter_api_device_id(request)
    return render(request, 'apis_v1/api_doc_page.html', template_values)
Exemple #11
0
def twitter_identity_retrieve_doc_view(request):
    """
    Show documentation about twitterIdentityRetrieve
    """
    url_root = WE_VOTE_SERVER_ROOT_URL
    template_values = twitter_identity_retrieve_doc.twitter_identity_retrieve_doc_template_values(url_root)
    template_values['voter_api_device_id'] = get_voter_api_device_id(request)
    return render(request, 'apis_v1/api_doc_page.html', template_values)
Exemple #12
0
def polling_locations_sync_out_doc_view(request):
    """
    Show documentation about pollingLocationsSyncOut
    """
    url_root = WE_VOTE_SERVER_ROOT_URL
    template_values = polling_locations_sync_out_doc.polling_locations_sync_out_doc_template_values(url_root)
    template_values['voter_api_device_id'] = get_voter_api_device_id(request)
    return render(request, 'apis_v1/api_doc_page.html', template_values)
Exemple #13
0
def twitter_sign_in_start_doc_view(request):
    """
    Show documentation about twitterSignInStart
    """
    url_root = WE_VOTE_SERVER_ROOT_URL
    template_values = twitter_sign_in_start_doc.twitter_sign_in_start_doc_template_values(url_root)
    template_values['voter_api_device_id'] = get_voter_api_device_id(request)
    return render(request, 'apis_v1/api_doc_page.html', template_values)
Exemple #14
0
def organization_search_doc_view(request):
    """
    Show documentation about organizationSave
    """
    url_root = WE_VOTE_SERVER_ROOT_URL
    template_values = organization_search_doc.organization_search_doc_template_values(url_root)
    template_values['voter_api_device_id'] = get_voter_api_device_id(request)
    return render(request, 'apis_v1/api_doc_page.html', template_values)
Exemple #15
0
def position_list_for_opinion_maker_doc_view(request):
    """
    Show documentation about positionListForOpinionMaker
    """
    url_root = WE_VOTE_SERVER_ROOT_URL
    template_values = position_list_for_opinion_maker_doc.position_list_for_opinion_maker_doc_template_values(url_root)
    template_values['voter_api_device_id'] = get_voter_api_device_id(request)
    return render(request, 'apis_v1/api_doc_page.html', template_values)
Exemple #16
0
def facebook_sign_in_doc_view(request):
    """
    Show documentation about facebookSignIn
    """
    url_root = WE_VOTE_SERVER_ROOT_URL
    template_values = facebook_sign_in_doc.facebook_sign_in_doc_template_values(url_root)
    template_values['voter_api_device_id'] = get_voter_api_device_id(request)
    return render(request, 'apis_v1/api_doc_page.html', template_values)
def voter_position_like_status_retrieve_doc_view(request):
    """
    Show documentation about voterPositionLikeStatusRetrieve
    """
    url_root = WE_VOTE_SERVER_ROOT_URL
    template_values = voter_position_like_status_retrieve_doc.voter_position_like_status_retrieve_doc_template_values(
        url_root)
    template_values['voter_api_device_id'] = get_voter_api_device_id(request)
    return render(request, 'apis_v1/api_doc_page.html', template_values)
def voter_location_retrieve_from_ip_doc_view(request):
    """
    Show documentation about voterLocationRetrieveFromIP
    """
    url_root = WE_VOTE_SERVER_ROOT_URL
    template_values = voter_location_retrieve_from_ip_doc.voter_location_retrieve_from_ip_doc_template_values(
        url_root)
    template_values['voter_api_device_id'] = get_voter_api_device_id(request)
    return render(request, 'apis_v1/api_doc_page.html', template_values)
def voter_guides_to_follow_retrieve_doc_view(request):
    """
    Show documentation about voterGuidesToFollowRetrieve
    """
    url_root = WE_VOTE_SERVER_ROOT_URL
    template_values = voter_guides_to_follow_retrieve_doc.voter_guides_to_follow_retrieve_doc_template_values(
        url_root)
    template_values['voter_api_device_id'] = get_voter_api_device_id(request)
    return render(request, 'apis_v1/api_doc_page.html', template_values)
def voter_ballot_items_retrieve_from_google_civic_doc_view(request):
    """
    Show documentation about voterBallotItemsRetrieveFromGoogleCivic
    """
    url_root = WE_VOTE_SERVER_ROOT_URL
    template_values = voter_ballot_items_retrieve_from_google_civic_doc.\
        voter_ballot_items_retrieve_from_google_civic_doc_template_values(url_root)
    template_values['voter_api_device_id'] = get_voter_api_device_id(request)
    return render(request, 'apis_v1/api_doc_page.html', template_values)
Exemple #21
0
def search_all_doc_view(request):
    """
    Show documentation about searchAll
    """
    url_root = WE_VOTE_SERVER_ROOT_URL
    template_values = search_all_doc.\
        search_all_doc_template_values(url_root)
    template_values['voter_api_device_id'] = get_voter_api_device_id(request)
    return render(request, 'apis_v1/api_doc_page.html', template_values)
def voter_update_doc_view(request):
    """
    Show documentation about voterUpdate
    """
    url_root = WE_VOTE_SERVER_ROOT_URL
    template_values = voter_update_doc.voter_update_doc_template_values(
        url_root)
    template_values['voter_api_device_id'] = get_voter_api_device_id(request)
    return render(request, 'apis_v1/api_doc_page.html', template_values)
def positions_count_for_one_ballot_item_doc_view(request):
    """
    Show documentation about positionsCountForOneBallotItem
    """
    url_root = WE_VOTE_SERVER_ROOT_URL
    template_values = positions_count_for_one_ballot_item_doc.positions_count_for_one_ballot_item_doc_template_values(
        url_root)
    template_values['voter_api_device_id'] = get_voter_api_device_id(request)
    return render(request, 'apis_v1/api_doc_page.html', template_values)
def position_list_for_opinion_maker_doc_view(request):
    """
    Show documentation about positionListForOpinionMaker
    """
    url_root = WE_VOTE_SERVER_ROOT_URL
    template_values = position_list_for_opinion_maker_doc.position_list_for_opinion_maker_doc_template_values(
        url_root)
    template_values['voter_api_device_id'] = get_voter_api_device_id(request)
    return render(request, 'apis_v1/api_doc_page.html', template_values)
def facebook_sign_in_doc_view(request):
    """
    Show documentation about facebookSignIn
    """
    url_root = WE_VOTE_SERVER_ROOT_URL
    template_values = facebook_sign_in_doc.facebook_sign_in_doc_template_values(
        url_root)
    template_values['voter_api_device_id'] = get_voter_api_device_id(request)
    return render(request, 'apis_v1/api_doc_page.html', template_values)
def polling_locations_sync_out_doc_view(request):
    """
    Show documentation about pollingLocationsSyncOut
    """
    url_root = WE_VOTE_SERVER_ROOT_URL
    template_values = polling_locations_sync_out_doc.polling_locations_sync_out_doc_template_values(
        url_root)
    template_values['voter_api_device_id'] = get_voter_api_device_id(request)
    return render(request, 'apis_v1/api_doc_page.html', template_values)
def search_all_doc_view(request):
    """
    Show documentation about searchAll
    """
    url_root = WE_VOTE_SERVER_ROOT_URL
    template_values = search_all_doc.\
        search_all_doc_template_values(url_root)
    template_values['voter_api_device_id'] = get_voter_api_device_id(request)
    return render(request, 'apis_v1/api_doc_page.html', template_values)
def twitter_identity_retrieve_doc_view(request):
    """
    Show documentation about twitterIdentityRetrieve
    """
    url_root = WE_VOTE_SERVER_ROOT_URL
    template_values = twitter_identity_retrieve_doc.twitter_identity_retrieve_doc_template_values(
        url_root)
    template_values['voter_api_device_id'] = get_voter_api_device_id(request)
    return render(request, 'apis_v1/api_doc_page.html', template_values)
def ballot_items_sync_out_doc_view(request):
    """
    Show documentation about ballotItemsSyncOut
    """
    url_root = WE_VOTE_SERVER_ROOT_URL
    template_values = ballot_items_sync_out_doc.ballot_items_sync_out_doc_template_values(
        url_root)
    template_values['voter_api_device_id'] = get_voter_api_device_id(request)
    return render(request, 'apis_v1/api_doc_page.html', template_values)
def twitter_sign_in_request_voter_info_doc_view(request):
    """
    Show documentation about twitterSignInRequestVoterInfo
    """
    url_root = WE_VOTE_SERVER_ROOT_URL
    template_values = \
        twitter_sign_in_request_voter_info_doc.twitter_sign_in_request_voter_info_doc_template_values(url_root)
    template_values['voter_api_device_id'] = get_voter_api_device_id(request)
    return render(request, 'apis_v1/api_doc_page.html', template_values)
def organization_search_doc_view(request):
    """
    Show documentation about organizationSave
    """
    url_root = WE_VOTE_SERVER_ROOT_URL
    template_values = organization_search_doc.organization_search_doc_template_values(
        url_root)
    template_values['voter_api_device_id'] = get_voter_api_device_id(request)
    return render(request, 'apis_v1/api_doc_page.html', template_values)
Exemple #32
0
def voter_authenticate_manually_view(request):
    messages_on_stage = get_messages(request)

    voter_api_device_id = get_voter_api_device_id(request)  # We look in the cookies for voter_api_device_id
    store_new_voter_api_device_id_in_cookie = False
    if not positive_value_exists(voter_api_device_id):
        # Create a voter_device_id and voter in the database if one doesn't exist yet
        results = voter_setup(request)
        voter_api_device_id = results['voter_api_device_id']
        store_new_voter_api_device_id_in_cookie = results['store_new_voter_api_device_id_in_cookie']

    voter_id = fetch_voter_id_from_voter_device_link(voter_api_device_id)
    voter_id = convert_to_int(voter_id)
    voter_on_stage_found = False
    voter_on_stage = Voter()
    try:
        voter_on_stage = Voter.objects.get(id=voter_id)
        voter_on_stage_found = True
    except Voter.MultipleObjectsReturned as e:
        handle_record_found_more_than_one_exception(e, logger=logger)
    except Voter.DoesNotExist:
        # This is fine, we will display an error
        pass

    if voter_on_stage_found:
        set_this_voter_as_admin = "UPDATE voter_voter SET is_admin=True WHERE id={voter_id};".format(voter_id=voter_id)
        unset_this_voter_as_admin = "UPDATE voter_voter SET is_admin=False WHERE id={voter_id};".format(
            voter_id=voter_id)

        set_as_verified_volunteer = "UPDATE voter_voter SET is_verified_volunteer=True WHERE id={voter_id};" \
                                    "".format(voter_id=voter_id)
        unset_as_verified_volunteer = "UPDATE voter_voter SET is_verified_volunteer=False WHERE id={voter_id};" \
                                      "".format(voter_id=voter_id)
        template_values = {
            'messages_on_stage':            messages_on_stage,
            'voter':                        voter_on_stage,
            'voter_api_device_id':          voter_api_device_id,
            'is_authenticated':             request.user.is_authenticated(),
            'set_this_voter_as_admin':      set_this_voter_as_admin,
            'unset_this_voter_as_admin':    unset_this_voter_as_admin,
            'set_as_verified_volunteer':    set_as_verified_volunteer,
            'unset_as_verified_volunteer':  unset_as_verified_volunteer,
        }
    else:
        template_values = {
            'messages_on_stage': messages_on_stage,

        }
    response = render(request, 'voter/voter_authenticate_manually.html', template_values)

    # We want to store the voter_api_device_id cookie if it is new
    # if positive_value_exists(voter_api_device_id) and positive_value_exists(store_new_voter_api_device_id_in_cookie):
    # DALE 2016-02-15 Always set if we have a voter_api_device_id
    if positive_value_exists(store_new_voter_api_device_id_in_cookie):
        set_voter_api_device_id(request, response, voter_api_device_id)

    return response
def position_like_count_doc_view(request):
    """
    Show documentation about positionLikeCount
    """
    url_root = WE_VOTE_SERVER_ROOT_URL
    template_values = position_like_count_doc.position_like_count_doc_template_values(
        url_root)
    template_values['voter_api_device_id'] = get_voter_api_device_id(request)
    return render(request, 'apis_v1/api_doc_page.html', template_values)
Exemple #34
0
def voter_ballot_items_retrieve_from_google_civic_doc_view(request):
    """
    Show documentation about voterBallotItemsRetrieveFromGoogleCivic
    """
    url_root = WE_VOTE_SERVER_ROOT_URL
    template_values = voter_ballot_items_retrieve_from_google_civic_doc.\
        voter_ballot_items_retrieve_from_google_civic_doc_template_values(url_root)
    template_values['voter_api_device_id'] = get_voter_api_device_id(request)
    return render(request, 'apis_v1/api_doc_page.html', template_values)
Exemple #35
0
def voter_guide_possibility_retrieve_doc_view(request):
    """
    Show documentation about voterGuidePossibilityRetrieve
    """
    url_root = WE_VOTE_SERVER_ROOT_URL
    template_values = \
        voter_guide_possibility_retrieve_doc.voter_guide_possibility_retrieve_doc_template_values(url_root)
    template_values['voter_api_device_id'] = get_voter_api_device_id(request)
    return render(request, 'apis_v1/api_doc_page.html', template_values)
Exemple #36
0
def position_support_count_for_ballot_item_doc_view(request):
    """
    Show documentation about positionSupportCountForBallotItem
    """
    url_root = WE_VOTE_SERVER_ROOT_URL
    template_values = position_support_count_for_ballot_item_doc.\
        position_support_count_for_ballot_item_doc_template_values(url_root)
    template_values['voter_api_device_id'] = get_voter_api_device_id(request)
    return render(request, 'apis_v1/api_doc_page.html', template_values)
Exemple #37
0
def voter_stop_asking_candidate_campaign_view(request, candidate_campaign_id):
    logger.debug(
        "voter_stop_asking_candidate_campaign_view {candidate_campaign_id}".
        format(candidate_campaign_id=candidate_campaign_id))
    voter_api_device_id = get_voter_api_device_id(request)
    voter_id = fetch_voter_id_from_voter_device_link(voter_api_device_id)
    logger.debug(
        "voter_stop_asking_candidate_campaign_view NOT BUILT YET, voter_id: {voter_id}"
        .format(voter_id=voter_id))

    return JsonResponse({0: "not working yet - needs to be built"})
Exemple #38
0
def voter_stop_asking_candidate_campaign_view(request, candidate_campaign_id):
    logger.debug("voter_stop_asking_candidate_campaign_view {candidate_campaign_id}".format(
        candidate_campaign_id=candidate_campaign_id
    ))
    voter_api_device_id = get_voter_api_device_id(request)
    voter_id = fetch_voter_id_from_voter_device_link(voter_api_device_id)
    logger.debug("voter_stop_asking_candidate_campaign_view NOT BUILT YET, voter_id: {voter_id}".format(
        voter_id=voter_id
    ))

    return JsonResponse({0: "not working yet - needs to be built"})
Exemple #39
0
def voter_stance_for_contest_measure_view(request, contest_measure_id):
    logger.debug("voter_stance_for_contest_measure_view {contest_measure_id}".format(
        contest_measure_id=contest_measure_id
    ))
    voter_api_device_id = get_voter_api_device_id(request)
    voter_id = fetch_voter_id_from_voter_device_link(voter_api_device_id)
    logger.debug("voter_stance_for_contest_measure_view NOT BUILT YET, voter_id: {voter_id}".format(
        voter_id=voter_id
    ))

    return JsonResponse({0: "not working yet - needs to be built"})
Exemple #40
0
def voter_stance_for_contest_measure_view(request, contest_measure_id):
    logger.debug(
        "voter_stance_for_contest_measure_view {contest_measure_id}".format(
            contest_measure_id=contest_measure_id))
    voter_api_device_id = get_voter_api_device_id(request)
    voter_id = fetch_voter_id_from_voter_device_link(voter_api_device_id)
    logger.debug(
        "voter_stance_for_contest_measure_view NOT BUILT YET, voter_id: {voter_id}"
        .format(voter_id=voter_id))

    return JsonResponse({0: "not working yet - needs to be built"})
Exemple #41
0
def organization_stop_following_view(request, organization_id):
    logger.debug("organization_stop_following_view {organization_id}".format(
        organization_id=organization_id
    ))
    voter_api_device_id = get_voter_api_device_id(request)
    voter_id = fetch_voter_id_from_voter_device_link(voter_api_device_id)

    follow_organization_manager = FollowOrganizationManager()
    results = follow_organization_manager.toggle_off_voter_following_organization(voter_id, organization_id)
    if results['success']:
        return JsonResponse({0: "success"})
    else:
        return JsonResponse({0: "failure"})
Exemple #42
0
def voter_stop_opposing_candidate_campaign_view(request, candidate_campaign_id):
    logger.debug("voter_stop_opposing_candidate_campaign_view {candidate_campaign_id}".format(
        candidate_campaign_id=candidate_campaign_id
    ))
    voter_api_device_id = get_voter_api_device_id(request)
    voter_id = fetch_voter_id_from_voter_device_link(voter_api_device_id)

    position_entered_manager = PositionEnteredManager()
    results = position_entered_manager.toggle_off_voter_oppose_for_candidate_campaign(voter_id, candidate_campaign_id)
    if results['success']:
        return JsonResponse({0: "success"})
    else:
        return JsonResponse({0: "failure"})
Exemple #43
0
def organization_stop_following_view(request, organization_id):
    logger.debug("organization_stop_following_view {organization_id}".format(
        organization_id=organization_id))
    voter_api_device_id = get_voter_api_device_id(request)
    voter_id = fetch_voter_id_from_voter_device_link(voter_api_device_id)

    follow_organization_manager = FollowOrganizationManager()
    results = follow_organization_manager.toggle_off_voter_following_organization(
        voter_id, organization_id)
    if results['success']:
        return JsonResponse({0: "success"})
    else:
        return JsonResponse({0: "failure"})
Exemple #44
0
def positions_related_to_candidate_campaign_view(
        request, candidate_campaign_id,
        stance_we_are_looking_for):  # TODO DEPRECATE
    """
    We want to return a JSON file with the support positions for a particular candidate's campaign
    :param request:
    :param candidate_campaign_id:
    :return:
    """
    if stance_we_are_looking_for not in (SUPPORT, NO_STANCE, INFORMATION_ONLY,
                                         STILL_DECIDING, OPPOSE,
                                         PERCENT_RATING):
        logger.debug(stance_we_are_looking_for)
        return JsonResponse({0: "stance not recognized"})

    # This implementation is built to make only two database calls. All other calculations are done here in the
    #  application layer

    position_list_manager = PositionListManager()
    candidate_campaign_we_vote_id = ''
    all_positions_list_for_candidate_campaign = \
        position_list_manager.retrieve_all_positions_for_candidate_campaign(
            candidate_campaign_id, candidate_campaign_we_vote_id, stance_we_are_looking_for)

    voter_api_device_id = get_voter_api_device_id(request)
    voter_id = fetch_voter_id_from_voter_device_link(voter_api_device_id)

    follow_organization_list_manager = FollowOrganizationList()
    organizations_followed_by_voter = \
        follow_organization_list_manager.retrieve_follow_organization_by_voter_id_simple_id_array(voter_id)

    positions_followed = position_list_manager.calculate_positions_followed_by_voter(
        voter_id, all_positions_list_for_candidate_campaign,
        organizations_followed_by_voter)

    positions_not_followed = position_list_manager.calculate_positions_not_followed_by_voter(
        all_positions_list_for_candidate_campaign,
        organizations_followed_by_voter)

    # TODO: Below we return a snippet of HTML, but this should be converted to returning just the org's name
    #       and id, so the "x, y, and z support" can be assembled and rendered by the client
    # VERSION 1
    # position_html = assemble_candidate_campaign_position_stance_html(
    #     all_positions_list_for_candidate_campaign, stance_we_are_looking_for, candidate_campaign_id)
    # VERSION 2
    position_html = assemble_candidate_campaign_stance_html(
        candidate_campaign_id, stance_we_are_looking_for, positions_followed,
        positions_not_followed)

    return JsonResponse({0: position_html})
Exemple #45
0
def voter_opposing_candidate_campaign_view(request, candidate_campaign_id):
    logger.debug(
        "voter_opposing_candidate_campaign_view {candidate_campaign_id}".
        format(candidate_campaign_id=candidate_campaign_id))
    voter_api_device_id = get_voter_api_device_id(request)
    voter_id = fetch_voter_id_from_voter_device_link(voter_api_device_id)

    position_entered_manager = PositionEnteredManager()
    results = position_entered_manager.toggle_on_voter_oppose_for_candidate_campaign(
        voter_id, candidate_campaign_id)
    if results['success']:
        return JsonResponse({0: "success"})
    else:
        return JsonResponse({0: "failure"})
Exemple #46
0
def voter_list_view(request):
    authority_required = {'admin'}  # admin, verified_volunteer
    if not voter_has_authority(request, authority_required):
        return redirect_to_sign_in_page(request, authority_required)

    voter_api_device_id = get_voter_api_device_id(request)  # We look in the cookies for voter_api_device_id
    voter_id = fetch_voter_id_from_voter_device_link(voter_api_device_id)
    voter_id = convert_to_int(voter_id)

    messages_on_stage = get_messages(request)
    voter_list = Voter.objects.order_by('-last_login')

    template_values = {
        'messages_on_stage': messages_on_stage,
        'voter_list': voter_list,
        'voter_id_signed_in': voter_id,
    }
    return render(request, 'voter/voter_list.html', template_values)
Exemple #47
0
def positions_related_to_candidate_campaign_view(request, candidate_campaign_id, stance_we_are_looking_for):  # TODO DEPRECATE
    """
    We want to return a JSON file with the support positions for a particular candidate's campaign
    :param request:
    :param candidate_campaign_id:
    :return:
    """
    if stance_we_are_looking_for not in(SUPPORT, NO_STANCE, INFORMATION_ONLY, STILL_DECIDING, OPPOSE, PERCENT_RATING):
        logger.debug(stance_we_are_looking_for)
        return JsonResponse({0: "stance not recognized"})

    # This implementation is built to make only two database calls. All other calculations are done here in the
    #  application layer

    position_list_manager = PositionListManager()
    candidate_campaign_we_vote_id = ''
    all_positions_list_for_candidate_campaign = \
        position_list_manager.retrieve_all_positions_for_candidate_campaign(
            candidate_campaign_id, candidate_campaign_we_vote_id, stance_we_are_looking_for)

    voter_api_device_id = get_voter_api_device_id(request)
    voter_id = fetch_voter_id_from_voter_device_link(voter_api_device_id)

    follow_organization_list_manager = FollowOrganizationList()
    organizations_followed_by_voter = \
        follow_organization_list_manager.retrieve_follow_organization_by_voter_id_simple_id_array(voter_id)

    positions_followed = position_list_manager.calculate_positions_followed_by_voter(
        voter_id, all_positions_list_for_candidate_campaign, organizations_followed_by_voter)

    positions_not_followed = position_list_manager.calculate_positions_not_followed_by_voter(
        all_positions_list_for_candidate_campaign, organizations_followed_by_voter)

    # TODO: Below we return a snippet of HTML, but this should be converted to returning just the org's name
    #       and id, so the "x, y, and z support" can be assembled and rendered by the client
    # VERSION 1
    # position_html = assemble_candidate_campaign_position_stance_html(
    #     all_positions_list_for_candidate_campaign, stance_we_are_looking_for, candidate_campaign_id)
    # VERSION 2
    position_html = assemble_candidate_campaign_stance_html(
        candidate_campaign_id, stance_we_are_looking_for, positions_followed, positions_not_followed)

    return JsonResponse({0: position_html})
Exemple #48
0
def voter_stance_for_candidate_campaign_view(request, candidate_campaign_id):
    logger.debug("voter_stance_for_candidate_campaign_view {candidate_campaign_id}".format(
        candidate_campaign_id=candidate_campaign_id
    ))
    voter_api_device_id = get_voter_api_device_id(request)
    voter_id = fetch_voter_id_from_voter_device_link(voter_api_device_id)

    position_entered_manager = PositionEnteredManager()
    results = position_entered_manager.retrieve_voter_candidate_campaign_position(voter_id, candidate_campaign_id)
    if results['position_found']:
        if results['is_support']:
            return JsonResponse({0: "support"})
        elif results['is_oppose']:
            return JsonResponse({0: "oppose"})
        elif results['is_no_stance']:
            return JsonResponse({0: "no_stance"})
        elif results['is_information_only']:
            return JsonResponse({0: "information_only"})
        elif results['is_still_deciding']:
            return JsonResponse({0: "still_deciding"})
    return JsonResponse({0: "failure"})
Exemple #49
0
def voter_stance_for_candidate_campaign_view(request, candidate_campaign_id):
    logger.debug(
        "voter_stance_for_candidate_campaign_view {candidate_campaign_id}".
        format(candidate_campaign_id=candidate_campaign_id))
    voter_api_device_id = get_voter_api_device_id(request)
    voter_id = fetch_voter_id_from_voter_device_link(voter_api_device_id)

    position_entered_manager = PositionEnteredManager()
    results = position_entered_manager.retrieve_voter_candidate_campaign_position(
        voter_id, candidate_campaign_id)
    if results['position_found']:
        if results['is_support']:
            return JsonResponse({0: "support"})
        elif results['is_oppose']:
            return JsonResponse({0: "oppose"})
        elif results['is_no_stance']:
            return JsonResponse({0: "no_stance"})
        elif results['is_information_only']:
            return JsonResponse({0: "information_only"})
        elif results['is_still_deciding']:
            return JsonResponse({0: "still_deciding"})
    return JsonResponse({0: "failure"})
Exemple #50
0
def retrieve_voter_authority(request):
    # voter_device_id = get_voter_device_id(request)
    voter_api_device_id = get_voter_api_device_id(request)
    voter_manager = VoterManager()
    results = voter_manager.retrieve_voter_from_voter_device_id(voter_api_device_id)
    if results['voter_found']:
        voter = results['voter']
        authority_results = {
            'voter_found':              True,
            'is_active':                positive_value_exists(voter.is_active),
            'is_admin':                 positive_value_exists(voter.is_admin),
            'is_verified_volunteer':    positive_value_exists(voter.is_verified_volunteer),
        }
        return authority_results

    authority_results = {
        'voter_found':              False,
        'is_active':                False,
        'is_admin':                 False,
        'is_verified_volunteer':    False,
    }
    return authority_results
Exemple #51
0
def voter_list_view(request):
    authority_required = {'admin'}  # admin, verified_volunteer
    if not voter_has_authority(request, authority_required):
        return redirect_to_sign_in_page(request, authority_required)

    voter_api_device_id = get_voter_api_device_id(
        request)  # We look in the cookies for voter_api_device_id
    voter_id = fetch_voter_id_from_voter_device_link(voter_api_device_id)
    voter_id = convert_to_int(voter_id)

    messages_on_stage = get_messages(request)
    voter_list = Voter.objects.order_by('-is_admin', '-is_verified_volunteer',
                                        'facebook_email',
                                        'twitter_screen_name', 'last_name',
                                        'first_name')
    voter_list = voter_list  # [:200]

    template_values = {
        'messages_on_stage': messages_on_stage,
        'voter_list': voter_list,
        'voter_id_signed_in': voter_id,
    }
    return render(request, 'voter/voter_list.html', template_values)
Exemple #52
0
def logout_user(request):
    logout(request)

    info_message = "You are now signed out."
    messages.add_message(request, messages.INFO, info_message)

    messages_on_stage = get_messages(request)
    template_values = {
        'request':              request,
        'next':                 '/admin/',
        'messages_on_stage':    messages_on_stage,
    }
    response = render(request, 'registration/login_user.html', template_values)

    # Find current voter_api_device_id
    voter_api_device_id = get_voter_api_device_id(request)

    delete_voter_api_device_id_cookie(response)

    # Now delete voter_api_device_id from database
    voter_device_link_manager = VoterDeviceLinkManager()
    voter_device_link_manager.delete_voter_device_link(voter_api_device_id)

    return response
Exemple #53
0
def logout_user(request):
    logout(request)

    info_message = "You are now signed out."
    messages.add_message(request, messages.INFO, info_message)

    messages_on_stage = get_messages(request)
    template_values = {
        'request': request,
        'next': '/admin/',
        'messages_on_stage': messages_on_stage,
    }
    response = render(request, 'registration/login_user.html', template_values)

    # Find current voter_api_device_id
    voter_api_device_id = get_voter_api_device_id(request)

    delete_voter_api_device_id_cookie(response)

    # Now delete voter_api_device_id from database
    voter_device_link_manager = VoterDeviceLinkManager()
    voter_device_link_manager.delete_voter_device_link(voter_api_device_id)

    return response
Exemple #54
0
def login_user(request):
    """
    This method is called when you login from the /login/ form
    :param request:
    :return:
    """
    voter_api_device_id = get_voter_api_device_id(
        request)  # We look in the cookies for voter_api_device_id
    store_new_voter_api_device_id_in_cookie = False
    voter_signed_in = False

    voter_manager = VoterManager()
    voter_device_link_manager = VoterDeviceLinkManager()
    results = voter_manager.retrieve_voter_from_voter_device_id(
        voter_api_device_id)
    if results['voter_found']:
        voter_on_stage = results['voter']
        voter_on_stage_id = voter_on_stage.id
        # Just because a We Vote voter is found doesn't mean they are authenticated for Django
    else:
        voter_on_stage_id = 0

    info_message = ''
    error_message = ''
    username = ''

    # Does Django think user is already signed in?
    if request.user.is_authenticated():
        # If so, make sure user and voter_on_stage are the same.
        if request.user.id != voter_on_stage_id:
            # Delete the prior voter_api_device_id from database
            voter_device_link_manager.delete_voter_device_link(
                voter_api_device_id)

            # Create a new voter_api_device_id and voter_device_link
            voter_api_device_id = generate_voter_device_id()
            results = voter_device_link_manager.save_new_voter_device_link(
                voter_api_device_id, request.user.id)
            store_new_voter_api_device_id_in_cookie = results[
                'voter_device_link_created']
            voter_on_stage = request.user
            voter_on_stage_id = voter_on_stage.id
    elif request.POST:
        username = request.POST.get('username')
        password = request.POST.get('password')

        user = authenticate(username=username, password=password)
        if user is not None:
            if user.is_active:
                login(request, user)
                info_message = "You're successfully logged in!"

                # Delete the prior voter_api_device_id from database
                voter_device_link_manager.delete_voter_device_link(
                    voter_api_device_id)

                # Create a new voter_api_device_id and voter_device_link
                voter_api_device_id = generate_voter_device_id()
                results = voter_device_link_manager.save_new_voter_device_link(
                    voter_api_device_id, user.id)
                store_new_voter_api_device_id_in_cookie = results[
                    'voter_device_link_created']
            else:
                error_message = "Your account is not active, please contact the site admin."

            if user.id != voter_on_stage_id:
                # Eventually we want to merge voter_on_stage into user account
                pass
        else:
            error_message = "Your username and/or password were incorrect."
    elif not positive_value_exists(voter_on_stage_id):
        # If here, delete the prior voter_api_device_id from database
        voter_device_link_manager.delete_voter_device_link(voter_api_device_id)

        # We then need to set a voter_api_device_id cookie and create a new voter (even though not signed in)
        results = voter_setup(request)
        voter_api_device_id = results['voter_api_device_id']
        store_new_voter_api_device_id_in_cookie = results[
            'store_new_voter_api_device_id_in_cookie']

    # Does Django think user is signed in?
    if request.user.is_authenticated():
        voter_signed_in = True
    else:
        info_message = "Please log in below..."

    if positive_value_exists(error_message):
        messages.add_message(request, messages.ERROR, error_message)
    if positive_value_exists(info_message):
        messages.add_message(request, messages.INFO, info_message)

    messages_on_stage = get_messages(request)
    template_values = {
        'request': request,
        'username': username,
        'next': next,
        'voter_signed_in': voter_signed_in,
        'messages_on_stage': messages_on_stage,
    }
    response = render(request, 'registration/login_user.html', template_values)

    # We want to store the voter_api_device_id cookie if it is new
    if positive_value_exists(voter_api_device_id) and positive_value_exists(
            store_new_voter_api_device_id_in_cookie):
        set_voter_api_device_id(request, response, voter_api_device_id)

    return response
Exemple #55
0
def login_user(request):
    """
    This method is called when you login from the /login/ form
    :param request:
    :return:
    """
    voter_api_device_id = get_voter_api_device_id(request)  # We look in the cookies for voter_api_device_id
    store_new_voter_api_device_id_in_cookie = False
    voter_signed_in = False

    voter_manager = VoterManager()
    voter_device_link_manager = VoterDeviceLinkManager()
    results = voter_manager.retrieve_voter_from_voter_device_id(voter_api_device_id)
    if results['voter_found']:
        voter_on_stage = results['voter']
        voter_on_stage_id = voter_on_stage.id
        # Just because a We Vote voter is found doesn't mean they are authenticated for Django
    else:
        voter_on_stage_id = 0

    info_message = ''
    error_message = ''
    username = ''

    # Does Django think user is already signed in?
    if request.user.is_authenticated():
        # If so, make sure user and voter_on_stage are the same.
        if request.user.id != voter_on_stage_id:
            # Delete the prior voter_api_device_id from database
            voter_device_link_manager.delete_voter_device_link(voter_api_device_id)

            # Create a new voter_api_device_id and voter_device_link
            voter_api_device_id = generate_voter_device_id()
            results = voter_device_link_manager.save_new_voter_device_link(voter_api_device_id, request.user.id)
            store_new_voter_api_device_id_in_cookie = results['voter_device_link_created']
            voter_on_stage = request.user
            voter_on_stage_id = voter_on_stage.id
    elif request.POST:
        username = request.POST.get('username')
        password = request.POST.get('password')

        user = authenticate(username=username, password=password)
        if user is not None:
            if user.is_active:
                login(request, user)
                info_message = "You're successfully logged in!"

                # Delete the prior voter_api_device_id from database
                voter_device_link_manager.delete_voter_device_link(voter_api_device_id)

                # Create a new voter_api_device_id and voter_device_link
                voter_api_device_id = generate_voter_device_id()
                results = voter_device_link_manager.save_new_voter_device_link(voter_api_device_id, user.id)
                store_new_voter_api_device_id_in_cookie = results['voter_device_link_created']
            else:
                error_message = "Your account is not active, please contact the site admin."

            if user.id != voter_on_stage_id:
                # Eventually we want to merge voter_on_stage into user account
                pass
        else:
            error_message = "Your username and/or password were incorrect."
    elif not positive_value_exists(voter_on_stage_id):
        # If here, delete the prior voter_api_device_id from database
        voter_device_link_manager.delete_voter_device_link(voter_api_device_id)

        # We then need to set a voter_api_device_id cookie and create a new voter (even though not signed in)
        results = voter_setup(request)
        voter_api_device_id = results['voter_api_device_id']
        store_new_voter_api_device_id_in_cookie = results['store_new_voter_api_device_id_in_cookie']

    # Does Django think user is signed in?
    if request.user.is_authenticated():
        voter_signed_in = True
    else:
        info_message = "Please log in below..."

    if positive_value_exists(error_message):
        messages.add_message(request, messages.ERROR, error_message)
    if positive_value_exists(info_message):
        messages.add_message(request, messages.INFO, info_message)

    messages_on_stage = get_messages(request)
    template_values = {
        'request':              request,
        'username':             username,
        'next':                 next,
        'voter_signed_in':      voter_signed_in,
        'messages_on_stage':    messages_on_stage,
    }
    response = render(request, 'registration/login_user.html', template_values)

    # We want to store the voter_api_device_id cookie if it is new
    if positive_value_exists(voter_api_device_id) and positive_value_exists(store_new_voter_api_device_id_in_cookie):
        set_voter_api_device_id(request, response, voter_api_device_id)

    return response