del self.params[k]
qs = super(ChangeList, self).get_query_set()
+ # hack pour spécifier un range
if date_fin is None and date_debut is not None:
- date_fin = date_debut
+ date_fin = '2020-01-01'
prefix_fin = prefix_debut.replace('debut', 'fin')
if date_debut is None and date_fin is not None:
- date_debut = date_fin
+ date_debut = '1000-01-01'
prefix_debut = prefix_fin.replace('fin', 'debut')
if date_debut is not None and date_fin is not None:
q_left = (Q(**{'%s__isnull' % prefix_debut : True}) | Q(**{'%s__lte' % prefix_debut : date_debut})) & (Q(**{'%s__gte' % prefix_fin : date_debut}) & Q(**{'%s__lte' % prefix_fin : date_fin}))
q_right = (Q(**{'%s__isnull' % prefix_fin : True}) | Q(**{'%s__gte' % prefix_fin : date_fin})) & (Q(**{'%s__gte' % prefix_debut : date_debut}) & Q(**{'%s__lte' % prefix_debut : date_fin}))
- q_both = Q(**{'%s__isnull' % prefix_fin : True}) | Q(**{'%s__lte' % prefix_fin : date_fin}) & (Q(**{'%s__isnull' % prefix_debut : True}) | Q(**{'%s__gte' % prefix_debut : date_debut}))
+ q_no_date = Q(**{'%s__isnull' % prefix_fin : True}) & Q(**{'%s__isnull' % prefix_debut : True})
q_non_supprime = Q(**{'%s__exact' % prefix_debut.replace('date_debut', 'supprime') : False})
- q = (q_left | q_right | q_both) & q_non_supprime
+ q = (q_left | q_right | q_no_date) & q_non_supprime
qs = qs.filter(q).distinct()
self.params = old
'type_poste__id__exact',
'type_poste__famille_emploi__id__exact',
'service__id__exact',
+ 'service__isnull',
'vacant__exact',
):
return True