validation WF poste + dossier
[auf_rh_dae.git] / project / dae / forms.py
index 2b667dd..80b2774 100644 (file)
@@ -3,6 +3,7 @@
 from django import forms
 from django.forms.models import inlineformset_factory
 from django.contrib.admin import widgets as admin_widgets 
+from ajax_select.fields import AutoCompleteSelectField
 from auf.django.workflow.forms import WorkflowFormMixin
 from datamaster_modeles import models as ref
 
@@ -67,28 +68,18 @@ class JustificationAutreEmployeForm(inlineformset_factory(dae.Dossier,
                 j.save()
         super(self.__class__, self).__init__(*args, **kwargs)
 
-class PosteValidationForm(forms.ModelForm):
-    """ Validation d'un poste"""
-    class Meta:
-        model = dae.Poste
-        fields = (
-            'validation_bureau_regional',
-            'validation_drh',
-            'validation_secretaire_general',
-            'validation_recteur',
-            )    
-
 class PosteForm(WorkflowFormMixin):
     """ Formulaire des postes. """
+    
+    
     class Meta:
         model = dae.Poste
 
         fields = ('poste', 'implantation', 'type_poste', 'service', 'nom',
-                  'responsable', 'statut_residence', 'mise_a_disposition',
+                  'responsable', 'local', 'expatrie', 'mise_a_disposition',
                   'appel', 'date_debut', 'date_fin', 'actif',
                   'regime_travail', 'regime_travail_nb_heure_semaine',
                   'classement_min', 'classement_max',
-                  'coefficient_min', 'coefficient_max',
                   'valeur_point_min', 'valeur_point_max',
                   'devise_min', 'devise_max',
                   'salaire_min', 'salaire_max', 'indemn_min', 'indemn_max',
@@ -101,8 +92,7 @@ class PosteForm(WorkflowFormMixin):
                   'justification',
                   'etat',
                   )
-        widgets = dict(statut_residence=forms.RadioSelect(),
-                       appel=forms.RadioSelect(),
+        widgets = dict(appel=forms.RadioSelect(),
                        nom=forms.TextInput(attrs={'size': 60},),
                        date_debut=admin_widgets.AdminDateWidget(),
                        date_fin=admin_widgets.AdminDateWidget(),
@@ -111,8 +101,9 @@ class PosteForm(WorkflowFormMixin):
                        #devise_max=forms.Select(attrs={'disabled':'disabled'}),
                     )
 
-    responsable = forms.ModelChoiceField(
-            queryset=rh.Poste.objects.select_related(depth=1))
+    responsable=AutoCompleteSelectField('responsables', required=True)
+    #responsable = forms.ModelChoiceField(
+    #        queryset=rh.Poste.objects.select_related(depth=1))
 
     # La liste des choix est laissée vide. Voir __init__ pour la raison.
     poste = forms.ChoiceField(label="Nouveau poste ou évolution du poste",
@@ -237,17 +228,33 @@ class EmployeForm(forms.ModelForm):
         id_copies = [p.id_rh_id for p in copies.all()]
         rhv1 = rh.Employe.objects.exclude(id__in=id_copies)
 
+        def option_label(employe):
+            return "%s %s" % (employe.nom.upper(), employe.prenom.title())
+
         return [('', 'Nouvel employé')] + \
-               sorted([('dae-%s' % p.id, unicode(p)) for p in dae_ | copies] +
-                      [('rh-%s' % p.id, unicode(p)) for p in rhv1],
+               sorted([('dae-%s' % p.id, option_label(p)) for p in dae_ | copies] +
+                      [('rh-%s' % p.id, option_label(p)) for p in rhv1],
                       key=lambda t: t[1])
 
 
 class DossierForm(forms.ModelForm):
     """ Formulaire des dossiers. """
     class Meta:
+        exclude= ('etat', )
         model = dae.Dossier
         widgets = dict(statut_residence=forms.RadioSelect(),
                        contrat_date_debut=admin_widgets.AdminDateWidget(),
                        contrat_date_fin=admin_widgets.AdminDateWidget(),
                     )
+
+class PosteWorkflowForm(WorkflowFormMixin):
+    
+    class Meta:
+        fields = ('etat', )
+        model = dae.Poste
+
+class DossierWorkflowForm(WorkflowFormMixin):
+    
+    class Meta:
+        fields = ('etat', )
+        model = dae.Dossier