- try:
- dossier = self.rh_dossiers \
- .filter(principal=True).order_by('date_debut')[0]
- except IndexError, Dossier.DoesNotExist:
- dossier = None
- return dossier
+
+ today = date.today()
+ if pour_annee:
+ year = today.year
+ year_start = date(year, 1, 1)
+ year_end = date(year, 12, 31)
+
+ try:
+ dossier = self.rh_dossiers.filter(
+ (Q(date_debut__lte=year_end, date_fin__isnull=True) |
+ Q(date_debut__isnull=True, date_fin__gte=year_start) |
+ Q(date_debut__lte=year_end, date_fin__gte=year_start) |
+ Q(date_debut__isnull=True, date_fin__isnull=True)) &
+ Q(principal=True)).order_by('date_debut')[0]
+ except IndexError, Dossier.DoesNotExist:
+ dossier = None
+ return dossier
+ else:
+ try:
+ dossier = self.rh_dossiers.filter(
+ (Q(date_debut__lte=today, date_fin__isnull=True) |
+ Q(date_debut__isnull=True, date_fin__gte=today) |
+ Q(date_debut__lte=today, date_fin__gte=today) |
+ Q(date_debut__isnull=True, date_fin__isnull=True)) &
+ Q(principal=True)).order_by('date_debut')[0]
+ except IndexError, Dossier.DoesNotExist:
+ dossier = None
+ return dossier
+