import datetime
from datetime import date
+from auf.django.metadata.managers import NoDeleteManager, NoDeleteQuerySet
from django.db import models
from django.db.models import Q
-from auf.django.metadata.managers import NoDeleteManager, NoDeleteQuerySet
-
from project.groups import get_employe_from_user
-from project.groups import grp_administrateurs, \
- grp_directeurs_bureau, \
- grp_drh, \
- grp_drh2, \
- grp_accior, \
- grp_abf, \
- grp_haute_direction, \
- grp_service_utilisateurs, \
- grp_correspondants_rh
+from project.groups import \
+ grp_drh, grp_drh2, grp_accior, grp_abf, grp_haute_direction, \
+ grp_service_utilisateurs
class SecurityManager(models.Manager):
def ma_region_ou_service(self, user):
"""
Filtrage des postes en fonction du user connecté (region / service)
- On s'intéresse aussi au groupe auquel appartient le user car certains groupes
- peuvent tout voir.
+ On s'intéresse aussi au groupe auquel appartient le user car
+ certains groupes peuvent tout voir.
"""
employe = get_employe_from_user(user)
# TRAITEMENT NORMAL
############################################
# REGION
- q = Q(**{ self.prefixe_implantation : employe.implantation.region })
+ q = Q(**{self.prefixe_implantation: employe.implantation.region})
# SERVICE
- if self.prefixe_service and grp_service_utilisateurs in user.groups.all():
- q = q | Q(**{ self.prefixe_service : employe.service})
+ if self.prefixe_service \
+ and grp_service_utilisateurs in user.groups.all():
+ q = q | Q(**{self.prefixe_service: employe.service})
liste = self.get_query_set().filter(q)
return liste
-class PosteManager(SecurityManager, NoDeleteManager):
+class PosteManager(SecurityManager):
"""
Chargement de tous les objets FK existants sur chaque QuerySet.
"""
prefixe_implantation = "implantation__region"
def actifs(self):
- q_actif = Q(date_fin__gt=datetime.datetime.now()) | Q(date_fin__isnull=True)
- return super(PosteManager, self).get_query_set().filter(q_actif)
+ return super(PosteManager, self).get_query_set().filter(
+ Q(date_fin__gt=datetime.datetime.now()) |
+ Q(date_fin__isnull=True)
+ )
def ma_region_ou_service(self, user):
return super(PosteManager, self).ma_region_ou_service(user)
.select_related(*fkeys).all()
-class DossierManager(SecurityManager, NoDeleteManager):
+class DossierManager(SecurityManager):
prefixe_service = "poste__service"
prefixe_implantation = "poste__implantation__region"
class EmployeQuerySet(NoDeleteQuerySet):
+
def actifs(self, date_min=None, date_max=None, annee=None):
qs = self
if annee:
date_min = date_max = date.today()
if date_min:
qs = qs.filter(
- Q(rh_dossiers__date_fin__gte=date_min) | Q(rh_dossiers__date_fin=None)
+ Q(rh_dossiers__date_fin__gte=date_min) |
+ Q(rh_dossiers__date_fin=None)
)
if date_max:
qs = qs.filter(
- Q(rh_dossiers__date_debut__lte=date_max) | Q(rh_dossiers__date_debut=None)
+ Q(rh_dossiers__date_debut__lte=date_max) |
+ Q(rh_dossiers__date_debut=None)
)
return qs.distinct()
+
class EmployeManager(NoDeleteManager):
def get_query_set(self):
return EmployeQuerySet(self.model) \
def actifs(self, *args, **kwargs):
return self.get_query_set().actifs(*args, **kwargs)
+
class PosteComparaisonManager(SecurityManager):
use_for_related_fields = True
prefixe_implantation = "implantation__region"
prefixe_implantation = "implantation__region"
-class DeviseManager(NoDeleteManager):
- pass
-
-class ServiceManager(NoDeleteManager):
- pass
-
-class TypeRemunerationManager(NoDeleteManager):
+class TypeRemunerationManager(models.Manager):
pass