From 2f78949d6bc45bbbf6c7a65a9d526513b453be90 Mon Sep 17 00:00:00 2001 From: "nilovna.bascunan-vasquez" Date: Tue, 31 May 2011 17:56:04 -0400 Subject: [PATCH] =?utf8?q?1551:=20Ajouter=20un=20lien=20vers=20la=20liste=20?= =?utf8?q?des=20candidatures=20li=C3=A9es=20=C3=A0=20une=20offre=20d'emploi.?= =?utf8?q?=20Correction?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- project/recrutement/admin.py | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/project/recrutement/admin.py b/project/recrutement/admin.py index 9a73c0e..a74162e 100644 --- a/project/recrutement/admin.py +++ b/project/recrutement/admin.py @@ -9,16 +9,23 @@ from recrutement.models import * class OffreEmploiAdmin(admin.ModelAdmin): date_hierarchy = 'date_creation' - list_display = ('nom', 'resume', 'date_limite', )#'_actions', - #'_tousCandidats') + list_display = ('nom', 'resume', 'date_limite', '_candidatsList', ) list_filter = ('region',) -# def _tousCandidats(self, request): -# return OffreEmploi.candidats.through + def _candidatsList(self, request): + return "Voir les candidats" % (reverse('admin:recrutement_candidat_changelist'), request.id) + _candidatsList.allow_tags = True + _candidatsList.short_description = "Liste des candidats" -# def _actions(self, request): -# return "Voir le candidat" % (reverse('admin:recrutement_candidat_changelist'), request.id) -# _actions.allow_tags = True + 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('offre_emploi') class CandidatPieceInline(admin.TabularInline): model = CandidatPiece @@ -31,6 +38,7 @@ class EvaluateurInline(admin.TabularInline): class CandidatAdmin(admin.ModelAdmin): date_hierarchy = 'date_creation' list_display = ('nom', 'prenom', 'offre_emploi','statut', '_actions') + list_filter = ('offre_emploi',) fieldsets = ( ('Informations personnelles', { 'fields': ('prenom','nom','genre', 'nationalite', 'date_naissance', @@ -73,6 +81,7 @@ class CandidatAdmin(admin.ModelAdmin): def _actions(self, request): return "Voir l'offre d'emploi" % (reverse('admin:recrutement_offreemploi_changelist'), request.offre_emploi.id) _actions.allow_tags = True + _actions.short_description = "Offre d'emploi" class CandidatPieceAdmin(admin.ModelAdmin): list_display = ('nom', 'candidat', ) -- 1.7.10.4