tools.py 781 B

123456789101112131415161718192021222324252627282930313233343536
  1. from mymontools.tools import build_q_for_fields_and_querydict
  2. from .models import State, CfgState
  3. ##############################################################################
  4. def build_q_for_state_filter(params):
  5. fields = (
  6. 'hostname',
  7. 'state',
  8. 'sub',
  9. 'start_time',
  10. 'stop_time',
  11. 'read',
  12. )
  13. return build_q_for_fields_and_querydict(fields, params)
  14. def build_q_for_state_exclude(params):
  15. fields = (
  16. 'exclude_state',
  17. 'exclude_sub',
  18. 'exclude_start_time',
  19. 'exclude_stop_time',
  20. )
  21. return build_q_for_fields_and_querydict(fields, params)
  22. def get_filtered_states_for_querydict(params, sortorder='-id'):
  23. states = State.objects.order_by(sortorder)
  24. return states.filter( build_q_for_state_filter(params) ).exclude( build_q_for_state_exclude(params) )