ajouté des inlines dans l'admin (#1555)
[auf_rh_dae.git] / project / rh / lib.py
CommitLineData
6e7c919b
NC
1# -*- encoding: utf-8 -*-
2
babf71ec 3from django.db import models
6e7c919b
NC
4from django.contrib import admin
5
babf71ec 6from project.rh import models as rh
6e7c919b 7
6e7c919b 8
babf71ec
NC
9class ReadonlyInlineMixin(object):
10 def get_readonly_fields(self, request, obj=None):
11 return [f.name for f in self.model._meta.fields]
6e7c919b 12
6e7c919b 13
babf71ec 14# Inlines
6e7c919b 15
babf71ec
NC
16class AyantDroitInline(admin.TabularInline):
17 model = models.Model # à remplacer dans admin.py
6e7c919b 18
54d04eed 19
babf71ec
NC
20class AyantDroitCommentaireInline(admin.TabularInline):
21 model = models.Model # à remplacer dans admin.py
6e7c919b 22
54d04eed 23
babf71ec
NC
24class ContratInline(admin.TabularInline):
25 model = models.Model # à remplacer dans admin.py
26
27
28class DossierROInline(ReadonlyInlineMixin, admin.TabularInline):
29 model = models.Model # à remplacer dans admin.py
30
31
32class DossierCommentaireInline(admin.TabularInline):
33 model = models.Model # à remplacer dans admin.py
34
35
36class DossierPieceInline(admin.TabularInline):
37 model = models.Model # à remplacer dans admin.py
38
39
40class EmployeInline(admin.TabularInline):
41 model = models.Model # à remplacer dans admin.py
42
43
44class EmployeCommentaireInline(admin.TabularInline):
45 model = models.Model # à remplacer dans admin.py
46
47
48class EmployePieceInline(admin.TabularInline):
49 model = models.Model # à remplacer dans admin.py
50
51
52class EvenementInline(admin.TabularInline):
53 model = models.Model # à remplacer dans admin.py
54
55
56class EvenementRemunerationInline(admin.TabularInline):
57 model = models.Model # à remplacer dans admin.py
58
59
60class PosteInline(admin.TabularInline):
61 model = models.Model # à remplacer dans admin.py
62
63
64class PosteCommentaireInline(admin.TabularInline):
65 model = models.Model # à remplacer dans admin.py
66
67
68class PosteFinancementInline(admin.TabularInline):
69 model = models.Model # à remplacer dans admin.py
70
71
72class PostePieceInline(admin.TabularInline):
73 model = models.Model # à remplacer dans admin.py
74
75
76class RemunerationInline(admin.TabularInline):
77 model = models.Model # à remplacer dans admin.py
78
79
80class RemunerationROInline(ReadonlyInlineMixin, RemunerationInline):
6e7c919b
NC
81 pass
82
54d04eed 83
babf71ec
NC
84class TypePosteInline(admin.TabularInline):
85 model = models.Model # à remplacer dans admin.py
86
87
88# Admins
89
90class AyantDroitAdmin(admin.ModelAdmin):
91 inlines = (AyantDroitCommentaireInline,)
92
93
94class AyantDroitCommentaireAdmin(admin.ModelAdmin):
6e7c919b
NC
95 pass
96
54d04eed 97
babf71ec 98class ClassementAdmin(admin.ModelAdmin):
6e7c919b
NC
99 pass
100
54d04eed 101
babf71ec 102class CommentaireAdmin(admin.ModelAdmin):
6e7c919b
NC
103 pass
104
54d04eed 105
babf71ec 106class ContratAdmin(admin.ModelAdmin):
6e7c919b
NC
107 pass
108
54d04eed 109
babf71ec 110class DeviseAdmin(admin.ModelAdmin):
6e7c919b
NC
111 pass
112
54d04eed 113
6e7c919b 114class DossierAdmin(admin.ModelAdmin):
54d04eed 115 list_display = ('_employe', '_poste')
babf71ec
NC
116 inlines = (DossierPieceInline, DossierCommentaireInline, ContratInline,
117 RemunerationInline, EvenementInline)
54d04eed
NC
118
119 def _poste(self, dossier):
120 return unicode(dossier.poste.nom)
121 _poste.short_description = u'Poste'
122
123 def _employe(self, dossier):
124 return unicode(dossier.employe)
125 _employe.short_description = u'Employé'
126
6e7c919b
NC
127
128class DossierPieceAdmin(admin.ModelAdmin):
129 pass
130
54d04eed 131
6e7c919b
NC
132class DossierCommentaireAdmin(admin.ModelAdmin):
133 pass
134
54d04eed 135
babf71ec
NC
136class EmployeAdmin(admin.ModelAdmin):
137 inlines = (AyantDroitInline,
138 DossierROInline,
139 EmployePieceInline,
140 EmployeCommentaireInline)
141
142
143class EmployeCommentaireAdmin(admin.ModelAdmin):
6e7c919b
NC
144 pass
145
54d04eed 146
babf71ec 147class EmployePieceAdmin(admin.ModelAdmin):
6e7c919b
NC
148 pass
149
54d04eed 150
6e7c919b 151class EvenementAdmin(admin.ModelAdmin):
babf71ec 152 inlines = (EvenementRemunerationInline,)
6e7c919b 153
54d04eed 154
6e7c919b
NC
155class EvenementRemunerationAdmin(admin.ModelAdmin):
156 pass
157
54d04eed 158
6e7c919b 159class FamilleEmploiAdmin(admin.ModelAdmin):
babf71ec 160 inlines = (TypePosteInline,)
6e7c919b 161
54d04eed 162
babf71ec
NC
163class OrganismeBstgAdmin(admin.ModelAdmin):
164 inlines = (DossierROInline,)
6e7c919b 165
54d04eed 166
babf71ec
NC
167class PosteAdmin(admin.ModelAdmin):
168 fieldsets = (
169 (None, {
170 'fields': ('nom', 'nom_feminin', 'implantation', 'type_poste',
171 'service', 'responsable')
172 }),
173 ('Contrat', {
174 'fields': ('regime_travail', 'regime_travail_nb_heure_semaine')
175 }),
176 ('Recrutement', {
177 'fields': ('local', 'expatrie', 'mise_a_disposition', 'appel')
178 }),
179 ('Rémunération', {
180 'fields': ('classement_min', 'classement_max', 'valeur_point_min',
181 'valeur_point_max', 'devise_min', 'devise_max',
182 'salaire_min', 'salaire_max', 'indemn_min',
183 'indemn_max', 'autre_min', 'autre_max')
184 }),
185 ('Comparatifs de rémunération', {
186 'fields': ('devise_comparaison', 'comp_locale_min',
187 'comp_locale_max', 'comp_universite_min',
188 'comp_universite_max', 'comp_fonctionpub_min',
189 'comp_fonctionpub_max', 'comp_ong_min', 'comp_ong_max',
190 'comp_autre_min', 'comp_autre_max')
191 }),
192 ('Justification', {
193 'fields': ('justification',)
194 }),
195 ('Autres Metadata', {
196 'fields': ('date_validation', 'date_debut', 'date_fin')
197 }),
198 )
6e7c919b 199
babf71ec
NC
200 inlines = (PosteFinancementInline,
201 PostePieceInline,
202 PosteCommentaireInline,
203 DossierROInline)
54d04eed 204
babf71ec
NC
205
206class PosteCommentaireAdmin(admin.ModelAdmin):
6e7c919b
NC
207 pass
208
54d04eed 209
babf71ec 210class PosteFinancementAdmin(admin.ModelAdmin):
6e7c919b
NC
211 pass
212
54d04eed 213
babf71ec 214class PostePieceAdmin(admin.ModelAdmin):
6e7c919b
NC
215 pass
216
54d04eed 217
babf71ec 218class RemunerationAdmin(admin.ModelAdmin):
6e7c919b
NC
219 pass
220
54d04eed 221
babf71ec 222class ResponsableImplantationAdmin(admin.ModelAdmin):
6e7c919b
NC
223 pass
224
54d04eed 225
babf71ec
NC
226class ServiceAdmin(admin.ModelAdmin):
227 inlines = (PosteInline,)
6e7c919b 228
54d04eed 229
babf71ec
NC
230class StatutAdmin(admin.ModelAdmin):
231 inlines = (EmployeInline,)
6e7c919b 232
54d04eed 233
babf71ec 234class TauxChangeAdmin(admin.ModelAdmin):
6e7c919b
NC
235 pass
236
54d04eed 237
6e7c919b 238class TypeContratAdmin(admin.ModelAdmin):
babf71ec 239 inlines = (ContratInline,)
54d04eed
NC
240
241
babf71ec
NC
242class TypePosteAdmin(admin.ModelAdmin):
243 inlines = (PosteInline,)
244
245
246class TypeRemunerationAdmin(admin.ModelAdmin):
247 inlines = (RemunerationROInline,)
248
249
250class TypeRevalorisationAdmin(admin.ModelAdmin):
251 inlines = (RemunerationROInline,)
252
253
254class ValeurPointAdmin(admin.ModelAdmin):
54d04eed 255 pass