from django.contrib import admin
from django.shortcuts import get_object_or_404
from django.core.files.storage import default_storage
+from django.forms.models import BaseInlineFormSet
from reversion.admin import VersionAdmin
from datamaster_modeles.models import Employe, Implantation, Region
-from django.forms.models import BaseInlineFormSet
from project.rh import models as rh
from recrutement.models import *
-from recrutement.workflow import grp_administrateurs_recrutement,\
- grp_evaluateurs_recrutement, grp_drh_recrutement
+from recrutement.workflow import grp_evaluateurs_recrutement, \
+ grp_drh_recrutement, grp_directeurs_bureau_recrutement, \
+ grp_administrateurs_recrutement
from recrutement.forms import *
+from project.lib import get_employe_from_user as get_emp
+
class ProxyEvaluateur(Evaluateur.offres_emploi.through):
"""
Ce proxy sert uniquement dans l'admin à disposer d'un libellé
_candidatsList.allow_tags = True
_candidatsList.short_description = "Afficher la liste des candidats"
+ def get_form(self, request, obj=None, **kwargs):
+ form = super(OffreEmploiAdmin, self).get_form(request, obj, **kwargs)
+ employe = get_emp(request.user)
+ import pdb;pdb.set_trace()
+ user_groupes = request.user.groups.all()
+ if not grp_drh_recrutement in user_groupes and \
+ not request.user.is_superuser:
+ if form.declared_fields.has_key('region'):
+ region_field = form.declared_fields['region']
+ else:
+ region_field = form.base_fields['region']
+ import pdb;pdb.set_trace()
+ user = request.user
+ region_ids = [g.id for g in user.regions.all()]
+ region_field.queryset = Region.objects.filter(id__in=region_ids)
+ return form
+
def queryset(self, request):
qs = self.model._default_manager.get_query_set()
# Si user est superuser afficher toutes les offres d'emploi
user_groupes = request.user.groups.all()
if not grp_drh_recrutement in user_groupes and \
+ not grp_directeurs_bureau_recrutement in user_groupes and \
+ not grp_administrateurs_recrutement in user_groupes and \
not request.user.is_superuser:
"""
Si le user n'est ni un évaluateur ni un administrateur régional,
try:
user = Evaluateur.objects.get(user=request.user)
except Evaluateur.DoesNotExist:
- return qs.none()
- elif grp_administrateurs_recrutement in user_groupes:
- try:
- user = AdministrateurRegional.objects.get(user=request.user)
- except AdministrateurRegional.DoesNotExist:
- return qs.none()
+ return qs.none()
else:
return qs.none()
- if type(user) is AdministrateurRegional:
- region_ids = [g.id for g in user.regions.all()]
- return qs.select_related('offre_emploi').\
- filter(region__in=region_ids)
if type(user) is Evaluateur:
candidats = [g for g in user.candidats.all()]
offre_emploi_ids = [c.offre_emploi.id for c in candidats]
return qs.none()
return qs.select_related('offre_emploi')
+ def has_add_permission(self, request):
+ user_groupes = request.user.groups.all()
+ if grp_drh_recrutement in user_groupes or \
+ grp_directeurs_bureau_recrutement in user_groupes or \
+ grp_administrateurs_recrutement in user_groupes or \
+ request.user.is_superuser:
+ return True
+ return False
+
def has_change_permission(self, request, obj=None):
user_groupes = request.user.groups.all()
if grp_drh_recrutement in user_groupes or \
+ grp_directeurs_bureau_recrutement in user_groupes or \
grp_administrateurs_recrutement in user_groupes or \
request.user.is_superuser:
return True
obj)
user_groupes = request.user.groups.all()
if grp_drh_recrutement in user_groupes or \
+ grp_directeurs_bureau_recrutement in user_groupes or \
+ grp_administrateurs_recrutement in user_groupes or \
request.user.is_superuser:
return HttpResponseRedirect(reverse\
('admin:recrutement_offreemploi_changelist'))
user_groupes = request.user.groups.all()
if grp_evaluateurs_recrutement in user_groupes or \
grp_drh_recrutement in user_groupes or \
+ grp_directeurs_bureau_recrutement in user_groupes or \
+ grp_administrateurs_recrutement in user_groupes or \
request.user.is_superuser:
return True
return False
calculer_moyenne.allow_tags = True
calculer_moyenne.short_description = "Moyenne des notes"
- def add_delete_permission(self, request, obj=None) :
+ def has_add_permission(self, request):
user_groupes = request.user.groups.all()
if grp_drh_recrutement in user_groupes or \
+ grp_directeurs_bureau_recrutement in user_groupes or \
grp_administrateurs_recrutement in user_groupes or \
request.user.is_superuser:
return True
- return False
-
- def has_add_permission(self, request):
- return self.add_delete_permission(request, request)
+ return False
def has_delete_permission(self, request, obj=None):
- return self.add_delete_permission(request, request)
+ user_groupes = request.user.groups.all()
+ if grp_drh_recrutement in user_groupes or \
+ grp_directeurs_bureau_recrutement in user_groupes or \
+ grp_administrateurs_recrutement in user_groupes or \
+ request.user.is_superuser:
+ return True
+ return False
def has_change_permission(self, request, obj=None):
user_groupes = request.user.groups.all()
if grp_drh_recrutement in user_groupes or \
+ grp_directeurs_bureau_recrutement in user_groupes or \
grp_administrateurs_recrutement in user_groupes or \
request.user.is_superuser:
return True
# Si user est superuser afficher tous les candidats
user_groupes = request.user.groups.all()
if not grp_drh_recrutement in user_groupes and \
+ not grp_directeurs_bureau_recrutement in user_groupes and \
+ not grp_administrateurs_recrutement in user_groupes and \
not request.user.is_superuser:
# Si le user n'est ni un évaluateur ni un administrateur régional,
# retourner none
user = Evaluateur.objects.get(user=request.user)
except Evaluateur.DoesNotExist:
return qs.none()
- """
- elif grp_administrateurs_recrutement in user_groupes:
- try:
- user = AdministrateurRegional.objects.get(user=obj.user)
- except AdministrateurRegional.DoesNotExist:
- return qs.none()
- """
else:
return qs.none()
ids = [c.id for c in user.candidats.all()]
response = super(ProxyCandidatAdmin, self).response_change(request, obj)
user_groupes = request.user.groups.all()
if grp_drh_recrutement in user_groupes or \
+ grp_directeurs_bureau_recrutement in user_groupes or \
+ grp_administrateurs_recrutement in user_groupes or \
request.user.is_superuser:
return HttpResponseRedirect(reverse\
('admin:recrutement_candidat_changelist'))
def has_change_permission(self, request, obj=None):
user_groupes = request.user.groups.all()
if grp_drh_recrutement in user_groupes or \
- grp_administrateurs_recrutement in user_groupes or \
grp_evaluateurs_recrutement in user_groupes or \
+ grp_directeurs_bureau_recrutement in user_groupes or \
+ grp_administrateurs_recrutement in user_groupes or \
request.user.is_superuser:
return True
return False
un lien pour Évaluer le candidat.
Sinon afficher la note.
"""
- #evaluateur = obj.evaluateur
- #candidat = obj.candidat
- #candidat_evaluation = CandidatEvaluation.objects.get(candidat=candidat, evaluateur=evaluateur)
- #import pdb;pdb.set_trace()
if obj.note is None:
return "<a href='%s'>Candidat non évalué</a>" % \
(reverse('admin:recrutement_candidatevaluation_change',
"""
qs = self.model._default_manager.get_query_set()
user_groupes = request.user.groups.all()
- if grp_drh_recrutement in user_groupes or \
+ if grp_drh_recrutement in user_groupes or \
+ grp_directeurs_bureau_recrutement in user_groupes or \
+ grp_administrateurs_recrutement in user_groupes or \
request.user.is_superuser:
return qs.select_related('offre_emploi')
def api_candidat_add(self, offre_id):
vars = dict()
offre = emploi.OffreEmploi.objects.get(id=offre_id)
+
if self.request.method == "POST":
try:
candidat = emploi.Candidat()
candidat.pays = ref.Pays.objects.get(id=self.request.POST['pays'])
candidat.save()
+ for i in range(0, int(self.request.POST['candidat_piece-TOTAL_FORMS'])-1):
+ if self.request.POST['candidat_piece-' + str(i) + '-nom'] is not None:
+ piece = emploi.CandidatPiece()
+ piece.candidat = candidat
+ import pdb;pdb.set_trace()
+ piece.nom = self.request.POST['candidat_piece-' + str(i) + '-nom']
+ import pdb;pdb.set_trace()
+ piece.path = self.request.META['QUERY_STRING']
+ import pdb;pdb.set_trace()
+ piece.save()
+
evaluateurs = candidat.offre_emploi.evaluateurs.all()
for evaluateur in evaluateurs:
candidat_evaluation = CandidatEvaluation()
courriel_template = CourrielTemplate.objects.get(id=1)
send_templated_email(candidat, courriel_template)
except:
- return api_return(STATUS_OK)
+ return api_return(STATUS_OK, simplejson.dumps(
+ {'candidat_id': candidat.id}), json=True)
except:
return api_return(STATUS_ERROR)
- return api_return(STATUS_OK)
+ return api_return(STATUS_OK, simplejson.dumps(
+ {'candidat_id': candidat.id}), json=True)
return api_return(STATUS_ERROR_BADMETHOD)
"duree_affectation": "%s" % offre.duree_affectation,
"renumeration": "%s" % offre.renumeration,
"debut_affectation": "%s" % offre.debut_affectation,
- "lieu_affectation": "%s" % offre.lieu_affectation.id} ),
+ "lieu_affectation": "%s" % offre.lieu_affectation.id}),
json=True)
return api_return(STATUS_OK)