retrait de actif
[auf_rh_dae.git] / project / rh / admin.py
index 97993a2..2005bd9 100644 (file)
@@ -16,6 +16,8 @@ from forms import ContratForm, AyantDroitForm, EmployeAdminForm, AjaxSelect
 from dae.utils import get_employe_from_user
 from groups import grp_drh
 import models as rh
+import filters
+
 
 # Override of the InlineModelAdmin to support the link in the tabular inline
 class LinkedInline(admin.options.InlineModelAdmin):
@@ -186,7 +188,7 @@ class CommentaireAdmin(admin.ModelAdmin):
 
 
 class DeviseAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
-    list_display = ('code', 'nom', 'date_modification', 'user_modification', 'actif', )
+    list_display = ('code', 'nom', 'date_modification', 'user_modification', )
     fieldsets = AUFMetadataAdminMixin.fieldsets + (
         (None, {
             'fields': ('code', 'nom', ),
@@ -205,7 +207,6 @@ class DossierAdmin(AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelAdmin,
         '_date_fin',
         'date_modification',
         'user_modification',
-        'actif',
     )
     list_filter = (
         'poste__implantation__region',
@@ -213,7 +214,8 @@ class DossierAdmin(AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelAdmin,
         'poste__type_poste',
         'poste__type_poste__famille_emploi',
         'rh_contrats__type_contrat',
-        'actif',
+        'date_debut',
+        'date_fin',
     )
     inlines = (DossierPieceInline, ContratInline,
                RemunerationInline,
@@ -242,12 +244,15 @@ class DossierAdmin(AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelAdmin,
     def lookup_allowed(self, key, value):
         if key in (
             'employe__nom__istartswith',
-            'actif__exact',
             'poste__implantation__region__id__exact',
             'poste__implantation__id__exact',
             'poste__type_poste__id__exact',
             'poste__type_poste__famille_emploi__id__exact',
             'rh_contrats__type_contrat__id__exact',
+            'date_debut__gte',
+            'date_debut__isnull',
+            'date_fin__lte',
+            'date_fin__isnull',
             ):
             return True
 
@@ -268,16 +273,6 @@ class DossierAdmin(AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelAdmin,
     _id.admin_order_field = 'id'
     
 
-    def _actif(self, dossier):
-        if dossier.employe.actif:
-          html = """<img alt="True" src="%simg/admin/icon-yes.gif">"""
-        else:
-          html = """<img alt="False" src="%simg/admin/icon-no.gif">"""
-        return html % settings.ADMIN_MEDIA_PREFIX 
-    _actif.allow_tags = True
-    _actif.short_description = u'Employé actif'
-    _actif.admin_order_field = 'employe__actif'
-
     def _date_debut(self, obj):
         return date(obj.date_debut)
 
@@ -306,12 +301,8 @@ class DossierAdmin(AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelAdmin,
         view_link = reverse('employe_apercu', args=(employe.id,))
         edit_link = reverse('admin:rh_employe_change', args=(employe.id,))
 
-        if employe.actif == False:
-            style = "color: grey";
-            view = ""
-        else:
-            style = ""
-            view = u"""<a href="%s" title="Aperçu l'employé" onclick="return showAddAnotherPopup(this);"><img src="%simg/loupe.png" /></a>""" % (view_link, settings.STATIC_URL,)
+        style = ""
+        view = u"""<a href="%s" title="Aperçu l'employé" onclick="return showAddAnotherPopup(this);"><img src="%simg/loupe.png" /></a>""" % (view_link, settings.STATIC_URL,)
         return u"""%s<a href='%s' style="%s;">[%s] %s %s</a>""" % \
         (view, edit_link, style, employe.id, employe.nom.upper(), employe.prenom.title())
     _employe.allow_tags = True
@@ -341,8 +332,8 @@ class EmployeAdmin(AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelAdmin):
     search_fields = ('id', 'nom', 'prenom', 'nom_affichage', )
     ordering = ('nom', )
     form = EmployeAdminForm
-    list_display = ('_apercu', '_nom', '_dossiers', 'date_modification',  'user_modification', 'actif',)
-    list_filter = ('rh_dossiers__poste__implantation__region',  'rh_dossiers__poste__implantation', 'nb_postes', 'actif', )
+    list_display = ('_apercu', '_nom', '_dossiers', 'date_modification',  'user_modification', )
+    list_filter = ('rh_dossiers__poste__implantation__region',  'rh_dossiers__poste__implantation', 'nb_postes', )
     inlines = (AyantDroitInline,
                DossierROInline,
                EmployePieceInline,
@@ -421,7 +412,7 @@ class EmployePieceAdmin(admin.ModelAdmin):
 
 
 class FamilleEmploiAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
-    list_display = ('nom', 'date_modification', 'user_modification', 'actif', )
+    list_display = ('nom', 'date_modification', 'user_modification', )
     inlines = (TypePosteInline,)
     fieldsets = AUFMetadataAdminMixin.fieldsets + ( 
         (None, {
@@ -432,7 +423,7 @@ class FamilleEmploiAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
 
 class OrganismeBstgAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
     search_fields = ('nom',)
-    list_display = ('nom', 'type', 'pays', 'date_modification', 'user_modification', 'actif', )
+    list_display = ('nom', 'type', 'pays', 'date_modification', 'user_modification', )
     list_filter = ('type', )
     inlines = (DossierROInline,)
     fieldsets = AUFMetadataAdminMixin.fieldsets + ( 
@@ -467,15 +458,16 @@ class PosteAdmin(AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelAdmin, Aj
         'date_fin',
         'date_modification',
         'user_modification',
-        'actif',
         )
-    list_filter = ('service', 
+    list_filter = (
+        'service', 
         'implantation__region', 
         'implantation',
         'type_poste',
         'type_poste__famille_emploi',
+        'date_debut',
+        'date_fin',
         'vacant',
-        'actif',
         )
     fieldsets = AUFMetadataAdminMixin.fieldsets + (
         (None, {
@@ -515,6 +507,15 @@ class PosteAdmin(AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelAdmin, Aj
                PosteComparaisonInline,
                PosteCommentaireInline, )
 
+    def lookup_allowed(self, key, value):
+        if key in (
+            'date_debut__gte',
+            'date_debut__isnull',
+            'date_fin__lte',
+            'date_fin__isnull',
+            ):
+            return True
+
     
     def _apercu(self, poste):
         link = u"""<a onclick="return showAddAnotherPopup(this);" title="Aperçu du poste" href='%s'><img src="%simg/loupe.png" /> %s</a>""" % \
@@ -543,7 +544,7 @@ class PosteAdmin(AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelAdmin, Aj
     def _occupe_par(self, obj):
         """Formatte la méthode Poste.occupe_par() pour l'admin"""
         output = u"Vacant"
-        if obj.actif is False:
+        if obj.date_fin is not None and obj.date_fin < datetime.datetime.now():
             return u"s/o"
         employes = obj.occupe_par()
         if employes:
@@ -596,7 +597,7 @@ class ResponsableImplantationAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
     
 
 class ServiceAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
-    list_display = ('nom', 'date_modification', 'user_modification', 'actif', )
+    list_display = ('nom', 'date_modification', 'user_modification', )
     fieldsets = AUFMetadataAdminMixin.fieldsets + ( 
         (None, {
             'fields': ('nom', ),
@@ -604,7 +605,7 @@ class ServiceAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
         )
 
 class StatutAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
-    list_display = ('code', 'nom', 'date_modification', 'user_modification', 'actif', )
+    list_display = ('code', 'nom', 'date_modification', 'user_modification', )
     fieldsets = AUFMetadataAdminMixin.fieldsets + ( 
         (None, {
             'fields': ('code', 'nom', ),
@@ -621,7 +622,7 @@ class TauxChangeAdmin(admin.ModelAdmin):
         )
 
 class TypeContratAdmin(admin.ModelAdmin):
-    list_display = ('nom', 'nom_long', 'date_modification', 'user_modification', 'actif', )
+    list_display = ('nom', 'nom_long', 'date_modification', 'user_modification', )
     fieldsets = AUFMetadataAdminMixin.fieldsets + ( 
         (None, {
             'fields': ('nom', 'nom_long', ),
@@ -631,7 +632,7 @@ class TypeContratAdmin(admin.ModelAdmin):
 
 class TypePosteAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
     search_fields = ('nom', 'nom_feminin', )
-    list_display = ('nom', 'famille_emploi', 'date_modification', 'user_modification', 'actif', )
+    list_display = ('nom', 'famille_emploi', 'date_modification', 'user_modification', )
     list_filter = ('famille_emploi', )
     fieldsets = AUFMetadataAdminMixin.fieldsets + ( 
         (None, {
@@ -641,7 +642,7 @@ class TypePosteAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
 
 
 class TypeRemunerationAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
-    list_display = ('nom', 'type_paiement', 'nature_remuneration', 'date_modification', 'user_modification', 'actif', )
+    list_display = ('nom', 'type_paiement', 'nature_remuneration', 'date_modification', 'user_modification', )
     fieldsets = AUFMetadataAdminMixin.fieldsets + ( 
         (None, {
             'fields': ('nom', 'type_paiement', 'nature_remuneration', )
@@ -650,7 +651,7 @@ class TypeRemunerationAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
 
 
 class TypeRevalorisationAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
-    list_display = ('nom', 'date_modification', 'user_modification', 'actif', )
+    list_display = ('nom', 'date_modification', 'user_modification', )
     fieldsets = AUFMetadataAdminMixin.fieldsets + ( 
         (None, {
             'fields': ('nom', )