masse salariale acces
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Fri, 1 Jun 2012 17:07:15 +0000 (13:07 -0400)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Fri, 1 Jun 2012 17:07:15 +0000 (13:07 -0400)
project/rh/test/rapport.py
project/rh/views.py

index 5cfc339..84fefc8 100644 (file)
@@ -39,7 +39,8 @@ class RapportContratTest(RhTest):
 
     def test_correspondant_rh(self):
         """
-        Un correspondant RH peut accéder à ce rapport
+        Un correspondant RH peut accéder à ce rapport limité aux dossiers de sa
+        région
         """
         self._test_correspondant_rh()
         self._test_acces_ok(self.url)
@@ -48,7 +49,8 @@ class RapportContratTest(RhTest):
 
     def test_administrateur_regional(self):
         """
-        Un administrateur peut accéder à ce rapport
+        Un administrateur peut accéder à ce rapport limité aux dossiers de sa
+        région
         """
         self._test_administrateur_regional()
         self._test_acces_ok(self.url)
@@ -57,7 +59,8 @@ class RapportContratTest(RhTest):
 
     def test_directeur_bureau(self):
         """
-        Un directeur de bureau peut accéder à ce rapport
+        Un directeur de bureau peut accéder à ce rapport limité aux dossiers de
+        sa région
         """
         self._test_directeur_bureau()
         self._test_acces_ok(self.url)
@@ -109,3 +112,83 @@ class RapportContratTest(RhTest):
         """
         self._test_grp_service_utilisateurs()
         self._test_acces_ko(self.url)
+
+
+class RapportMasseSalarialeTest(RhTest):
+    """
+    Test l'accès au rapport de masse salariale
+    """
+    url = reverse('rhr_masse_salariale')
+
+    def setUp(self):
+        super(RapportMasseSalarialeTest, self).setUp()
+
+    def test_anonyme(self):
+        """
+        Un anonyme ne peut pas accéder à ce rapport
+        """
+        self._test_anonyme()
+        self._test_acces_ko(self.url)
+
+    def test_correspondant_rh(self):
+        """
+        Un correspondant RH peut accéder à ce rapport
+        """
+        self._test_correspondant_rh()
+        self._test_acces_ok(self.url)
+
+    def test_administrateur_regional(self):
+        """
+        Un administrateur peut accéder à ce rapport
+        """
+        self._test_administrateur_regional()
+        self._test_acces_ok(self.url)
+
+    def test_directeur_bureau(self):
+        """
+        Un directeur de bureau peut accéder à ce rapport
+        """
+        self._test_directeur_bureau()
+        self._test_acces_ok(self.url)
+
+    def test_drh(self):
+        """
+        Un DRH peut accéder à ce rapport
+        """
+        self._test_drh()
+        self._test_acces_ok(self.url)
+
+    def test_drh2(self):
+        """
+        Un DRH (2ieme niveau) peut accéder à ce rapport
+        """
+        self._test_drh2()
+        self._test_acces_ok(self.url)
+
+    def _test_grp_accior(self):
+        """
+        Un membre de l'ACCIOR ne peut pas accéder à ce rapport
+        """
+        self._test_grp_accior()
+        self._test_acces_ko(self.url)
+
+    def _test_grp_abf(self):
+        """
+        Un membre de l'ABF ne peut pas accéder à ce rapport
+        """
+        self._test_grp_abf(self)
+        self._test_acces_ko(self.url)
+
+    def _test_grp_haute_direction(self):
+        """
+        Un membre de la haute direction ne peut pas accéder à ce rapport
+        """
+        self._test_grp_haute_direction()
+        self._test_acces_ko(self.url)
+
+    def _test_grp_service_utilisateurs(self):
+        """
+        Un membre du groupe service utilisateur ne peut pas accéder à ce rapport
+        """
+        self._test_grp_service_utilisateurs()
+        self._test_acces_ko(self.url)
index 915511f..50f533a 100644 (file)
@@ -254,15 +254,20 @@ def rapports_contrat(request):
 
 
 @login_required
-@drh_or_admin_required
+@in_one_of_group((groups.grp_correspondants_rh,
+    groups.grp_administrateurs,
+    groups.grp_directeurs_bureau,
+    groups.grp_drh,
+    groups.grp_drh2))
 def rapports_masse_salariale(request):
 
     class RechercheTemporelle(forms.Form):
-        CHOICE_ANNEES = range(
-            rh.Remuneration.objects.exclude(date_debut=None)
-            .order_by('date_debut')[0].date_debut.year,
-            date.today().year + 1
-        )
+        remunerations = rh.Remuneration.objects.exclude(date_debut=None)
+        if len(remunerations) > 0:
+            annee_debut = remunerations.order_by('date_debut')[0].date_debut.year
+        else:
+            annee_debut = 1982
+        CHOICE_ANNEES = range(annee_debut, date.today().year + 1)
 
         annee = forms.CharField(
             initial=date.today().year,