def _employe_choices(obj, request):
# TRAITEMENT NORMAL
employe = groups.get_employe_from_user(request.user)
- # SERVICE
- if groups.is_user_dans_services_centraux(request.user):
- q_dae_region_service = Q(poste__implantation=employe.implantation)
- q_rh_region_service = Q(poste__implantation=employe.implantation)
- # REGION
- else:
- q_dae_region_service = Q(
- poste__implantation__region=employe.implantation.region
+ q_dae_region_service = Q(
+ poste__implantation__zone_administrative=(
+ employe.implantation.zone_administrative
)
- q_rh_region_service = Q(
- poste__implantation__region=employe.implantation.region
+ )
+ q_rh_region_service = Q(
+ poste__implantation__zone_administrative=(
+ employe.implantation.zone_administrative
)
+ )
# TRAITEMENT DRH
user_groupes = [g.name for g in request.user.groups.all()]
- if groups.DRH_NIVEAU_1 in user_groupes:
+ if groups.DRH_NIVEAU_1 in user_groupes or \
+ groups.DRH_NIVEAU_2 in user_groupes:
q_dae_region_service = Q()
q_rh_region_service = Q()
return self.get_query_set().actifs(*args, **kwargs)
+class ContratQuerySet(ActifsQuerySet):
+ pass
+
+class ContratManager(models.Manager):
+
+ def get_query_set(self):
+ return ContratQuerySet(self.model)\
+ .select_related('dossier', 'dossier__poste')
+
+
class PosteComparaisonManager(SecurityManager):
use_for_related_fields = True
- prefixe_implantation = "implantation__region"
+ prefixe_implantation = "implantation__zone_administrative"
class DossierComparaisonManager(SecurityManager):
'taux_change': 'rh_tauxchange.taux'
}
)
+
+ if len(remun_actives) != len(remuns):
+ raise rh.RemunIntegrityException("Toutes les remunerations ne disposent pas d'un "
+ "taux de change pour l'année %d" % annee)
+
- if region:
- remuns = remuns.filter(dossier__poste__implantation__region=region)
+ if zone_administrative:
+ remuns = remuns.filter(dossier__poste__implantation__zone_administrative=zone_administrative)
if implantation:
remuns = remuns.filter(dossier__poste__implantation=implantation)
remuns_par_dossier = defaultdict(list)