1505: Permissions régionales. Admins de chaque région peut créer des offre et consult...
authornilovna.bascunan-vasquez <nilovna.bascunan-vasquez@localhost.localdomain>
Fri, 3 Jun 2011 13:08:24 +0000 (09:08 -0400)
committernilovna.bascunan-vasquez <nilovna.bascunan-vasquez@localhost.localdomain>
Fri, 3 Jun 2011 13:08:24 +0000 (09:08 -0400)
project/recrutement/admin.py

index fe1990b..c4c2c35 100644 (file)
@@ -3,15 +3,19 @@
 from django.core.urlresolvers import reverse
 from django.http import HttpResponseRedirect
 from django.contrib import admin
+from django.shortcuts import get_object_or_404
+
 from reversion.admin import VersionAdmin
+from datamaster_modeles.models import Employe, Implantation, Region
 
 from recrutement.models import *
 
+
 class OffreEmploiAdmin(VersionAdmin):
     date_hierarchy = 'date_creation'
     list_display = ('nom', 'resume', 'date_limite', '_candidatsList', )
     list_filter = ('region',)
-
+        
     def _candidatsList(self, obj):     
         return "<a href='%s?offre_emploi__id__exact=%s'>Voir les candidats</a>" % (reverse('admin:recrutement_candidat_changelist'), obj.id)
     _candidatsList.allow_tags = True 
@@ -24,8 +28,13 @@ class OffreEmploiAdmin(VersionAdmin):
         de profondeur. Dès qu'on arrive, dans les modèles de Region, il existe plusieurs
         boucles, ce qui conduit à la génération d'une requête infinie.
         """
+        user_email = request.user.email
+        user = get_object_or_404(Employe, courriel=user_email)
+        user_implantation = user.implantation
+        implantation_region = get_object_or_404(Implantation, id=user_implantation.id)
+        user_region = get_object_or_404(Region, id=implantation_region.region.id)
         qs = self.model._default_manager.get_query_set()
-        return qs.select_related('offre_emploi')
+        return qs.select_related('offre_emploi').filter(region=user_region.id)
 
 class CandidatPieceInline(admin.TabularInline):
     model = CandidatPiece