6f2d5d58 |
1 | # -*- encoding: utf-8 -*- |
89e948de |
2 | |
362a3534 |
3 | from django.contrib import messages |
f083eee0 |
4 | from django.contrib.auth.models import User |
89e948de |
5 | from django.core.mail import send_mail |
6 | from django.http import HttpResponse |
7 | from django.shortcuts import render_to_response, redirect, get_object_or_404 |
8 | from django.template import Context, RequestContext |
6f2d5d58 |
9 | |
362a3534 |
10 | from forms import * |
11 | from models import * |
6f2d5d58 |
12 | from project.recrutement import models as recr |
13 | |
14 | def index(request): |
362a3534 |
15 | return render_to_response('recrutement/index.html', {}, |
16 | RequestContext(request)) |
17 | |
7d82fd33 |
18 | def afficher_candidat(request): |
19 | candidat = get_object_or_404(Candidat, id=request.GET.get('id')) |
73d23dcd |
20 | var = {'candidat': candidat,} |
7d82fd33 |
21 | return render_to_response("recrutement/afficher_candidat.html", var, |
22 | RequestContext(request)) |
23 | |
596fe324 |
24 | def evaluer_candidat(request): |
e34a2ae0 |
25 | candidat = get_object_or_404(Candidat, id=request.GET.get('id')) |
26 | |
27 | try: |
28 | evaluateur = UserProfile.objects.get(user=request.user) |
29 | except UserProfile.DoesNotExist: |
30 | messages.add_message(request, messages.ERROR, |
7d82fd33 |
31 | "Vous ne pouvez pas évaluer ce candidat.") |
e34a2ae0 |
32 | return redirect("admin:recrutement_candidat_changelist") |
33 | |
596fe324 |
34 | if request.method == "POST": |
35 | candidat_evaluation = CandidatEvaluation() |
36 | candidat_evaluation.candidat = candidat |
e34a2ae0 |
37 | candidat_evaluation.evaluateur = evaluateur |
8ea41642 |
38 | form = CandidatEvaluationForm(request.POST, |
e34a2ae0 |
39 | instance=candidat_evaluation, candidat=candidat, |
40 | evaluateur=evaluateur) |
89e948de |
41 | if form.is_valid(): |
42 | form.save() |
596fe324 |
43 | messages.add_message(request, messages.SUCCESS, |
44 | "Le commentaire et la note ont été affectés \ |
45 | au candidat.") |
89e948de |
46 | |
596fe324 |
47 | return redirect("admin:recrutement_candidat_changelist") |
48 | else: |
e34a2ae0 |
49 | form = CandidatEvaluationForm(candidat=candidat, evaluateur=evaluateur) |
596fe324 |
50 | |
51 | c = {'form' : form} |
8ea41642 |
52 | return render_to_response("recrutement/evaluer_candidat.html", Context(c), |
596fe324 |
53 | context_instance = RequestContext(request)) |
54 | |
362a3534 |
55 | def affecter_evaluateurs_candidats(request): |
56 | candidat_ids = request.GET.get('ids').split(',') |
2adf9e0c |
57 | candidats = Candidat.objects.filter(id__in=candidat_ids) |
362a3534 |
58 | if request.method == "POST": |
59 | form = EvaluateurForm(request.POST, candidats=candidats) |
60 | if form.is_valid(): |
61 | form.save() |
62 | messages.add_message(request, messages.SUCCESS, |
63 | "Les évaluateurs ont été affectés aux candidats.") |
64 | return redirect("admin:recrutement_candidat_changelist") |
65 | else: |
66 | form = EvaluateurForm(candidats=candidats) |
67 | |
68 | c = {'form' : form} |
8ea41642 |
69 | return render_to_response("recrutement/affecter_evaluateurs.html", |
70 | Context(c), context_instance = RequestContext(request)) |
71 | |
72 | def postuler_appel_offre(request): |
f6749f29 |
73 | |
2b3edf33 |
74 | vars = dict() |
8ea41642 |
75 | offre_emploi = get_object_or_404(OffreEmploi, id=request.GET.get('id')) |
76 | candidat = Candidat() |
77 | candidat.offre_emploi = offre_emploi |
2b3edf33 |
78 | |
8ea41642 |
79 | if request.method == "POST": |
f6749f29 |
80 | form = PostulerOffreEmploiForm(request.POST, |
2adf9e0c |
81 | instance=candidat, offre_emploi=offre_emploi) |
82 | piecesForm = CandidatPieceForm(request.POST, request.FILES, |
83 | instance=candidat) |
f6749f29 |
84 | print form.errors |
2b3edf33 |
85 | if form.is_valid() and piecesForm.is_valid(): |
f6749f29 |
86 | offre = form.save() |
87 | piecesForm.instance = offre |
89e948de |
88 | piecesForm.save() |
8ea41642 |
89 | messages.add_message(request, messages.SUCCESS, |
90 | "Votre application à l'appel d'offre d'emploi a \ |
91 | été effectuée.") |
89e948de |
92 | |
93 | # Envoi d'un email de confirmation |
94 | send_mail(u"Confirmation de postulation pour le poste \ |
95 | de " + offre_emploi.nom, |
96 | u"Bonjour " + candidat.prenom + " " + candidat.nom + |
97 | u", \nceci est un email pour vous confirmer que votre \ |
98 | postulation pour l'offre d'emploi: " + |
99 | offre_emploi.nom + u" a été effectuée avec succès. Vous\ |
100 | devriez être contacté sous peu par l'AUF. \n\n Merci \ |
101 | pour votre intérêt envers l'AUF.", |
102 | 'contact@nilovna.com', |
103 | [candidat.email], fail_silently=False) |
104 | |
8ea41642 |
105 | return redirect("admin:recrutement_offreemploi_changelist") |
f6749f29 |
106 | else: |
107 | messages.add_message(request, messages.ERROR, |
108 | 'Il y a des erreurs dans le formulaire.') |
8ea41642 |
109 | else: |
2adf9e0c |
110 | form = PostulerOffreEmploiForm(instance=candidat, |
111 | offre_emploi=offre_emploi) |
2b3edf33 |
112 | piecesForm = CandidatPieceForm(instance=candidat) |
8ea41642 |
113 | |
2b3edf33 |
114 | vars.update(dict(form=form, candidat=candidat, piecesForm=piecesForm, )) |
115 | |
116 | return render_to_response('recrutement/postuler_appel_offre.html', vars, |
117 | RequestContext(request)) |