import textwrap
from auf.django.emploi.models import OffreEmploi, Candidat, CandidatPiece
--from auf.django.references.models import Region, Bureau
++from auf.django.references.models import Region, Bureau, Implantation
from django.conf import settings
from django.contrib import admin
from django.core.urlresolvers import reverse
from django.db.models import Avg
+from django.shortcuts import render_to_response
+from django.template import RequestContext
+
++from auf.django.export.admin import ExportAdmin
+from auf.django.emploi.models import STATUT_CHOICES
from django.forms.models import BaseInlineFormSet
from django.http import HttpResponseRedirect
from django.shortcuts import redirect
from reversion.admin import VersionAdmin
- from auf.django.emploi.models import OffreEmploi, Candidat, CandidatPiece
- from auf.django.references.models import Region, Bureau, Implantation
- from auf.django.export.admin import ExportAdmin
+ from project import groups
+
- from project.groups import get_employe_from_user as get_emp
from project.rh import models as rh
from project.recrutement.forms import OffreEmploiForm
- from project.recrutement.groups import \
- grp_drh, grp_drh2, \
- grp_directeurs_bureau, \
- grp_administrateurs, \
- grp_correspondants_rh, \
- grp_haute_direction
from project.recrutement.models import \
Evaluateur, CandidatEvaluation, \
ProxyOffreEmploi, ProxyCandidat, MesCandidatEvaluation, \
### Formulaire
def get_form(self, request, obj=None, **kwargs):
- form = super(OffreEmploiAdmin, self).get_form(request, obj, **kwargs)
+ form = super(OffreEmploiAdminMixin, self).get_form(request, obj, **kwargs)
- employe = get_emp(request.user)
- user_groupes = request.user.groups.all()
+ employe = groups.get_employe_from_user(request.user)
+ user_groupes = [g.name for g in request.user.groups.all()]
# Region
if 'region' in form.declared_fields:
return True
return False
+ def formfield_for_foreignkey(self, db_field, request, **kwargs):
+ if db_field.name == 'lieu_affectation':
- employe = get_emp(request.user)
++ employe = groups.get_employe_from_user(request.user)
+ kwargs["queryset"] = Implantation.objects.filter(region=employe.implantation.region)
+ return db_field.formfield(**kwargs)
+ return super(OffreEmploiAdminMixin, self).formfield_for_foreignkey(db_field, request, **kwargs)
+
class OffreEmploiAdmin(VersionAdmin, OffreEmploiAdminMixin):
pass
return True
return False
+ def formfield_for_foreignkey(self, db_field, request, **kwargs):
+ if db_field.name == 'offre_emploi':
- employe = get_emp(request.user)
++ employe = groups.get_employe_from_user(request.user)
+ kwargs["queryset"] = OffreEmploi.objects.filter(region=employe.implantation.region)
+ return db_field.formfield(**kwargs)
+ return super(CandidatAdminMixin, self).formfield_for_foreignkey(db_field, request, **kwargs)
+
def get_changelist(self, request, **kwargs):
return OrderedChangeList
qs = self.model._default_manager.get_query_set() \
.select_related('offre_emploi')
user_groupes = request.user.groups.all()
+ user_groupes = [g.name for g in request.user.groups.all()]
- if grp_drh in user_groupes or \
- grp_drh2 in user_groupes or \
- grp_correspondants_rh in user_groupes or \
- grp_directeurs_bureau in user_groupes or \
- grp_administrateurs in user_groupes or \
- grp_haute_direction in user_groupes:
+ if request.user.is_superuser or \
+ groups.CORRESPONDANT_RH in user_groupes or \
+ groups.DRH_NIVEAU_1 in user_groupes or \
+ groups.DRH_NIVEAU_2 in user_groupes or \
+ groups.DIRECTEUR_DE_BUREAU in user_groupes or \
+ groups.ADMINISTRATEURS in user_groupes or \
+ groups.HAUTE_DIRECTION in user_groupes:
- return qs
+ return qs.filter(candidat__statut__in=('REC', 'SEL'))
evaluateur = Evaluateur.objects.get(user=request.user)
candidats_evaluations = \