+
+class MesCandidatEvaluationAdmin(CandidatEvaluationAdmin):
+
+ def has_change_permission(self, request, obj=None):
+ try:
+ Evaluateur.objects.get(user=request.user)
+ is_evaluateur = True
+ except:
+ is_evaluateur = False
+
+ if obj is None or is_evaluateur:
+ return True
+
+ try:
+ return request.user == obj.evaluateur.user
+ except:
+ return False
+
+ def queryset(self, request):
+ qs = self.model._default_manager.get_query_set().select_related('offre_emploi')
+ evaluateur = Evaluateur.objects.get(user=request.user)
+ candidats_evaluations = \
+ CandidatEvaluation.objects.filter(evaluateur=evaluateur,
+ candidat__statut__in=('REC', ))
+ candidats_evaluations_ids = [ce.id for ce in candidats_evaluations]
+ return qs.filter(id__in=candidats_evaluations_ids)
+
+