1591: Créer une app formulaire-recrutement qui permettra à un candidat de postuler...
[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 form_utils.forms import BetterModelForm
8 from django.forms import ModelForm
9 from models import *
10
11 ################################################################################
12 # EVALUATION
13 ################################################################################
14 class CandidatEvaluationForm(ModelForm):
15 def __init__(self, *args, **kwargs):
16 self.candidat = kwargs.pop('candidat')
17 super(CandidatEvaluationForm, self).__init__(*args, **kwargs)
18
19 def save(self):
20 super(CandidatEvaluationForm, self).save()
21
22 class Meta:
23 fields = ('note', 'commentaire', 'evaluateur')
24 model = CandidatEvaluation
25
26 class EvaluateurForm(forms.Form):
27 evaluateurs = forms.ModelMultipleChoiceField(queryset=
28 Evaluateur.objects.all())
29
30 def __init__(self, *args, **kwargs):
31 self.candidats = kwargs.pop('candidats')
32 super(EvaluateurForm, self).__init__(*args, **kwargs)
33
34 def save(self):
35 for d in self.candidats:
36 d.evaluateurs = self.cleaned_data.get('evaluateurs', [])
37 d.save()
38
39 ################################################################################
40 # OFFRE EMPLOI
41 ################################################################################
42 class PostulerOffreEmploiForm(BetterModelForm):
43 def __init__(self, *args, **kwargs):
44 self.offre_emploi = kwargs.pop('offre_emploi')
45 self.actif = True
46 # Statut de la cadidature à Nouveau
47 self.statut = STATUT_CHOICES[0]
48 super(PostulerOffreEmploiForm, self).__init__(*args, **kwargs)
49
50 def save(self):
51 super(PostulerOffreEmploiForm, self).save()
52
53 class Meta:
54 fieldsets = [
55 ('Informations personnelles', {
56 'fields': ['prenom','nom','genre', 'nationalite',
57 'date_naissance', 'situation_famille',
58 'nombre_dependant',]}),
59 ('Adresse', {
60 'fields': ['adresse', 'ville', 'etat_province', 'pays', ]}),
61 ('Informations professionnelles', {
62 'fields': ['niveau_diplome', 'employeur_actuel',
63 'poste_actuel', 'domaine_professionnel', ]
64 })]
65 model = Candidat