#2784
[auf_rh_dae.git] / project / rh / admin.py
index b609871..79b1c57 100644 (file)
@@ -19,6 +19,23 @@ from decorators import in_drh_or_admin
 import models as rh
 import auf.django.references.models as ref
 
+class ArchiveMixin(object):
+    """
+    Archive Mixin pour gérer le queryset et le display
+    NON COMPRIS : list_filter, et list_display, field à setter dans la classe.
+    """
+
+    def queryset(self, request):
+        return self.model._base_manager
+
+    def _archive(self, obj):
+        if obj.archive:
+            return "oui"
+        else:
+            return "non"
+    _archive.short_description = u'Archivé'
+    _archive.admin_order_field = 'archive'
+
 class RegionProxy(ref.Region):
     """ Proxy utilisé pour les organigrammes par région """
     class Meta:
@@ -250,7 +267,7 @@ class CommentaireAdmin(admin.ModelAdmin):
     pass
 
 
-class DeviseAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
+class DeviseAdmin(AUFMetadataAdminMixin, admin.ModelAdmin, ArchiveMixin):
     list_display = (
             'code',
             'nom',
@@ -265,16 +282,6 @@ class DeviseAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
         }),
     )
 
-    def queryset(self, request):
-        return self.model._base_manager
-
-    def _archive(self, obj):
-        if obj.archive:
-            return "oui"
-        else:
-            return "non"
-    _archive.short_description = u'Archivé'
-
     def _date_modification(self, obj):
         return date(obj.date_modification) \
                 if obj.date_modification is not None else "(aucune)"
@@ -892,7 +899,7 @@ class ResponsableImplantationAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
         )
 
 
-class ServiceAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
+class ServiceAdmin(AUFMetadataAdminMixin, admin.ModelAdmin, ArchiveMixin):
     list_display = (
             'nom',
             '_archive',
@@ -906,13 +913,6 @@ class ServiceAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
         }),
         )
 
-    def _archive(self, obj):
-        if obj.archive:
-            return "oui"
-        else:
-            return "non"
-    _archive.short_description = u'Archivé'
-
     def _date_modification(self, obj):
         return date(obj.date_modification) \
                 if obj.date_modification is not None else "(aucune)"
@@ -1016,15 +1016,18 @@ class TypePosteAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
     _date_modification.admin_order_field = 'date_modification'
 
 
-class TypeRemunerationAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
+class TypeRemunerationAdmin(AUFMetadataAdminMixin, admin.ModelAdmin, ArchiveMixin):
     list_display = (
             'nom',
             'type_paiement',
             'nature_remuneration',
+            '_archive',
             '_date_modification',
             'user_modification',)
+    list_filter = ('archive', )
     fieldsets = AUFMetadataAdminMixin.fieldsets + (
-        (None, {'fields': ('nom', 'type_paiement', 'nature_remuneration',)}),
+        (None, {'fields': ('nom', 'type_paiement', 'nature_remuneration',
+        'archive')}),
         )
 
     def _date_modification(self, obj):