def ballot_item_list_edit_view(request, ballot_returned_id): authority_required = {'verified_volunteer'} # admin, verified_volunteer if not voter_has_authority(request, authority_required): return redirect_to_sign_in_page(request, authority_required) # We can accept either, but give preference to polling_location_id polling_location_id = request.GET.get('polling_location_id', 0) polling_location_we_vote_id = request.GET.get( 'polling_location_we_vote_id', '') polling_location_city = request.GET.get('polling_location_city', '') polling_location_zip = request.GET.get('polling_location_zip', '') ballot_returned_found = False ballot_returned = BallotReturned() ballot_returned_manager = BallotReturnedManager() results = ballot_returned_manager.retrieve_existing_ballot_returned_by_identifier( ballot_returned_id) if results['ballot_returned_found']: ballot_returned = results['ballot_returned'] ballot_returned_found = True google_civic_election_id = ballot_returned.google_civic_election_id else: google_civic_election_id = request.GET.get('google_civic_election_id', 0) google_civic_election_id = convert_to_int(google_civic_election_id) election = Election() election_state = '' contest_measure_list = [] contest_office_list = [] if google_civic_election_id: election_manager = ElectionManager() results = election_manager.retrieve_election(google_civic_election_id) if results['election_found']: election = results['election'] election_state = election.get_election_state() # Get a list of offices for this election so we can create drop downs try: contest_office_list = ContestOffice.objects.order_by('office_name') contest_office_list = contest_office_list.filter( google_civic_election_id=google_civic_election_id) except Exception as e: contest_office_list = [] # Get a list of measures for this election so we can create drop downs try: contest_measure_list = ContestMeasure.objects.order_by( 'measure_title') contest_measure_list = contest_measure_list.filter( google_civic_election_id=google_civic_election_id) except Exception as e: contest_measure_list = [] else: messages.add_message( request, messages.ERROR, 'In order to create a \'ballot_returned\' entry, ' 'a google_civic_election_id is required.') polling_location_found = False polling_location = PollingLocation() polling_location_manager = PollingLocationManager() if positive_value_exists(polling_location_id): results = polling_location_manager.retrieve_polling_location_by_id( polling_location_id) if results['polling_location_found']: polling_location = results['polling_location'] polling_location_found = True if not polling_location_found and positive_value_exists( polling_location_we_vote_id): results = polling_location_manager.retrieve_polling_location_by_id( 0, polling_location_we_vote_id) if results['polling_location_found']: polling_location = results['polling_location'] polling_location_found = True polling_location_list = [] if not polling_location_found: results = polling_location_manager.retrieve_polling_locations_in_city_or_state( election_state, polling_location_city, polling_location_zip) if results['polling_location_list_found']: polling_location_list = results['polling_location_list'] messages_on_stage = get_messages(request) ballot_item_list = [] if ballot_returned_found: # Get a list of ballot_items stored at this location ballot_item_list_manager = BallotItemListManager() if positive_value_exists(ballot_returned.polling_location_we_vote_id): results = ballot_item_list_manager.retrieve_all_ballot_items_for_polling_location( ballot_returned.polling_location_we_vote_id, google_civic_election_id) if results['ballot_item_list_found']: ballot_item_list = results['ballot_item_list'] template_values = { 'messages_on_stage': messages_on_stage, 'ballot_returned': ballot_returned, 'ballot_returned_id': ballot_returned_id, 'election': election, 'measure_list': contest_measure_list, 'office_list': contest_office_list, 'polling_location_we_vote_id': polling_location_we_vote_id, 'polling_location_found': polling_location_found, 'polling_location': polling_location, 'polling_location_list': polling_location_list, 'polling_location_city': polling_location_city, 'polling_location_zip': polling_location_zip, 'ballot_item_list': ballot_item_list, 'google_civic_election_id': google_civic_election_id, } return render(request, 'ballot/ballot_item_list_edit.html', template_values)
def ballot_item_list_edit_view(request, ballot_returned_id): authority_required = {'verified_volunteer'} # admin, verified_volunteer if not voter_has_authority(request, authority_required): return redirect_to_sign_in_page(request, authority_required) # We can accept either, but give preference to polling_location_id polling_location_id = request.GET.get('polling_location_id', 0) polling_location_we_vote_id = request.GET.get('polling_location_we_vote_id', '') polling_location_city = request.GET.get('polling_location_city', '') polling_location_zip = request.GET.get('polling_location_zip', '') ballot_returned_found = False ballot_returned = BallotReturned() ballot_returned_manager = BallotReturnedManager() results = ballot_returned_manager.retrieve_existing_ballot_returned_by_identifier(ballot_returned_id) if results['ballot_returned_found']: ballot_returned = results['ballot_returned'] ballot_returned_found = True google_civic_election_id = ballot_returned.google_civic_election_id else: google_civic_election_id = request.GET.get('google_civic_election_id', 0) google_civic_election_id = convert_to_int(google_civic_election_id) election = Election() election_state = '' contest_measure_list = [] contest_office_list = [] if google_civic_election_id: election_manager = ElectionManager() results = election_manager.retrieve_election(google_civic_election_id) if results['election_found']: election = results['election'] election_state = election.get_election_state() # Get a list of offices for this election so we can create drop downs try: contest_office_list = ContestOffice.objects.order_by('office_name') contest_office_list = contest_office_list.filter(google_civic_election_id=google_civic_election_id) except Exception as e: contest_office_list = [] # Get a list of measures for this election so we can create drop downs try: contest_measure_list = ContestMeasure.objects.order_by('measure_title') contest_measure_list = contest_measure_list.filter(google_civic_election_id=google_civic_election_id) except Exception as e: contest_measure_list = [] else: messages.add_message(request, messages.ERROR, 'In order to create a \'ballot_returned\' entry, ' 'a google_civic_election_id is required.') polling_location_found = False polling_location = PollingLocation() polling_location_manager = PollingLocationManager() if positive_value_exists(polling_location_id): results = polling_location_manager.retrieve_polling_location_by_id(polling_location_id) if results['polling_location_found']: polling_location = results['polling_location'] polling_location_found = True if not polling_location_found and positive_value_exists(polling_location_we_vote_id): results = polling_location_manager.retrieve_polling_location_by_id(0, polling_location_we_vote_id) if results['polling_location_found']: polling_location = results['polling_location'] polling_location_found = True polling_location_list = [] if not polling_location_found: results = polling_location_manager.retrieve_polling_locations_in_city_or_state( election_state, polling_location_city, polling_location_zip) if results['polling_location_list_found']: polling_location_list = results['polling_location_list'] messages_on_stage = get_messages(request) ballot_item_list = [] if ballot_returned_found: # Get a list of ballot_items stored at this location ballot_item_list_manager = BallotItemListManager() if positive_value_exists(ballot_returned.polling_location_we_vote_id): results = ballot_item_list_manager.retrieve_all_ballot_items_for_polling_location( ballot_returned.polling_location_we_vote_id, google_civic_election_id) if results['ballot_item_list_found']: ballot_item_list = results['ballot_item_list'] template_values = { 'messages_on_stage': messages_on_stage, 'ballot_returned': ballot_returned, 'ballot_returned_id': ballot_returned_id, 'election': election, 'measure_list': contest_measure_list, 'office_list': contest_office_list, 'polling_location_we_vote_id': polling_location_we_vote_id, 'polling_location_found': polling_location_found, 'polling_location': polling_location, 'polling_location_list': polling_location_list, 'polling_location_city': polling_location_city, 'polling_location_zip': polling_location_zip, 'ballot_item_list': ballot_item_list, 'google_civic_election_id': google_civic_election_id, } return render(request, 'ballot/ballot_item_list_edit.html', template_values)