from mymontools.tools import build_q_for_fields_and_querydict from traps.models import Trap, CfgTrap ############################################################################## def build_q_for_trap_filter(params): fields = ( 'hostname', 'trapoid', 'category', 'severity', 'trapread', ) return build_q_for_fields_and_querydict(fields, params) def build_q_for_trap_exclude(params): fields = ( 'exclude_hostname', 'exclude_trapoid', 'exclude_category', 'exclude_severity', 'exclude_trapread', ) return build_q_for_fields_and_querydict(fields, params) def get_filtered_traps_for_querydict(params, sortorder='-id'): traps = Trap.objects.order_by(sortorder) return traps.filter( build_q_for_trap_filter(params) ).exclude( build_q_for_trap_exclude(params) ) ############################################################################## def build_q_for_cfgtrap_filter(params): fields = ( 'severity', 'category', ) return build_q_for_fields_and_querydict(fields, params) def build_q_for_cfgtrap_exclude(params): fields = ( 'exclude_severity', 'exclude_category', ) return build_q_for_fields_and_querydict(fields, params) def get_filtered_cfgtraps_for_querydict(params, sortorder='trapname'): cfgtraps = CfgTrap.objects.order_by(sortorder) return cfgtraps.filter( build_q_for_trap_filter(params) ).exclude( build_q_for_trap_exclude(params) )