b276076b279705752d363c0c7aabc4650b9c1056
[auf_rh_dae.git] / project / recrutement / admin.py
1 # -*- encoding: utf-8 -*-
2
3 from django.contrib import admin
4 from recrutement.models import *
5
6 class OffreEmploiAdmin(admin.ModelAdmin):
7 date_hierarchy = 'date_creation'
8 list_display = ('nom', 'resume', 'date_limite',)
9 list_filter = ('region',)
10
11 class CandidatPieceInline(admin.TabularInline):
12 model = CandidatPiece
13 extra = 1
14
15 class CandidatAdmin(admin.ModelAdmin):
16 date_hierarchy = 'date_creation'
17 list_display = ('nom', 'prenom', 'offre_emploi','statut',)
18 fieldsets = (
19 ('Informations personnelles', {
20 'fields': ('prenom','nom','genre', 'nationalite', 'date_naissance',
21 'situation_famille', 'nombre_dependant',)
22 }),
23 ('Adresse', {
24 'fields': ('adresse', 'ville', 'etat_province', 'pays', )
25 }),
26 ('Informations professionnelles', {
27 'fields': ('offre_emploi','niveau_diplome','employeur_actuel','poste_actuel',
28 'domaine_professionnel',)
29 }),
30 ('Options avancées', {
31 'classes': ('collapse',),
32 'fields': ('actif', 'statut', )
33 }),
34 )
35 inlines = [
36 CandidatPieceInline,
37 ]
38
39 def queryset(self, request):
40 """
41 Spécifie un queryset limité, autrement Django exécute un select_related()
42 sans paramètre, ce qui a pour effet de charger tous les objets FK, sans limite
43 de profondeur. Dès qu'on arrive, dans les modèles de Region, il existe plusieurs
44 boucles, ce qui conduit à la génération d'une requête infinie.
45 """
46 qs = self.model._default_manager.get_query_set()
47 return qs.select_related('offre_emploi')
48
49 class CandidatPieceAdmin(admin.ModelAdmin):
50 list_display = ('nom', 'candidat', )
51
52 def queryset(self, request):
53 """
54 Spécifie un queryset limité, autrement Django exécute un
55 select_related() sans paramètre, ce qui a pour effet de charger tous
56 les objets FK, sans limite de profondeur. Dès qu'on arrive, dans les
57 modèles de Region, il existe plusieurs boucles, ce qui conduit à la
58 génération d'une requête infinie.
59 """
60 qs = self.model._default_manager.get_query_set()
61 return qs.select_related('candidat')
62
63 class EvaluateurAdmin(admin.ModelAdmin):
64 pass
65
66 class CandidatEvaluationAdmin(admin.ModelAdmin):
67 pass
68
69 admin.site.register(OffreEmploi, OffreEmploiAdmin)
70 admin.site.register(Candidat, CandidatAdmin)
71 admin.site.register(CandidatPiece, CandidatPieceAdmin)
72 admin.site.register(Evaluateur, EvaluateurAdmin)
73 admin.site.register(CandidatEvaluation, CandidatEvaluationAdmin)