q = search.get_q_temporel(self.rh_dossiers)
return self.rh_dossiers.filter(q)
- def dossier_principal(self, year=None):
+ def dossier_principal_pour_annee(self):
+ return self.dossier_principal(pour_annee=True)
+
+ def dossier_principal(self, pour_annee=False):
"""
Retourne le dossier principal (ou le plus ancien si il y en a
plusieurs)
+
+ Si pour_annee == True, retourne le ou les dossiers principaux
+ pour l'annee en cours, sinon, le ou les dossiers principaux
+ pour la journee en cours.
+
+ TODO: (Refactoring possible): Utiliser meme logique dans
+ dae/templatetags/dae.py
"""
- if not year:
- year = date.today().year
- year_start = date(year, 1, 1)
- year_end = date(year, 12, 31)
+
+ 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=None) |
- Q(date_debut=None, date_fin__gte=year_start) |
- Q(date_debut=None, date_fin__gte=year_start) |
- Q(date_debut__lte=year_end, date_fin__gte=year_start) |
- Q(date_debut=None, date_fin=None)) &
- Q(principal=True)).order_by('date_debut')[0]
- except IndexError, Dossier.DoesNotExist:
- dossier = None
- return dossier
+ 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
+
def postes_encours(self):
postes_encours = set()