Fixes for permission, and runtime bug when adding comparison
authorBenoit C. Sirois <benoit.clennett-sirois@auf.org>
Wed, 27 Feb 2013 21:25:03 +0000 (16:25 -0500)
committerBenoit C. Sirois <benoit.clennett-sirois@auf.org>
Wed, 27 Feb 2013 21:25:03 +0000 (16:25 -0500)
project/dae/catalogues.py
project/dae/views.py
project/rh/catalogues.py
project/settings.py

index d52ad55..ba52e46 100644 (file)
@@ -96,7 +96,7 @@ class Dossier(object):
             q_filtre = q_recherche
         else:
             q_filtre = q_place & q_recherche
-        return rh.Dossier.objects.filter(q_filtre).distinct()
+        return rh.Dossier.objects.ma_region_ou_service(request.user).filter(q_filtre).distinct()
 
     def format_result(self, dossier):
         return dossier.__unicode__()
@@ -133,21 +133,25 @@ class Poste(object):
                     ))
               ))
 
-        if groups.is_user_dans_services_centraux(request.user):
-            q_place = Q(**{prefixe_implantation: employe.implantation})
-        else:
-            q_place = Q(**{
-                prefixe_implantation + '__zone_administrative':
-                employe.implantation.zone_administrative
-            })
+        # if groups.is_user_dans_services_centraux(request.user):
+        #     q_place = Q(**{prefixe_implantation: employe.implantation})
+        # else:
+        #     q_place = Q(**{
+        #         prefixe_implantation + '__zone_administrative':
+        #         employe.implantation.zone_administrative
+        #     })
 
-        user_groupes = [g.name for g in request.user.groups.all()]
-        if groups.DRH_NIVEAU_1 in user_groupes or \
-           groups.DRH_NIVEAU_2 in user_groupes:
-            q_filtre = q_recherche
-        else:
-            q_filtre = q_place & q_recherche
-        return rh.Dossier.objects.filter(q_filtre).order_by('-date_debut')
+
+        # user_groupes = [g.name for g in request.user.groups.all()]
+        # if groups.DRH_NIVEAU_1 in user_groupes or \
+        #    groups.DRH_NIVEAU_2 in user_groupes:
+        #     q_filtre = q_recherche
+        # else:
+        #     q_filtre = q_place & q_recherche
+
+        q_filtre = q_recherche
+
+        return rh.Dossier.objects.ma_region_ou_service(request.user).filter(q_filtre).order_by('-date_debut')
 
     def format_result(self, dossier):
         annee = dossier.date_debut.year
index d8118c0..a57b2f2 100644 (file)
@@ -345,7 +345,7 @@ def filtered_type_remun():
 
 @dae_groupe_requis
 @dossier_dans_ma_region_ou_service
-def embauche_consulter(request, dossier_id):
+def embauche_consulter(request, dossier_id):    
     dossier = get_object_or_404(dae.Dossier, pk=dossier_id)
     etat_precedent = dossier.etat
 
@@ -491,15 +491,15 @@ def embauche(request, key=None, dossier_id=None):
             for comparaison in zip(
                 comparaisons,
                 comparaisons_formset.forms):
-                dossier = rh.Dossier.objects.get(
+                rhdossier = rh.Dossier.objects.get(
                     id=comparaison[1].cleaned_data['cmp_dossier'])
 
                 # Get all remunerations for a period of 1 year,
-                # going back from either: today (if dossier has not
-                # yet ended), or from dossier's date_fin.
-                cmp_date = min(dossier.date_fin or date.today(), date.today())
+                # going back from either: today (if cdossier has not
+                # yet ended), or from cdossier's date_fin.
+                cmp_date = min(rhdossier.date_fin or date.today(), date.today())
                 for remuneration in _filter_remunerations(
-                    dossier.remunerations().order_by('-date_debut'),
+                    rhdossier.remunerations().order_by('-date_debut'),
                     only_traitement=False,
                     ):
                     dae.DossierComparaisonRemuneration.objects.create(
@@ -517,6 +517,7 @@ def embauche(request, key=None, dossier_id=None):
                 request, "Le dossier %s a été sauvegardé." % dossier
             )
             if 'save' in request.POST:
+                import pdb; pdb.set_trace()
                 return redirect('embauche_consulter', dossier_id=dossier.id)
             else:
                 return redirect(
index efb8a03..90f0204 100644 (file)
@@ -145,7 +145,7 @@ class Employe(object):
 class Dossier(object):
 
     def get_query(self, q, request):
-        dossiers = rh.Dossier.objects.filter(
+        return rh.Dossier.objects.ma_region_ou_service(request.user).filter(
             (Q(poste__nom=q) | Q(poste__type_poste__nom=q) |
              Q(employe__nom__icontains=q) | Q(employe__prenom__icontains=q) |
              Q(employe__nom_affichage__icontains=q)) &
index bd4769b..912a13c 100644 (file)
@@ -130,7 +130,7 @@ ADMIN_TOOLS_MENU = 'project.menu.CustomMenu'
 
 AJAX_LOOKUP_CHANNELS = {
     'responsables': ('project.dae.catalogues', 'Responsable'),
-    'dossiers': ('project.dae.catalogues', 'Dossier'),
+    'dae_dossiers': ('project.dae.catalogues', 'Dossier'),
     'dae_postes': ('project.dae.catalogues', 'Poste'),
     'pays': ('project.rh.catalogues', 'Pays'),
     'implantations': ('project.rh.catalogues', 'Implantation'),