1702: Un administrateur ne devrait pas être en mesure de modifier la note d'un évaluateur
[auf_rh_dae.git] / project / recrutement / forms.py
CommitLineData
83252c4c 1# -*- encoding: utf-8 -*-
2
3import os
4from django import forms
5from django.contrib import admin
6from django.forms.models import inlineformset_factory
ee42ad96 7from datetime import timedelta
8from django.forms.widgets import CheckboxSelectMultiple
9from django.contrib.admin import widgets as admin_widgets
8ea41642 10from form_utils.forms import BetterModelForm
83252c4c 11from django.forms import ModelForm
2b3edf33 12from django.forms.models import BaseInlineFormSet
ee42ad96 13
ec517164 14from tinymce.widgets import TinyMCE
86caaf03 15from captcha.fields import CaptchaField
ec517164 16
17from recrutement import models as recr
f1491a6f 18#from recrutement.lib import send_templated_mail
83252c4c 19
20################################################################################
21# EVALUATION
22################################################################################
23class CandidatEvaluationForm(ModelForm):
24 def __init__(self, *args, **kwargs):
25 self.candidat = kwargs.pop('candidat')
e34a2ae0 26 self.evaluateur = kwargs.pop('evaluateur')
83252c4c 27 super(CandidatEvaluationForm, self).__init__(*args, **kwargs)
28
29 def save(self):
30 super(CandidatEvaluationForm, self).save()
31
32 class Meta:
e34a2ae0 33 fields = ('note', 'commentaire')
2b3edf33 34 model = recr.CandidatEvaluation
83252c4c 35
36class EvaluateurForm(forms.Form):
8ea41642 37 evaluateurs = forms.ModelMultipleChoiceField(queryset=
27c81d11 38 recr.Evaluateur.objects.all())
83252c4c 39
40 def __init__(self, *args, **kwargs):
41 self.candidats = kwargs.pop('candidats')
42 super(EvaluateurForm, self).__init__(*args, **kwargs)
43
44 def save(self):
21b02da5
NBV
45 for candidat in self.candidats:
46 for evaluateur in self.cleaned_data.get('evaluateurs', []):
c4874d66 47 candidat_evaluation = recr.CandidatEvaluation()
21b02da5
NBV
48 candidat_evaluation.candidat = candidat
49 candidat_evaluation.evaluateur = evaluateur
c4874d66 50 candidat_evaluation.save()
83252c4c 51
52################################################################################
53# OFFRE EMPLOI
54################################################################################
f6749f29 55class CandidatPieceForm(inlineformset_factory(recr.Candidat,
56 recr.CandidatPiece)):
ee42ad96 57 nom = forms.MultipleChoiceField(choices=recr.TYPE_PIECE_CHOICES,
58 widget=CheckboxSelectMultiple)
2b3edf33 59
60class PostulerOffreEmploiForm(ModelForm):
86caaf03 61 captcha = CaptchaField()
62
2b3edf33 63 def __init__(self, *args, **kwargs):
ee42ad96 64 self.offre_emploi = kwargs.pop('offre_emploi')
8ea41642 65 super(PostulerOffreEmploiForm, self).__init__(*args, **kwargs)
66
f6749f29 67 def save(self, *args, **kwargs):
68 kwargs2 = kwargs.copy()
69 kwargs2['commit'] = False
70 postulation = super(PostulerOffreEmploiForm, self).save(*args, **kwargs2)
71 if 'commit' not in kwargs or kwargs['commit']:
72 postulation.save()
73 return postulation
8ea41642 74
83252c4c 75 class Meta:
2b3edf33 76 model = recr.Candidat
77 exclude = ('actif', 'offre_emploi',)
ee42ad96 78 widgets = dict(date_naissance=admin_widgets.AdminDateWidget(),)
2b3edf33 79 fields = ('nom', 'prenom', 'genre', 'nationalite', 'date_naissance',
80 'situation_famille', 'nombre_dependant', 'niveau_diplome',
81 'employeur_actuel', 'poste_actuel', 'domaine_professionnel',
ec517164 82 'telephone', 'email', 'adresse', 'ville', 'code_postal',
86caaf03 83 'etat_province', 'pays', 'captcha', )
ec517164 84
d84c3a68 85################################################################################
86# TEMPLATE COURRIEL
87################################################################################
88class CandidatCourrielForm(ModelForm):
89 #texte = forms.CharField(widget=TinyMCE())
90
91 def __init__(self, *args, **kwargs):
92 self.candidats = kwargs.pop('candidats')
93 super(CandidatCourrielForm, self).__init__(*args, **kwargs)
94
95 def save(self):
96 super(CandidatCourrielForm, self).save()
4e8340cf 97 #for cand in self.candidats:
98 #send_templated_mail()
d84c3a68 99
100 class Meta:
101 model = recr.CandidatCourriel
102 fields = ('template','titre', 'texte')
103