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