1750: Un évaluateur doit être assignés à des offres d'emploi et non à des candidats.
[auf_rh_dae.git] / project / recrutement / forms.py
1 # -*- encoding: utf-8 -*-
2
3 import os
4 from django import forms
5 from django.contrib import admin
6 from django.forms.models import inlineformset_factory
7 from datetime import timedelta
8 from django.forms.widgets import CheckboxSelectMultiple
9 from django.contrib.admin import widgets as admin_widgets
10 from form_utils.forms import BetterModelForm
11 from django.forms import ModelForm
12 from django.forms.models import BaseInlineFormSet
13 from django.core.mail import send_mail
14
15 from tinymce.widgets import TinyMCE
16 from captcha.fields import CaptchaField
17
18 from recrutement import models as recr
19 from auf.django.emploi import forms as emploi
20
21
22
23 ################################################################################
24 # EVALUATION
25 ################################################################################
26 class CandidatEvaluationForm(ModelForm):
27 def __init__(self, *args, **kwargs):
28 self.candidat = kwargs.pop('candidat')
29 self.evaluateur = kwargs.pop('evaluateur')
30 super(CandidatEvaluationForm, self).__init__(*args, **kwargs)
31
32 def save(self):
33 super(CandidatEvaluationForm, self).save()
34
35 class Meta:
36 fields = ('note', 'commentaire')
37 model = recr.CandidatEvaluation
38
39 class EvaluateurForm(forms.Form):
40 evaluateurs = forms.ModelMultipleChoiceField(queryset=
41 recr.Evaluateur.objects.all())
42
43 def __init__(self, *args, **kwargs):
44 self.offres_emploi = kwargs.pop('offres_emploi')
45 super(EvaluateurForm, self).__init__(*args, **kwargs)
46
47 def save(self):
48 candidats = recr.Candidat.objects.\
49 filter(offre_emploi__in=self.offres_emploi)
50 import pdb;pdb.set_trace()
51 for candidat in candidats:
52 for evaluateur in self.cleaned_data.get('evaluateurs', []):
53 candidat_evaluation = recr.CandidatEvaluation()
54 candidat_evaluation.candidat = candidat
55 candidat_evaluation.evaluateur = evaluateur
56 candidat_evaluation.save()
57
58
59 ################################################################################
60 # OFFRE EMPLOI
61 ################################################################################
62 class CandidatPieceForm(emploi.CandidatPieceForm):
63 pass
64
65 class PostulerOffreEmploiForm(emploi.PostulerOffreEmploiForm):
66 pass
67
68 """class OffreEmploiForm(emploi.OffreEmploi):
69 def clean(self):
70 cleaned_data = self.cleaned_data
71 date_limite = cleaned_data.get("date_limite")
72 debut_affectation = cleaned_data.get("debut_affectation")
73
74 if date_limite and debut_affectation:
75 if date_limite > debut_affectation:
76 raise forms.ValidationError("La date limite doit être \
77 ultérieure à la date de début d'affectation.")
78 return cleaned_data
79 """
80 ################################################################################
81 # TEMPLATE COURRIEL
82 ################################################################################
83 class CandidatCourrielTemplateForm(ModelForm):
84 def get_template(self):
85 return self.data['template']
86
87 class Meta:
88 model = recr.CandidatCourriel
89 fields = ('template', )
90
91 class CandidatCourrielForm(ModelForm):
92 def __init__(self, *args, **kwargs):
93 self.candidats = kwargs.pop('candidats')
94 self.template = kwargs.pop('template')
95 super(CandidatCourrielForm, self).__init__(*args, **kwargs)
96
97 def save(self):
98 super(CandidatCourrielForm, self).save()
99
100 class Meta:
101 model = recr.CandidatCourriel
102 fields = ('sujet', 'plain_text', 'html')
103