1702: Un administrateur ne devrait pas être en mesure de modifier la note d'un évaluateur
authorNilovna Bascunan-Vasquez <contact@nilovna.com>
Mon, 11 Jul 2011 18:34:02 +0000 (14:34 -0400)
committerNilovna Bascunan-Vasquez <contact@nilovna.com>
Mon, 11 Jul 2011 18:34:02 +0000 (14:34 -0400)
project/recrutement/admin.py
project/recrutement/forms.py
project/recrutement/models.py
project/recrutement/views.py

index af8a96a..149ba74 100644 (file)
@@ -407,6 +407,14 @@ class CandidatEvaluationAdmin(VersionAdmin):
     _offre_emploi.short_description = "Voir offre d'emploi"
     _offre_emploi.admin_order_field = 'offre_emploi'
     
+    def has_change_permission(self, request, obj=None):
+        """
+        Permettre la visualisation dans la changelist
+        mais interdire l'accès à modifier l'objet si l'évaluateur n'est pas
+        le request.user
+        """
+        return obj is None or request.user == obj.evaluateur.user
+
     def queryset(self, request):
         """
         Afficher uniquement les évaluations de l'évaluateur, sauf si 
index 162d2a2..454fa9c 100644 (file)
@@ -42,12 +42,11 @@ class EvaluateurForm(forms.Form):
         super(EvaluateurForm, self).__init__(*args, **kwargs)
 
     def save(self):
-        for d in self.candidats:
-            for e in self.cleaned_data.get('evaluateurs', []):                
+        for candidat in self.candidats:
+            for evaluateur in self.cleaned_data.get('evaluateurs', []):                
                 candidat_evaluation = recr.CandidatEvaluation()
-                candidat_evaluation.candidat = d
-                candidat_evaluation.evaluateur = e
-                import pdb;pdb.set_trace()
+                candidat_evaluation.candidat = candidat
+                candidat_evaluation.evaluateur = evaluateur
                 candidat_evaluation.save()
 
 ################################################################################
index a9eedde..5b1b36b 100755 (executable)
@@ -59,7 +59,7 @@ STATUT_OFFRE_EMPLOI_CHOICES = (
 class OffreEmploi(Metadata):
     #objects = OffreEmploiManager()
     est_affiche = models.BooleanField(default=False, 
-                                    verbose_name="Afficher l'offre d'emploi")
+                                    verbose_name="Affichage sur le site")
     statut = models.CharField(max_length=4, choices=STATUT_OFFRE_EMPLOI_CHOICES,
                                 default='NOUV')
     nom = models.CharField(max_length=255)
index 1898357..aced519 100755 (executable)
@@ -102,7 +102,6 @@ def affecter_evaluateurs_offre_emploi(request):
     offre_emploi_ids = request.GET.get('ids').split(',')
     offres_emploi = OffreEmploi.objects.filter(id__in=offre_emploi_ids)
     candidats = Candidat.objects.filter(offre_emploi__in=offres_emploi)
-    #import pdb;pdb.set_trace()
     if request.method == "POST":
         form = EvaluateurForm(request.POST, candidats=candidats)
         if form.is_valid():