responsables implantation
[auf_rh_dae.git] / project / rh / admin.py
index 05123ef..ca4d9eb 100644 (file)
@@ -941,13 +941,45 @@ class RemunerationAdmin(admin.ModelAdmin):
     pass
 
 
-class ResponsableImplantationAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
-    fieldsets = AUFMetadataAdminMixin.fieldsets + (
-        (None, {
-            'fields': ('employe', 'implantation', ),
-        }),
-        )
+class ResponsableInline(admin.TabularInline):
+    model = rh.ResponsableImplantation
+    extra = 0
+    fk_name  = "implantation"
 
+class ResponsableImplantationAdmin(admin.ModelAdmin):
+    actions = None
+    list_filter = ('region', 'statut', )
+    list_display = ('nom', 'statut', '_responsable', )
+    readonly_fields = ('nom', )
+    fields = ('nom', )
+    inlines = (ResponsableInline, )
+
+    def _responsable(self, obj):
+        try:
+            employe = obj.responsable.employe
+            dossiers = employe.dossiers_encours()
+            if len(dossiers) == 0:
+                return u"<span style='color: red;'>%s %s </span>" % (
+                    employe, u"sans dossier actif")
+            else:
+                return employe
+        except Exception, e:
+            if obj.statut in (1, 2): # ouverte, ouverture imminente
+                css = "style='color: red;'"
+            else:
+                css = ""
+            return u"<span %s>Pas de responsable</span>" % css
+    _responsable.allow_tags = True
+    _responsable.short_description = u"Responsable"
+
+    def has_add_permission(self, request=None):
+        return False
+
+    def has_change_permission(self, request, obj=None):
+        return in_drh_or_admin(request.user)
+
+    def has_delete_permission(self, request, obj=None):
+        return False
 
 class ServiceAdmin(AUFMetadataAdminMixin, admin.ModelAdmin, ArchiveMixin):
     list_display = (
@@ -1196,7 +1228,7 @@ admin.site.register(rh.Employe, EmployeAdmin)
 admin.site.register(rh.FamilleEmploi, FamilleEmploiAdmin)
 admin.site.register(rh.OrganismeBstg, OrganismeBstgAdmin)
 admin.site.register(rh.Poste, PosteAdmin)
-admin.site.register(rh.ResponsableImplantation, ResponsableImplantationAdmin)
+admin.site.register(rh.ResponsableImplantationProxy, ResponsableImplantationAdmin)
 admin.site.register(rh.Service, ServiceAdmin)
 admin.site.register(rh.Statut, StatutAdmin)
 admin.site.register(rh.TauxChange, TauxChangeAdmin)