Cleaning de code inutile
[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, ModelChoiceField, HiddenInput, CharField
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 from project.rh import models as rh
21
22 ################################################################################
23 # EVALUATION
24 ################################################################################
25 class CandidatEvaluationForm(ModelForm):
26 def __init__(self, *args, **kwargs):
27 self.candidat = kwargs.pop('candidat')
28 self.evaluateur = kwargs.pop('evaluateur')
29 super(CandidatEvaluationForm, self).__init__(*args, **kwargs)
30
31 def save(self):
32 super(CandidatEvaluationForm, self).save()
33
34 class Meta:
35 fields = ('note', 'commentaire')
36 model = recr.CandidatEvaluation
37
38 class EvaluateurForm(forms.Form):
39 evaluateurs = forms.ModelMultipleChoiceField(queryset=
40 recr.Evaluateur.objects.all())
41
42 def __init__(self, *args, **kwargs):
43 self.offres_emploi = kwargs.pop('offres_emploi')
44 super(EvaluateurForm, self).__init__(*args, **kwargs)
45
46 def save(self):
47 candidats = recr.Candidat.objects.\
48 filter(offre_emploi__in=self.offres_emploi)
49 for candidat in candidats:
50 for evaluateur in self.cleaned_data.get('evaluateurs', []):
51 candidat_evaluation = recr.CandidatEvaluation()
52 candidat_evaluation.candidat = candidat
53 candidat_evaluation.evaluateur = evaluateur
54 candidat_evaluation.save()
55
56
57 ################################################################################
58 # OFFRE EMPLOI
59 ################################################################################
60 class CandidatPieceForm(emploi.CandidatPieceForm):
61 pass
62
63 class PostulerOffreEmploiForm(emploi.PostulerOffreEmploiForm):
64 pass
65
66 class OffreEmploiForm(ModelForm):
67 poste = ModelChoiceField(queryset=rh.Poste.objects.all())
68
69 class Meta:
70 model = recr.OffreEmploi
71
72 def save(self, *args, **kwargs):
73 kwargs2 = kwargs.copy()
74 kwargs2['commit'] = False
75 offre = super(OffreEmploiForm, self).save(*args, **kwargs2)
76 offre.poste = self.cleaned_data.get("poste").id
77 offre.poste_nom = self.cleaned_data.get("poste").nom
78 if 'commit' not in kwargs or kwargs['commit']:
79 offre.save()
80 return offre
81
82 def clean(self):
83 cleaned_data = self.cleaned_data
84 date_limite = cleaned_data.get("date_limite")
85 debut_affectation = cleaned_data.get("debut_affectation")
86
87 if date_limite and debut_affectation:
88 if date_limite > debut_affectation:
89 raise forms.ValidationError("La date limite ne peut pas être \
90 supérieure à la date d'affection.")
91
92 return cleaned_data
93
94 ################################################################################
95 # TEMPLATE COURRIEL
96 ################################################################################
97 class CandidatCourrielTemplateForm(ModelForm):
98 def get_template(self):
99 return self.data['template']
100
101 class Meta:
102 model = recr.CandidatCourriel
103 fields = ('template', )
104
105 class CandidatCourrielForm(ModelForm):
106 def __init__(self, *args, **kwargs):
107 self.candidats = kwargs.pop('candidats')
108 self.template = kwargs.pop('template')
109 super(CandidatCourrielForm, self).__init__(*args, **kwargs)
110
111 def save(self):
112 super(CandidatCourrielForm, self).save()
113
114 class Meta:
115 model = recr.CandidatCourriel
116 fields = ('sujet', 'plain_text', 'html')
117