import auf.django.references.models as ref
from validators import validate_date_passee
from managers import PosteManager, DossierManager, DossierComparaisonManager, \
-PosteComparaisonManager, DeviseManager, ServiceManager, TypeRemunerationManager
+ PosteComparaisonManager, DeviseManager, ServiceManager, TypeRemunerationManager
+from change_list import RechercheTemporelle, KEY_STATUT, STATUT_ACTIF, \
+ STATUT_INACTIF, STATUT_FUTUR
# Gruick hack pour déterminer d'ou provient l'instanciation d'une classe pour l'héritage.
return reverse('rh_photo', kwargs={'id':self.id})
def dossiers_passes(self):
- today = date.today()
- dossiers_passes = self.dossiers.filter(date_fin__lt=today).order_by('-date_fin')
- for d in dossiers_passes:
- d.archive = True
- return dossiers_passes
+ params = {KEY_STATUT: STATUT_INACTIF, }
+ search = RechercheTemporelle(params, self.__class__)
+ search.purge_params(params)
+ return search.filter_temporel(self.rh_dossiers)
def dossiers_futurs(self):
- today = date.today()
- return self.dossiers.filter(date_debut__gt=today).order_by('-date_fin')
+ params = {KEY_STATUT: STATUT_FUTUR, }
+ search = RechercheTemporelle(params, self.__class__)
+ search.purge_params(params)
+ return search.filter_temporel(self.rh_dossiers)
def dossiers_encours(self):
- dossiers_p_f = self.dossiers_passes() | self.dossiers_futurs()
- ids_dossiers_p_f = [d.id for d in dossiers_p_f]
- dossiers_encours = self.dossiers.exclude(id__in=ids_dossiers_p_f).order_by('-date_fin')
-
- # TODO : supprimer ce code quand related_name fonctionnera ou d.remuneration_set
- for d in dossiers_encours:
- d.remunerations = Remuneration.objects.filter(dossier=d.id).order_by('-id')
- return dossiers_encours
+ params = {KEY_STATUT: STATUT_ACTIF, }
+ search = RechercheTemporelle(params, self.__class__)
+ search.purge_params(params)
+ return search.filter_temporel(self.rh_dossiers)
def postes_encours(self):
postes_encours = set()
help_text=u"Taper le nom de l'employé",
related_name='%(app_label)s_dossiers',
verbose_name=u"Employé")
+ principal = models.BooleanField(verbose_name=u"Principal?", default=True,
+ help_text=u"Ce Dossier est pour le principal Poste occupé par l'Employé")
class DossierPiece_(models.Model):
abstract = True
def get_annee_pour_taux_devise(self):
- return self.dossier.contrat_date_debut.year
+ return self.dossier.date_debut.year
class DossierComparaison(DossierComparaison_):