Merge branch 'dev' of ssh://git.auf/auf_rh_dae into dev
[auf_rh_dae.git] / project / rh / admin.py
index 3be2715..609ab41 100644 (file)
@@ -22,6 +22,12 @@ from groups import grp_correspondants_rh
 from decorators import in_drh_or_admin
 
 
+class BaseAdmin(admin.ModelAdmin):
+
+    class Media:
+        css = {'screen': ('css/admin_custom.css',)}
+
+
 class ArchiveMixin(object):
     """
     Archive Mixin pour gérer le queryset et le display
@@ -256,7 +262,7 @@ class PosteComparaisonInline(AUFMetadataInlineAdminMixin, admin.TabularInline):
     model = rh.PosteComparaison
 
 
-class ClassementAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
+class ClassementAdmin(AUFMetadataAdminMixin, BaseAdmin):
     list_display = ('_classement', '_date_modification', 'user_modification', )
     fieldsets = AUFMetadataAdminMixin.fieldsets + (
         (None, {
@@ -274,11 +280,7 @@ class ClassementAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
     _date_modification.admin_order_field = 'date_modification'
 
 
-class CommentaireAdmin(admin.ModelAdmin):
-    pass
-
-
-class DeviseAdmin(AUFMetadataAdminMixin, admin.ModelAdmin, ArchiveMixin):
+class DeviseAdmin(AUFMetadataAdminMixin, BaseAdmin, ArchiveMixin):
     list_display = (
             'code',
             'nom',
@@ -300,8 +302,8 @@ class DeviseAdmin(AUFMetadataAdminMixin, admin.ModelAdmin, ArchiveMixin):
     _date_modification.admin_order_field = 'date_modification'
 
 
-class DossierAdmin(DateRangeMixin, AUFMetadataAdminMixin, \
-        ProtectRegionMixin, admin.ModelAdmin, AjaxSelect,):
+class DossierAdmin(DateRangeMixin, AUFMetadataAdminMixin,
+                   ProtectRegionMixin, BaseAdmin, AjaxSelect):
     alphabet_filter = 'employe__nom'
     search_fields = (
         'id',
@@ -480,16 +482,8 @@ class DossierAdmin(DateRangeMixin, AUFMetadataAdminMixin, \
             instance.save()
 
 
-class DossierPieceAdmin(admin.ModelAdmin):
-    pass
-
-
-class DossierCommentaireAdmin(admin.ModelAdmin):
-    pass
-
-
-class EmployeAdmin(DateRangeMixin, AUFMetadataAdminMixin, \
-        ProtectRegionMixin, admin.ModelAdmin,):
+class EmployeAdmin(DateRangeMixin, AUFMetadataAdminMixin,
+                   ProtectRegionMixin, BaseAdmin):
     prefixe_recherche_temporelle = "rh_dossiers__"
     alphabet_filter = 'nom'
     DEFAULT_ALPHABET = u'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
@@ -672,15 +666,7 @@ class EmployeProxyAdmin(EmployeAdmin):
     _organigramme.short_description = "Organigramme"
 
 
-class EmployeCommentaireAdmin(admin.ModelAdmin):
-    pass
-
-
-class EmployePieceAdmin(admin.ModelAdmin):
-    pass
-
-
-class CategorieEmploiAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
+class CategorieEmploiAdmin(AUFMetadataAdminMixin, BaseAdmin):
     list_display = ('nom', '_date_modification', 'user_modification', )
     inlines = (TypePosteInline,)
     fieldsets = AUFMetadataAdminMixin.fieldsets + (
@@ -693,7 +679,7 @@ class CategorieEmploiAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
     _date_modification.admin_order_field = 'date_modification'
 
 
-class OrganismeBstgAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
+class OrganismeBstgAdmin(AUFMetadataAdminMixin, BaseAdmin):
     search_fields = ('nom',)
     list_display = (
             'nom',
@@ -715,8 +701,8 @@ class OrganismeBstgAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
     _date_modification.admin_order_field = 'date_modification'
 
 
-class PosteAdmin(DateRangeMixin, AUFMetadataAdminMixin, \
-        ProtectRegionMixin, admin.ModelAdmin, AjaxSelect,):
+class PosteAdmin(DateRangeMixin, AUFMetadataAdminMixin,
+                 ProtectRegionMixin, BaseAdmin, AjaxSelect):
     form = make_ajax_form(rh.Poste, {
         'implantation': 'implantations',
         'type_poste': 'typepostes',
@@ -878,8 +864,8 @@ class PosteAdmin(DateRangeMixin, AUFMetadataAdminMixin, \
             responsable = ''
 
         try:
-            employe = obj.responsable.rh_dossiers.all()[0]
-            employe_id = obj.responsable.rh_dossiers.all()[0].id
+            dossier = obj.responsable.rh_dossiers.all().order_by('-date_debut')[0]
+            employe_id = dossier.employe.id
             employe_html = u"""<br />
                     <a href="%s"
                        onclick="return showAddAnotherPopup(this)">
@@ -890,7 +876,7 @@ class PosteAdmin(DateRangeMixin, AUFMetadataAdminMixin, \
                     (reverse('employe_apercu', args=(employe_id,)),
                      settings.STATIC_URL,
                      reverse('admin:rh_employe_change', args=(employe_id,)),
-                     employe)
+                     dossier.employe)
         except:
             employe_html = ""
 
@@ -951,29 +937,13 @@ class PosteAdmin(DateRangeMixin, AUFMetadataAdminMixin, \
         formset.save_m2m()
 
 
-class PosteCommentaireAdmin(admin.ModelAdmin):
-    pass
-
-
-class PosteFinancementAdmin(admin.ModelAdmin):
-    pass
-
-
-class PostePieceAdmin(admin.ModelAdmin):
-    fk_name = 'poste'
-
-
-class RemunerationAdmin(admin.ModelAdmin):
-    pass
-
-
 class ResponsableInline(admin.TabularInline):
     model = rh.ResponsableImplantation
     extra = 0
     fk_name = "implantation"
 
 
-class ResponsableImplantationAdmin(admin.ModelAdmin):
+class ResponsableImplantationAdmin(BaseAdmin):
     actions = None
     list_filter = ('region', 'statut', )
     list_display = ('_region', '_nom', 'statut', '_responsable', )
@@ -1019,7 +989,7 @@ class ResponsableImplantationAdmin(admin.ModelAdmin):
         return False
 
 
-class ServiceAdmin(AUFMetadataAdminMixin, admin.ModelAdmin, ArchiveMixin):
+class ServiceAdmin(AUFMetadataAdminMixin, BaseAdmin, ArchiveMixin):
     list_display = (
             'nom',
             '_archive',
@@ -1066,7 +1036,7 @@ class ServiceProxyAdmin(ServiceAdmin):
     _organigramme.short_description = "Organigramme"
 
 
-class StatutAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
+class StatutAdmin(AUFMetadataAdminMixin, BaseAdmin):
     list_display = ('code', 'nom', '_date_modification', 'user_modification', )
     fieldsets = AUFMetadataAdminMixin.fieldsets + (
         (None, {
@@ -1081,7 +1051,7 @@ class StatutAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
     _date_modification.admin_order_field = 'date_modification'
 
 
-class TauxChangeAdmin(admin.ModelAdmin):
+class TauxChangeAdmin(BaseAdmin):
     list_display = (
             'taux',
             'devise',
@@ -1103,7 +1073,7 @@ class TauxChangeAdmin(admin.ModelAdmin):
     _date_modification.admin_order_field = 'date_modification'
 
 
-class TypeContratAdmin(admin.ModelAdmin):
+class TypeContratAdmin(BaseAdmin):
     list_display = (
             'nom',
             'nom_long',
@@ -1123,7 +1093,7 @@ class TypeContratAdmin(admin.ModelAdmin):
     _date_modification.admin_order_field = 'date_modification'
 
 
-class TypePosteAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
+class TypePosteAdmin(AUFMetadataAdminMixin, BaseAdmin):
     search_fields = ('nom', 'nom_feminin', )
     list_display = (
             'nom',
@@ -1151,7 +1121,7 @@ class TypePosteAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
     _date_modification.admin_order_field = 'date_modification'
 
 
-class TypeRemunerationAdmin(AUFMetadataAdminMixin, admin.ModelAdmin,
+class TypeRemunerationAdmin(AUFMetadataAdminMixin, BaseAdmin,
                             ArchiveMixin):
     list_display = (
             'nom',
@@ -1173,7 +1143,7 @@ class TypeRemunerationAdmin(AUFMetadataAdminMixin, admin.ModelAdmin,
     _date_modification.admin_order_field = 'date_modification'
 
 
-class TypeRevalorisationAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
+class TypeRevalorisationAdmin(AUFMetadataAdminMixin, BaseAdmin):
     list_display = ('nom', '_date_modification', 'user_modification', )
     fieldsets = AUFMetadataAdminMixin.fieldsets + (
         (None, {'fields': ('nom', )}),
@@ -1186,7 +1156,7 @@ class TypeRevalorisationAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
     _date_modification.admin_order_field = 'date_modification'
 
 
-class ValeurPointAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
+class ValeurPointAdmin(AUFMetadataAdminMixin, BaseAdmin):
     list_display = (
             '_devise_code',
             '_devise_nom',
@@ -1216,7 +1186,7 @@ class ValeurPointAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
     _devise_nom.short_description = "Nom de la devise"
 
 
-class ImplantationProxyAdmin(admin.ModelAdmin):
+class ImplantationProxyAdmin(BaseAdmin):
     list_display = ('nom', '_organigramme')
     actions = None
 
@@ -1238,7 +1208,7 @@ class ImplantationProxyAdmin(admin.ModelAdmin):
     _organigramme.short_description = "Organigramme"
 
 
-class RegionProxyAdmin(admin.ModelAdmin):
+class RegionProxyAdmin(BaseAdmin):
     list_display = ('nom', '_organigramme')
     actions = None