def retrieve_voter_guides_to_follow_generic(voter_id, search_string, maximum_number_to_retrieve=0, sort_by='', sort_order=''): """ Separate from an election or a ballot item, return a list of voter_guides the voter has not already followed :param voter_id: :param search_string: :param maximum_number_to_retrieve: :param sort_by: :param sort_order: :return: """ voter_guide_list_found = False # Start with orgs followed and ignored by this voter follow_organization_list_manager = FollowOrganizationList() organizations_followed_by_voter = \ follow_organization_list_manager.retrieve_follow_organization_by_voter_id_simple_id_array(voter_id) organizations_ignored_by_voter = \ follow_organization_list_manager.retrieve_ignore_organization_by_voter_id_simple_id_array(voter_id) # This is a list of orgs that the voter is already following or ignoring organization_we_vote_ids_followed_or_ignored_by_voter = list( chain(organizations_followed_by_voter, organizations_ignored_by_voter)) voter_guide_list_manager = VoterGuideList() # First, retrieve the voter_guides stored by org and google_civic_election_id voter_guide_results = voter_guide_list_manager.retrieve_voter_guides_to_follow_generic( organization_we_vote_ids_followed_or_ignored_by_voter, search_string, maximum_number_to_retrieve, sort_by, sort_order) if voter_guide_results['voter_guide_list_found']: voter_guide_list = voter_guide_results['voter_guide_list'] else: voter_guide_list = [] status = 'SUCCESSFUL_RETRIEVE_OF_VOTER_GUIDES_GENERIC' success = True if len(voter_guide_list): voter_guide_list_found = True results = { 'success': success, 'status': status, 'voter_guide_list_found': voter_guide_list_found, 'voter_guide_list': voter_guide_list, } return results
def retrieve_voter_guides_to_follow_generic(voter_id, search_string, maximum_number_to_retrieve=0, sort_by='', sort_order=''): """ Separate from an election or a ballot item, return a list of voter_guides the voter has not already followed :param voter_id: :param search_string: :param maximum_number_to_retrieve: :param sort_by: :param sort_order: :return: """ voter_guide_list_found = False # Start with orgs followed and ignored by this voter follow_organization_list_manager = FollowOrganizationList() organizations_followed_by_voter = \ follow_organization_list_manager.retrieve_follow_organization_by_voter_id_simple_id_array(voter_id) organizations_ignored_by_voter = \ follow_organization_list_manager.retrieve_ignore_organization_by_voter_id_simple_id_array(voter_id) # This is a list of orgs that the voter is already following or ignoring organization_we_vote_ids_followed_or_ignored_by_voter = list(chain(organizations_followed_by_voter, organizations_ignored_by_voter)) voter_guide_list_manager = VoterGuideList() # First, retrieve the voter_guides stored by org and google_civic_election_id voter_guide_results = voter_guide_list_manager.retrieve_voter_guides_to_follow_generic( organization_we_vote_ids_followed_or_ignored_by_voter, search_string, maximum_number_to_retrieve, sort_by, sort_order) if voter_guide_results['voter_guide_list_found']: voter_guide_list = voter_guide_results['voter_guide_list'] else: voter_guide_list = [] status = 'SUCCESSFUL_RETRIEVE_OF_VOTER_GUIDES_GENERIC' success = True if len(voter_guide_list): voter_guide_list_found = True results = { 'success': success, 'status': status, 'voter_guide_list_found': voter_guide_list_found, 'voter_guide_list': voter_guide_list, } return results