492455bb187dfa87bd12e8467e5e7dc6648cbaa8
[auf_rh_dae.git] / project / rh / lib.py
1 # -*- encoding: utf-8 -*-
2
3 from django.db import models
4 from django.contrib import admin
5
6 from project.rh import models as rh
7
8
9 class ReadonlyInlineMixin(object):
10 def get_readonly_fields(self, request, obj=None):
11 return [f.name for f in self.model._meta.fields]
12
13
14 # Inlines
15
16 class AyantDroitInline(admin.TabularInline):
17 model = models.Model # à remplacer dans admin.py
18
19
20 class AyantDroitCommentaireInline(admin.TabularInline):
21 model = models.Model # à remplacer dans admin.py
22
23
24 class ContratInline(admin.TabularInline):
25 model = models.Model # à remplacer dans admin.py
26
27
28 class DossierROInline(ReadonlyInlineMixin, admin.TabularInline):
29 model = models.Model # à remplacer dans admin.py
30
31
32 class DossierCommentaireInline(admin.TabularInline):
33 model = models.Model # à remplacer dans admin.py
34
35
36 class DossierPieceInline(admin.TabularInline):
37 model = models.Model # à remplacer dans admin.py
38
39
40 class EmployeInline(admin.TabularInline):
41 model = models.Model # à remplacer dans admin.py
42
43
44 class EmployeCommentaireInline(admin.TabularInline):
45 model = models.Model # à remplacer dans admin.py
46
47
48 class EmployePieceInline(admin.TabularInline):
49 model = models.Model # à remplacer dans admin.py
50
51
52 class EvenementInline(admin.TabularInline):
53 model = models.Model # à remplacer dans admin.py
54
55
56 class EvenementRemunerationInline(admin.TabularInline):
57 model = models.Model # à remplacer dans admin.py
58
59
60 class PosteInline(admin.TabularInline):
61 model = models.Model # à remplacer dans admin.py
62
63
64 class PosteCommentaireInline(admin.TabularInline):
65 model = models.Model # à remplacer dans admin.py
66
67
68 class PosteFinancementInline(admin.TabularInline):
69 model = models.Model # à remplacer dans admin.py
70
71
72 class PostePieceInline(admin.TabularInline):
73 model = models.Model # à remplacer dans admin.py
74
75
76 class RemunerationInline(admin.TabularInline):
77 model = models.Model # à remplacer dans admin.py
78
79
80 class RemunerationROInline(ReadonlyInlineMixin, RemunerationInline):
81 pass
82
83
84 class TypePosteInline(admin.TabularInline):
85 model = models.Model # à remplacer dans admin.py
86
87
88 # Admins
89
90 class AyantDroitAdmin(admin.ModelAdmin):
91 inlines = (AyantDroitCommentaireInline,)
92
93
94 class AyantDroitCommentaireAdmin(admin.ModelAdmin):
95 pass
96
97
98 class ClassementAdmin(admin.ModelAdmin):
99 pass
100
101
102 class CommentaireAdmin(admin.ModelAdmin):
103 pass
104
105
106 class ContratAdmin(admin.ModelAdmin):
107 pass
108
109
110 class DeviseAdmin(admin.ModelAdmin):
111 pass
112
113
114 class DossierAdmin(admin.ModelAdmin):
115 list_display = ('_employe', '_poste')
116 inlines = (DossierPieceInline, DossierCommentaireInline, ContratInline,
117 RemunerationInline, EvenementInline)
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
127
128 class DossierPieceAdmin(admin.ModelAdmin):
129 pass
130
131
132 class DossierCommentaireAdmin(admin.ModelAdmin):
133 pass
134
135
136 class EmployeAdmin(admin.ModelAdmin):
137 inlines = (AyantDroitInline,
138 DossierROInline,
139 EmployePieceInline,
140 EmployeCommentaireInline)
141
142
143 class EmployeCommentaireAdmin(admin.ModelAdmin):
144 pass
145
146
147 class EmployePieceAdmin(admin.ModelAdmin):
148 pass
149
150
151 class EvenementAdmin(admin.ModelAdmin):
152 inlines = (EvenementRemunerationInline,)
153
154
155 class EvenementRemunerationAdmin(admin.ModelAdmin):
156 pass
157
158
159 class FamilleEmploiAdmin(admin.ModelAdmin):
160 inlines = (TypePosteInline,)
161
162
163 class OrganismeBstgAdmin(admin.ModelAdmin):
164 inlines = (DossierROInline,)
165
166
167 class 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 )
199
200 inlines = (PosteFinancementInline,
201 PostePieceInline,
202 PosteCommentaireInline,
203 DossierROInline)
204
205
206 class PosteCommentaireAdmin(admin.ModelAdmin):
207 pass
208
209
210 class PosteFinancementAdmin(admin.ModelAdmin):
211 pass
212
213
214 class PostePieceAdmin(admin.ModelAdmin):
215 pass
216
217
218 class RemunerationAdmin(admin.ModelAdmin):
219 pass
220
221
222 class ResponsableImplantationAdmin(admin.ModelAdmin):
223 pass
224
225
226 class ServiceAdmin(admin.ModelAdmin):
227 inlines = (PosteInline,)
228
229
230 class StatutAdmin(admin.ModelAdmin):
231 inlines = (EmployeInline,)
232
233
234 class TauxChangeAdmin(admin.ModelAdmin):
235 pass
236
237
238 class TypeContratAdmin(admin.ModelAdmin):
239 inlines = (ContratInline,)
240
241
242 class TypePosteAdmin(admin.ModelAdmin):
243 inlines = (PosteInline,)
244
245
246 class TypeRemunerationAdmin(admin.ModelAdmin):
247 inlines = (RemunerationROInline,)
248
249
250 class TypeRevalorisationAdmin(admin.ModelAdmin):
251 inlines = (RemunerationROInline,)
252
253
254 class ValeurPointAdmin(admin.ModelAdmin):
255 pass