from mymontools.tools import build_q_for_fields_and_querydict from .models import State, CfgState ############################################################################## def build_q_for_state_filter(params): fields = ( 'hostname', 'state', 'sub', 'start_time', 'stop_time', 'read', ) return build_q_for_fields_and_querydict(fields, params) def build_q_for_state_exclude(params): fields = ( 'exclude_state', 'exclude_sub', 'exclude_start_time', 'exclude_stop_time', ) return build_q_for_fields_and_querydict(fields, params) def get_filtered_states_for_querydict(params, sortorder='-id'): states = State.objects.order_by(sortorder) return states.filter( build_q_for_state_filter(params) ).exclude( build_q_for_state_exclude(params) )