tools.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. from mymontools.tools import build_q_for_fields_and_querydict
  2. from traps.models import Trap, CfgTrap
  3. ##############################################################################
  4. def build_q_for_trap_filter(params):
  5. fields = (
  6. 'hostname',
  7. 'trapoid',
  8. 'category',
  9. 'severity',
  10. 'trapread',
  11. )
  12. return build_q_for_fields_and_querydict(fields, params)
  13. def build_q_for_trap_exclude(params):
  14. fields = (
  15. 'exclude_hostname',
  16. 'exclude_trapoid',
  17. 'exclude_category',
  18. 'exclude_severity',
  19. 'exclude_trapread',
  20. )
  21. return build_q_for_fields_and_querydict(fields, params)
  22. def get_filtered_traps_for_querydict(params, sortorder='-id'):
  23. traps = Trap.objects.order_by(sortorder)
  24. return traps.filter( build_q_for_trap_filter(params) ).exclude( build_q_for_trap_exclude(params) )
  25. ##############################################################################
  26. def build_q_for_cfgtrap_filter(params):
  27. fields = (
  28. 'severity',
  29. 'category',
  30. )
  31. return build_q_for_fields_and_querydict(fields, params)
  32. def build_q_for_cfgtrap_exclude(params):
  33. fields = (
  34. 'exclude_severity',
  35. 'exclude_category',
  36. )
  37. return build_q_for_fields_and_querydict(fields, params)
  38. def get_filtered_cfgtraps_for_querydict(params, sortorder='trapname'):
  39. cfgtraps = CfgTrap.objects.order_by(sortorder)
  40. return cfgtraps.filter( build_q_for_trap_filter(params) ).exclude( build_q_for_trap_exclude(params) )