1593: Ajouter les pièces jointes pour la postulation.
[auf_rh_dae.git] / project / recrutement / views.py
index b5919be..7e69b0f 100755 (executable)
@@ -1,8 +1,78 @@
 # -*- encoding: utf-8 -*-
 from django.shortcuts import redirect, render_to_response, get_object_or_404
+from django.http import HttpResponse
+from django.contrib import messages
+from django.template import Context, RequestContext
+from django.shortcuts import render_to_response, redirect
 from django.template import RequestContext
 
+from forms import *
+from models import *
 from project.recrutement import models as recr
 
 def index(request):
-    return render_to_response('recrutement/index.html', {}, RequestContext(request))
+    return render_to_response('recrutement/index.html', {}, 
+                                RequestContext(request))
+
+def evaluer_candidat(request):
+    candidat = get_object_or_404(Candidat, id__in=request.GET.get('id'))
+
+    if request.method == "POST":
+        candidat_evaluation = CandidatEvaluation()
+        candidat_evaluation.candidat = candidat
+        form = CandidatEvaluationForm(request.POST, 
+                instance=candidat_evaluation, candidat=candidat) 
+        if form.is_valid():       
+            form.save()    
+            messages.add_message(request, messages.SUCCESS, 
+                            "Le commentaire et la note ont été affectés \
+                                au candidat.")
+            return redirect("admin:recrutement_candidat_changelist")
+    else:      
+        form = CandidatEvaluationForm(candidat=candidat)
+
+    c = {'form' : form}   
+    return render_to_response("recrutement/evaluer_candidat.html", Context(c),
+                context_instance = RequestContext(request))
+
+def affecter_evaluateurs_candidats(request):
+    candidat_ids = request.GET.get('ids').split(',')
+    candidats = get_object_or_404(Candidat, id__in=candidat_ids)
+    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_candidat_changelist")
+    else:
+        form = EvaluateurForm(candidats=candidats)
+
+    c = {'form' : form}   
+    return render_to_response("recrutement/affecter_evaluateurs.html", 
+            Context(c), context_instance = RequestContext(request))
+
+def postuler_appel_offre(request):
+    vars = dict()
+    offre_emploi = get_object_or_404(OffreEmploi, id=request.GET.get('id'))
+    candidat = Candidat()
+    candidat.offre_emploi = offre_emploi
+
+    if request.method == "POST":
+        form = PostulerOffreEmploiForm(request.POST, request.FILES, instance=candidat, offre_emploi=offre_emploi)
+        piecesForm = CandidatPieceForm(request.POST, request.FILES, instance=candidat)
+        #import pdb;pdb.set_trace()
+        if form.is_valid() and piecesForm.is_valid():
+            form.save()
+            messages.add_message(request, messages.SUCCESS, 
+                            "Votre application à l'appel d'offre d'emploi a \
+                            été effectuée.")
+            return redirect("admin:recrutement_offreemploi_changelist")
+    else:
+        form = PostulerOffreEmploiForm(instance=candidat, offre_emploi=offre_emploi)
+        piecesForm = CandidatPieceForm(instance=candidat)
+
+    vars.update(dict(form=form, candidat=candidat, piecesForm=piecesForm, ))
+    return render_to_response('recrutement/postuler_appel_offre.html', vars, 
+            RequestContext(request))