1561: Pièces jointes dans le formulaire du candidat.
authornilovna.bascunan-vasquez <nilovna.bascunan-vasquez@localhost.localdomain>
Fri, 27 May 2011 17:21:48 +0000 (13:21 -0400)
committernilovna.bascunan-vasquez <nilovna.bascunan-vasquez@localhost.localdomain>
Fri, 27 May 2011 17:21:48 +0000 (13:21 -0400)
Ajout de listing

project/recrutement/admin.py

index 5d8ebdb..b276076 100644 (file)
@@ -8,6 +8,10 @@ class OffreEmploiAdmin(admin.ModelAdmin):
     list_display = ('nom', 'resume', 'date_limite',)
     list_filter = ('region',)
 
+class CandidatPieceInline(admin.TabularInline):
+    model = CandidatPiece
+    extra = 1
+
 class CandidatAdmin(admin.ModelAdmin):
     date_hierarchy = 'date_creation'
     list_display = ('nom', 'prenom', 'offre_emploi','statut',)
@@ -28,6 +32,9 @@ class CandidatAdmin(admin.ModelAdmin):
             'fields': ('actif', 'statut', )
         }),
     )
+    inlines = [
+        CandidatPieceInline,
+    ]
 
     def queryset(self, request):
         """
@@ -40,7 +47,18 @@ class CandidatAdmin(admin.ModelAdmin):
         return qs.select_related('offre_emploi')
 
 class CandidatPieceAdmin(admin.ModelAdmin):
-    pass
+    list_display = ('nom', 'candidat', )
+
+    def queryset(self, request):
+        """
+        Spécifie un queryset limité, autrement Django exécute un 
+        select_related() sans paramètre, ce qui a pour effet de charger tous 
+        les objets FK, sans limite 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.
+        """
+        qs = self.model._default_manager.get_query_set()
+        return qs.select_related('candidat')
 
 class EvaluateurAdmin(admin.ModelAdmin):
     pass