Poste : liste dans admin + occupe_par() + is_vacant()
[auf_rh_dae.git] / project / rh / lib.py
index 2a90a28..a6376b1 100644 (file)
@@ -490,8 +490,27 @@ class OrganismeBstgAdmin(AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelA
 
 class PosteAdmin(AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelAdmin):
     alphabet_filter = 'nom'
 
 class PosteAdmin(AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelAdmin):
     alphabet_filter = 'nom'
-    search_fields = ('nom', 'implantation__code', 'implantation__nom', 'implantation__region__code', 'implantation__region__nom', )
-    list_display = ('nom', 'implantation', 'service', 'type_poste', 'date_debut', 'date_fin', )
+    search_fields = ('nom', 
+        'implantation__code', 
+        'implantation__nom', 
+        'implantation__region__code', 
+        'implantation__region__nom',
+        )
+    list_display = ('nom', 
+        '_occupe_par',
+        'implantation', 
+        'service', 
+        'type_poste', 
+        'date_debut', 
+        'date_fin',
+        'date_modification',
+        'user_modification',
+        )
+    list_filter = ('service', 
+        'implantation__region', 
+        'implantation__adresse_physique_pays', 
+        'implantation',
+        )
     fieldsets = AUFMetadataAdminMixin.fieldsets + (
         (None, {
             'fields': (('nom', 'nom_feminin'), 'implantation', 'type_poste',
     fieldsets = AUFMetadataAdminMixin.fieldsets + (
         (None, {
             'fields': (('nom', 'nom_feminin'), 'implantation', 'type_poste',
@@ -532,6 +551,22 @@ class PosteAdmin(AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelAdmin):
                DossierROInline,
                PosteCommentaireInline, )
 
                DossierROInline,
                PosteCommentaireInline, )
 
+    def _occupe_par(self, obj):
+        """Formatte la méthode Poste.occupe_par() pour l'admin"""
+        output = "VACANT"
+        employes = obj.occupe_par()
+        if employes:
+            l = []
+            for e in employes:
+                link = "<a href='%s'>%s</a>" % \
+                    (reverse('admin:rh_employe_change', args=(e.id,)),
+                     e)
+                l.append(link)
+            output = "\n<br />".join(l)
+        return output
+    _occupe_par.allow_tags = True
+    _occupe_par.short_description = "Occupé par"   
+
     def save_formset(self, request, form, formset, change):
         instances = formset.save(commit=False)
         for instance in instances:
     def save_formset(self, request, form, formset, change):
         instances = formset.save(commit=False)
         for instance in instances: