date_debut = None
date_fin = None
for k, v in self.params.items():
- if k.startswith('date_debut'):
+ if 'date_debut' in k:
+ prefix_debut = "".join(k.split('date_debut')[0:-1]) + 'date_debut'
date_debut = v
del self.params[k]
- elif k.startswith('date_fin'):
+ elif 'date_fin' in k:
+ prefix_fin = "".join(k.split('date_fin')[0:-1]) + 'date_fin'
date_fin = v
del self.params[k]
-
qs = super(ChangeList, self).get_query_set()
if date_fin is None and date_debut is not None:
date_fin = date_debut
+ prefix_fin = prefix_debut.replace('debut', 'fin')
if date_debut is None and date_fin is not None:
date_debut = date_fin
+ prefix_debut = prefix_fin.replace('fin', 'debut')
if date_debut is not None and date_fin is not None:
- q_left = (Q(date_debut__isnull=True) | Q(date_debut__lte=date_debut)) & (Q(date_fin__gte=date_debut) & Q(date_fin__lte=date_fin))
- q_right = (Q(date_fin__isnull=True) | Q(date_fin__gte=date_fin)) & (Q(date_debut__gte=date_debut) & Q(date_debut__lte=date_fin))
- q_both = Q(date_fin__isnull=True) | Q(date_fin__lte=date_fin) & (Q(date_debut__isnull=True) | Q(date_debut__gte=date_debut))
+ 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}))
qs = qs.filter(q_left | q_right | q_both)
self.params = old
ordering = ('nom', )
form = EmployeAdminForm
list_display = ('_apercu', '_nom', '_dossiers', 'date_modification', 'user_modification', )
- list_filter = ('rh_dossiers__poste__implantation__region', 'rh_dossiers__poste__implantation', 'nb_postes', )
+ list_filter = ('rh_dossiers__poste__implantation__region', 'rh_dossiers__poste__implantation', 'nb_postes', 'rh_dossiers__date_debut', 'rh_dossiers__date_fin')
inlines = (AyantDroitInline,
DossierROInline,
EmployePieceInline,
}),
)
+ def get_changelist(self, request, **kwargs):
+ return ChangeList
+
+
def _apercu(self, obj):
return u"""<a title="Aperçu de l'employé" onclick="return showAddAnotherPopup(this);" href='%s'><img src="%simg/loupe.png" /></a>""" % \
(reverse('employe_apercu', args=(obj.id,)), settings.STATIC_URL)
PosteComparaisonInline,
PosteCommentaireInline, )
+
+ def get_changelist(self, request, **kwargs):
+ return ChangeList
+
+
def lookup_allowed(self, key, value):
if key in (
'date_debut__gte',