tools.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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. 'trapname',
  9. 'category',
  10. 'severity',
  11. 'trapread',
  12. )
  13. return build_q_for_fields_and_querydict(fields, params)
  14. def build_q_for_trap_exclude(params):
  15. fields = (
  16. 'exclude_hostname',
  17. 'exclude_trapoid',
  18. 'exclude_trapname',
  19. 'exclude_category',
  20. 'exclude_severity',
  21. 'exclude_trapread',
  22. )
  23. return build_q_for_fields_and_querydict(fields, params)
  24. def get_filtered_traps_for_querydict(params, sortorder='-id'):
  25. traps = Trap.objects.order_by(sortorder)
  26. return traps.filter( build_q_for_trap_filter(params) ).exclude( build_q_for_trap_exclude(params) )
  27. ##############################################################################
  28. def build_q_for_cfgtrap_filter(params):
  29. fields = (
  30. 'severity',
  31. 'category',
  32. )
  33. return build_q_for_fields_and_querydict(fields, params)
  34. def build_q_for_cfgtrap_exclude(params):
  35. fields = (
  36. 'exclude_severity',
  37. 'exclude_category',
  38. )
  39. return build_q_for_fields_and_querydict(fields, params)
  40. def get_filtered_cfgtraps_for_querydict(params, sortorder='trapname'):
  41. cfgtraps = CfgTrap.objects.order_by(sortorder)
  42. return cfgtraps.filter( build_q_for_cfgtrap_filter(params) ).exclude( build_q_for_cfgtrap_exclude(params) )