6f2d5d58 |
1 | # -*- encoding: utf-8 -*- |
2 | from django.shortcuts import redirect, render_to_response, get_object_or_404 |
362a3534 |
3 | from django.http import HttpResponse |
4 | from django.contrib import messages |
5 | from django.template import Context, RequestContext |
6 | from django.shortcuts import render_to_response, redirect |
6f2d5d58 |
7 | from django.template import RequestContext |
f083eee0 |
8 | from django.contrib.auth.models import User |
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')) |
20 | var = {'candidat': candidat} |
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) |
596fe324 |
41 | if form.is_valid(): |
42 | form.save() |
43 | messages.add_message(request, messages.SUCCESS, |
44 | "Le commentaire et la note ont été affectés \ |
45 | au candidat.") |
46 | return redirect("admin:recrutement_candidat_changelist") |
47 | else: |
e34a2ae0 |
48 | form = CandidatEvaluationForm(candidat=candidat, evaluateur=evaluateur) |
596fe324 |
49 | |
50 | c = {'form' : form} |
8ea41642 |
51 | return render_to_response("recrutement/evaluer_candidat.html", Context(c), |
596fe324 |
52 | context_instance = RequestContext(request)) |
53 | |
362a3534 |
54 | def affecter_evaluateurs_candidats(request): |
55 | candidat_ids = request.GET.get('ids').split(',') |
2adf9e0c |
56 | candidats = Candidat.objects.filter(id__in=candidat_ids) |
362a3534 |
57 | if request.method == "POST": |
58 | form = EvaluateurForm(request.POST, candidats=candidats) |
59 | if form.is_valid(): |
60 | form.save() |
61 | messages.add_message(request, messages.SUCCESS, |
62 | "Les évaluateurs ont été affectés aux candidats.") |
63 | return redirect("admin:recrutement_candidat_changelist") |
64 | else: |
65 | form = EvaluateurForm(candidats=candidats) |
66 | |
67 | c = {'form' : form} |
8ea41642 |
68 | return render_to_response("recrutement/affecter_evaluateurs.html", |
69 | Context(c), context_instance = RequestContext(request)) |
70 | |
71 | def postuler_appel_offre(request): |
f6749f29 |
72 | |
2b3edf33 |
73 | vars = dict() |
8ea41642 |
74 | offre_emploi = get_object_or_404(OffreEmploi, id=request.GET.get('id')) |
75 | candidat = Candidat() |
76 | candidat.offre_emploi = offre_emploi |
2b3edf33 |
77 | |
8ea41642 |
78 | if request.method == "POST": |
f6749f29 |
79 | form = PostulerOffreEmploiForm(request.POST, |
2adf9e0c |
80 | instance=candidat, offre_emploi=offre_emploi) |
81 | piecesForm = CandidatPieceForm(request.POST, request.FILES, |
82 | instance=candidat) |
f6749f29 |
83 | print form.errors |
2b3edf33 |
84 | if form.is_valid() and piecesForm.is_valid(): |
f6749f29 |
85 | offre = form.save() |
86 | piecesForm.instance = offre |
87 | piecesForm.save() |
8ea41642 |
88 | messages.add_message(request, messages.SUCCESS, |
89 | "Votre application à l'appel d'offre d'emploi a \ |
90 | été effectuée.") |
91 | return redirect("admin:recrutement_offreemploi_changelist") |
f6749f29 |
92 | else: |
93 | messages.add_message(request, messages.ERROR, |
94 | 'Il y a des erreurs dans le formulaire.') |
8ea41642 |
95 | else: |
2adf9e0c |
96 | form = PostulerOffreEmploiForm(instance=candidat, |
97 | offre_emploi=offre_emploi) |
2b3edf33 |
98 | piecesForm = CandidatPieceForm(instance=candidat) |
8ea41642 |
99 | |
2b3edf33 |
100 | vars.update(dict(form=form, candidat=candidat, piecesForm=piecesForm, )) |
101 | |
102 | return render_to_response('recrutement/postuler_appel_offre.html', vars, |
103 | RequestContext(request)) |