1816: Avoir le poste dans le modèle offre d'emploi sans créer de dépendance à rh...
[auf_rh_dae.git] / project / recrutement / forms.py
index 2392045..2c54120 100644 (file)
@@ -8,7 +8,7 @@ from datetime import timedelta
 from django.forms.widgets import CheckboxSelectMultiple
 from django.contrib.admin import widgets as admin_widgets   
 from form_utils.forms import BetterModelForm
-from django.forms import ModelForm
+from django.forms import ModelForm, ModelChoiceField, HiddenInput, CharField
 from django.forms.models import BaseInlineFormSet 
 from django.core.mail import send_mail
 
@@ -17,6 +17,7 @@ from captcha.fields import CaptchaField
 
 from recrutement import models as recr
 from auf.django.emploi import forms as emploi
+from project.rh import models as rh
 
 ################################################################################
 # EVALUATION
@@ -63,9 +64,21 @@ class PostulerOffreEmploiForm(emploi.PostulerOffreEmploiForm):
     pass
 
 class OffreEmploiForm(ModelForm):
+    poste = ModelChoiceField(queryset=rh.Poste.objects.all())
+
     class Meta:
         model = recr.OffreEmploi  
 
+    def save(self, *args, **kwargs):
+        kwargs2 = kwargs.copy()
+        kwargs2['commit'] = False
+        offre = super(OffreEmploiForm, self).save(*args, **kwargs2)
+        offre.poste = self.cleaned_data.get("poste")
+        offre.poste_nom = self.cleaned_data.get("poste").nom
+        if 'commit' not in kwargs or kwargs['commit']:
+            offre.save()
+        return offre
+
     def clean(self):
         cleaned_data = self.cleaned_data
         date_limite = cleaned_data.get("date_limite")
@@ -76,6 +89,11 @@ class OffreEmploiForm(ModelForm):
                 raise forms.ValidationError("La date limite ne peut pas être \
                         supérieure à la date d'affection.")
 
+        """if date_limite < datetime.date.today() or \
+            debut_affectation < datetime.date.today():
+            raise forms.ValidationError("La date limite et/ou la date \
+                d'affection doivent être supérieures à la date d'aujourdhui.")
+        """
         return cleaned_data
 
 ################################################################################