liste remove pending
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Wed, 7 Mar 2012 18:45:17 +0000 (13:45 -0500)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Wed, 7 Mar 2012 18:45:17 +0000 (13:45 -0500)
project/dae/forms.py
project/dae/views.py

index f0476ff..29ff214 100644 (file)
@@ -1,5 +1,6 @@
 # -*- encoding: utf-8 -*-
 
+import datetime
 from django.db.models import Q, Max
 from django import forms
 from django.forms.models import inlineformset_factory, modelformset_factory
@@ -210,16 +211,14 @@ class PosteForm(forms.ModelForm):
         d'équivalent dans dae.
 
         """
-        dae_ = dae.Poste.objects.ma_region_ou_service(request.user).filter(id_rh__isnull=True)
-        copies = dae.Poste.objects.ma_region_ou_service(request.user).exclude(id_rh__isnull=True)
+        copies = dae.Poste.objects.ma_region_ou_service(request.user).exclude(id_rh__isnull=True).filter(etat=POSTE_ETAT_FINALISE)
         id_copies = [p.id_rh_id for p in copies.all()]
         rhv1 = rh.Poste.objects.ma_region_ou_service(request.user).exclude(id__in=id_copies)
         # Optimisation de la requête
         rhv1 = rhv1.select_related(depth=1)
 
         return [('', 'Nouveau poste')] + \
-               sorted([('dae-%s' % p.id, label_poste_display(p)) for p in dae_ | copies] +
-                      [('rh-%s' % p.id, label_poste_display(p)) for p in rhv1],
+               sorted([('rh-%s' % p.id, label_poste_display(p)) for p in rhv1],
                       key=lambda t: t[1])
 
     def clean(self):
@@ -237,13 +236,14 @@ class PosteForm(forms.ModelForm):
         return cleaned_data
 
 
-
     def save(self, *args, **kwargs):
         kwargs2 = kwargs.copy()
         kwargs2['commit'] = False
         poste = super(PosteForm, self).save(*args, **kwargs2)
         # id_rh
         if 'commit' not in kwargs or kwargs['commit']:
+            if poste.id is None:
+                poste.date_creation = datetime.datetime.now()
             poste.save()
         return poste
 
@@ -264,7 +264,6 @@ class ChoosePosteForm(forms.ModelForm):
         """ Menu déroulant pour les postes. """
         dae_ = dae.Poste.objects.ma_region_ou_service(request.user).filter(id_rh__isnull=True)
         copies = dae.Poste.objects.ma_region_ou_service(request.user).exclude(id_rh__isnull=True)
-        id_copies = [p.id_rh_id for p in copies.all()]
 
         return [('', '----------')] + \
                sorted([('dae-%s' % p.id, unicode(p)) for p in dae_ | copies],
@@ -297,6 +296,13 @@ class DossierForm(forms.ModelForm):
                        contrat_date_fin=admin_widgets.AdminDateWidget(),
                     )
 
+    def save(self, *args, **kwargs):
+        dossier = super(PosteForm, self).save(*args, **kwargs)
+        if dossier.id is None:
+            dossier.date_creation = datetime.datetime.now()
+        dossier.save()
+        return dossier
+
 WF_HELP_TEXT = ""
 
 class PosteWorkflowForm(WorkflowFormMixin):
index 8e476f0..aa1e484 100644 (file)
@@ -674,13 +674,11 @@ def liste_postes(request):
     data = []
 
     # Voir le code de _poste_choices dans forms.py
-    dae_ = dae.Poste.objects.actifs().filter(id_rh__isnull=True)
-    copies = dae.Poste.objects.exclude(id_rh__isnull=True)
-    rh_postes_actifs = rh.Poste.objects.actifs()
+    copies = dae.Poste.objects.exclude(id_rh__isnull=True).filter(etat=POSTE_ETAT_FINALISE)
+    rh_postes_actifs = rh.Poste.objects.all()
 
     if 'implantation_id' in params and params.get('implantation_id') is not u"":
         implantation_id = params.get('implantation_id')
-        dae_ = dae_.filter(implantation__id=implantation_id)
         copies = copies.filter(implantation__id=implantation_id)
         rh_postes_actifs = rh_postes_actifs.filter(implantation__id=implantation_id)
 
@@ -688,7 +686,7 @@ def liste_postes(request):
     rhv1 = rh_postes_actifs.exclude(id__in=id_copies)
     rhv1 = rhv1.select_related(depth=1)
 
-    data = [('', 'Nouveau poste')] +  sorted([('dae-%s' % p.id, label_poste_display(p)) for p in dae_ | copies] + [('rh-%s' % p.id, label_poste_display(p)) for p in rhv1], key=lambda t: t[1])
+    data = [('', 'Nouveau poste')] +  sorted([('rh-%s' % p.id, label_poste_display(p)) for p in rhv1], key=lambda t: t[1])
     return HttpResponse(dumps(data))
 
 @login_required
@@ -797,8 +795,13 @@ def salaire(request, implantation, devise, classement):
     taux = rh.TauxChange.objects.filter(devise=devise).order_by('-annee')
     vp = rh.ValeurPoint.objects.filter(implantation=implantation, devise=devise) \
                                .order_by('-annee')
-    if vp.count() * taux.count() == 0:
-        raise Http404
+
+    if vp.count() == 0:
+        raise Exception(u"pas de valeur de point pour le couple\
+                implantation/devise (%s/%s)" % (implantation, devise))
+
+    if taux.count() == 0:
+        raise Exception(u"Pas de taux pour la devise %s" % devise)
 
     classement = get_object_or_404(rh.Classement, pk=classement)
     taux, vp = taux[0].taux, vp[0].valeur