Correction des erreurs 404, lorsqu'aucun candidat ou offre d'emploi
authornilovna.bascunan-vasquez <nilovna.bascunan-vasquez@localhost.localdomain>
Fri, 10 Jun 2011 20:43:25 +0000 (16:43 -0400)
committernilovna.bascunan-vasquez <nilovna.bascunan-vasquez@localhost.localdomain>
Fri, 10 Jun 2011 20:43:25 +0000 (16:43 -0400)
project/recrutement/admin.py

index 7f490c1..366532b 100644 (file)
@@ -21,14 +21,13 @@ class OffreEmploiAdmin(VersionAdmin):
     _candidatsList.short_description = "Liste des candidats"   
 
     def get_form(self, request, obj=None, **kwargs):
-
         form = super(OffreEmploiAdmin, self).get_form(request, obj, **kwargs)
         if form.declared_fields.has_key('region'):
             region_field = form.declared_fields['region']
         else:
             region_field = form.base_fields['region']
 
-        user = get_object_or_404(UserProfile, user=request.user)
+        user = UserProfile.objects.get(user=request.user)
         region_ids = [g.id for g in user.regions.all()]
         region_field.queryset = Region.objects.filter(id__in=region_ids)
         return form
@@ -41,9 +40,13 @@ class OffreEmploiAdmin(VersionAdmin):
         modèles de Region, il existe plusieurs boucles, ce qui conduit à la 
         génération d'une requête infinie.
         """
-        user = get_object_or_404(UserProfile, user=request.user)
-        region_ids = [g.id for g in user.regions.all()]
         qs = self.model._default_manager.get_query_set()
+        try:
+            user = UserProfile.objects.get(user=request.user)
+        except UserProfile.DoesNotExist:
+            return qs.none()
+
+        region_ids = [g.id for g in user.regions.all()]
         return qs.select_related('offre_emploi').filter(region__in=region_ids)
 
 class CandidatPieceInline(admin.TabularInline):
@@ -107,9 +110,12 @@ class CandidatAdmin(VersionAdmin):
         """
 
         qs = self.model._default_manager.get_query_set()
-        user = get_object_or_404(UserProfile,user=obj.user)
+        try:
+            user = UserProfile.objects.get(user=obj.user)
+        except UserProfile.DoesNotExist:
+            return qs.none()      
+    
         ids = [c.id for c in user.candidats.all()]
-        #conditions try except, car sinon erreur
         return qs.select_related('candidats').filter(id__in=ids)
 
     def _actions(self, obj):