1697: Statut pour une offre d'emploi (ergonomie) et est_affiché
authorNilovna Bascunan-Vasquez <contact@nilovna.com>
Fri, 8 Jul 2011 21:07:08 +0000 (17:07 -0400)
committerNilovna Bascunan-Vasquez <contact@nilovna.com>
Fri, 8 Jul 2011 21:07:08 +0000 (17:07 -0400)
project/recrutement/admin.py
project/recrutement/models.py
project/recrutement/views.py

index cf46711..af8a96a 100644 (file)
@@ -14,8 +14,9 @@ from recrutement.workflow import grp_administrateurs_recrutement,\
 
 class OffreEmploiAdmin(VersionAdmin):
     date_hierarchy = 'date_creation'
-    list_display = ('nom', 'resume', 'date_limite', 'region', '_candidatsList')
-
+    list_display = ('nom', 'resume', 'date_limite', 'statut', 'est_affiche', 
+                    'region', '_candidatsList')
+    list_filter = ('statut', 'est_affiche', )
     actions = ['affecter_evaluateurs_offre_emploi', ]
     # Affecter un évaluateurs à des offres d'emploi
     def affecter_evaluateurs_offre_emploi(modeladmin, obj, candidats):   
index 5c8829f..a9eedde 100755 (executable)
@@ -48,8 +48,20 @@ class ProxyPoste(Poste):
     def __unicode__(self):
         return '%s [%s]' % (self.nom, self.id)
 
+STATUT_OFFRE_EMPLOI_CHOICES = (
+    ('NOUV', 'Nouveau'),
+    ('AFFI', 'Offre d\'emploi en affichage'),
+    ('EVAL', 'En évaluation des candidatures'),
+    ('ENTR', 'En entrevue'),
+    ('TERM', 'Terminé'),
+)
+
 class OffreEmploi(Metadata):
     #objects = OffreEmploiManager()
+    est_affiche = models.BooleanField(default=False, 
+                                    verbose_name="Afficher l'offre d'emploi")
+    statut = models.CharField(max_length=4, choices=STATUT_OFFRE_EMPLOI_CHOICES,
+                                default='NOUV')
     nom = models.CharField(max_length=255)
     resume = models.TextField(verbose_name="Résumé")
     description = tinymce_models.HTMLField()
index 5a65b5d..1898357 100755 (executable)
@@ -16,12 +16,6 @@ def index(request):
     return render_to_response('recrutement/index.html', {}, 
                                 RequestContext(request))
 
-def afficher_candidat(request):
-    candidat = get_object_or_404(Candidat, id=request.GET.get('id'))
-    var = {'candidat': candidat,}
-    return render_to_response("recrutement/afficher_candidat.html", var,
-                                RequestContext(request))
-
 def affecter_evaluateurs_candidats(request):
     candidat_ids = request.GET.get('ids').split(',')
     candidats = Candidat.objects.filter(id__in=candidat_ids)
@@ -104,5 +98,21 @@ def postuler_appel_offre(request):
     return render_to_response('recrutement/postuler_appel_offre.html', vars, 
             RequestContext(request))
 
-def assigner_evaluateurs(request):
-    pass
+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():
+            form.save()
+            messages.add_message(request, messages.SUCCESS, 
+                            "Les évaluateurs ont été affectés aux candidats.")
+            return redirect("admin:recrutement_offreemploi_changelist")
+    else:
+        form = EvaluateurForm(candidats=candidats)
+
+    c = {'form' : form}   
+    return render_to_response("recrutement/affecter_evaluateurs.html", 
+            Context(c), context_instance = RequestContext(request))