[#3355] Filtrer les postes vacants par région et implantation
authorEric Mc Sween <eric.mcsween@auf.org>
Thu, 21 Jun 2012 16:29:37 +0000 (12:29 -0400)
committerEric Mc Sween <eric.mcsween@auf.org>
Thu, 21 Jun 2012 16:29:37 +0000 (12:29 -0400)
project/rh/views.py

index 35406c5..21e8bf0 100644 (file)
@@ -386,23 +386,26 @@ def rapports_masse_salariale(request):
 
         # Récupérer les postes actifs pour déterminer le nombre de jours
         # vacants.
-        postes = list(
-            rh.Poste.objects.actifs(annee=annee)
-            .select_related(
-                'devise_max', 'valeur_point_max', 'classement_max'
-            )
-            .extra(
-                tables=['rh_tauxchange'],
-                where=[
-                    'rh_tauxchange.annee = %s',
-                    'rh_tauxchange.devise = rh_devise.id'
-                ],
-                params=[annee],
-                select={
-                    'taux_change': 'rh_tauxchange.taux'
-                }
-            )
-        )
+        postes = rh.Poste.objects.actifs(annee=annee) \
+                .select_related(
+                    'devise_max', 'valeur_point_max', 'classement_max'
+                ) \
+                .extra(
+                    tables=['rh_tauxchange'],
+                    where=[
+                        'rh_tauxchange.annee = %s',
+                        'rh_tauxchange.devise = rh_devise.id'
+                    ],
+                    params=[annee],
+                    select={
+                        'taux_change': 'rh_tauxchange.taux'
+                    }
+                )
+        if region:
+            postes = postes.filter(implantation__region=region)
+        if implantation:
+            postes = postes.filter(implantation=implantation)
+        postes = list(postes)
         postes_par_id = dict((poste.id, poste) for poste in postes)
         jours_vacants_date = dict(
             (poste.id, max(today, poste.date_debut or today))