refactoring pour couplage fort model form, abstraction utilisation JSON
[auf_django_emploi.git] / auf / django / emploi / forms.py
index 861cb2c..2801738 100644 (file)
@@ -1,44 +1,46 @@
 # -*- encoding: utf-8 -*-
 
-import os
 from django import forms
-from django.contrib import admin
 from django.forms.models import inlineformset_factory
 from django.forms.widgets import CheckboxSelectMultiple
 from django.forms import ModelForm
 
 from captcha.fields import CaptchaField
 
-from auf.django.emploi import models as emploi
+from models import *
 
 ################################################################################
 # OFFRE EMPLOI
 ################################################################################
-class CandidatPieceForm(inlineformset_factory(emploi.Candidat,
-                        emploi.CandidatPiece)):
-    nom = forms.MultipleChoiceField(choices=emploi.TYPE_PIECE_CHOICES,
+class CandidatPieceForm(inlineformset_factory(Candidat,
+                        CandidatPiece)):
+    nom = forms.MultipleChoiceField(choices=TYPE_PIECE_CHOICES,
             widget=CheckboxSelectMultiple)
 
-class PostulerOffreEmploiForm(ModelForm):
-    captcha = CaptchaField()
-
     def __init__(self, *args, **kwargs):
-        self.offre_emploi = kwargs.pop('offre_emploi')     
-        super(PostulerOffreEmploiForm, self).__init__(*args, **kwargs)
+        super(CandidatPieceForm, self).__init__(*args, **kwargs)
+    
+    def save(self, *args, **kwargs):
+        super(CandidatPieceForm, self).save(*args, **kwargs)
 
-    def save(self, *args, **kwargs): 
-        kwargs2 = kwargs.copy()
-        kwargs2['commit'] = False
-        postulation = super(PostulerOffreEmploiForm, self).save(*args, **kwargs2)
-        if 'commit' not in kwargs or kwargs['commit']:
-            postulation.save()
-        return postulation
 
-    class Meta:
-        model = emploi.Candidat   
-        exclude = ('actif', 'offre_emploi',)
-        fields = ('nom', 'prenom', 'genre', 'nationalite', 'situation_famille', 
+POSTULER_FORM_EXCLUDES = ('actif', 'offre_emploi',) 
+POSTULER_FORM_FIELDS = ('nom', 'prenom', 'genre', 'nationalite', 'situation_famille', 
                     'nombre_dependant', 'niveau_diplome', 'employeur_actuel', 
                     'poste_actuel', 'domaine_professionnel', 'telephone', 
                     'email', 'adresse', 'ville', 'code_postal', 'etat_province',
-                    'pays', 'captcha', )
+                    'pays', )
+
+class NoCaptchaPostulerOffreEmploiForm(ModelForm):
+    class Meta:
+        model = Candidat
+        exclude = POSTULER_FORM_EXCLUDES
+        fields =  POSTULER_FORM_FIELDS
+
+class PostulerOffreEmploiForm(ModelForm):
+    captcha = CaptchaField()
+
+    class Meta:
+        model = Candidat   
+        exclude = POSTULER_FORM_EXCLUDES
+        fields =  POSTULER_FORM_FIELDS + ('captcha', )