poste import + liens dans RH
[auf_rh_dae.git] / project / dae / admin.py
index d5bee3b..27fd94a 100644 (file)
@@ -7,7 +7,7 @@ from django.contrib import messages
 from django.shortcuts import redirect
 from reversion.admin import VersionAdmin
 from auf.django.workflow.models import WorkflowCommentaire
 from django.shortcuts import redirect
 from reversion.admin import VersionAdmin
 from auf.django.workflow.models import WorkflowCommentaire
-from models import Poste, Dossier, DossierFinalise
+from models import Poste, Dossier, DossierFinalise, PosteFinalise
 
 class PosteAdmin(VersionAdmin):
     list_display = ('nom', 'implantation', 'etat', )
 
 class PosteAdmin(VersionAdmin):
     list_display = ('nom', 'implantation', 'etat', )
@@ -92,24 +92,7 @@ class DossierStatutAdmin(VersionAdmin):
         form.user = request.user
         return form
 
         form.user = request.user
         return form
 
-
-class ImportDossierAdmin(admin.ModelAdmin):
-    list_display = ('_poste', '_employe', '_dae', )
-    actions = ['importer_dans_RH', ]
-
-    def _employe(self, obj):
-        return obj.employe
-
-    def _poste(self, obj):
-        return obj.poste.nom
-
-    def _implantation(self, obj):
-        return obj.poste.implantation
-
-    def _dae(self, obj):
-        url = reverse('embauche_consulter', args=(obj.id, ))
-        return "<a href='%s'>voir la DAE</a>" % url
-    _dae.allow_tags = True
+class ImportAdmin(admin.ModelAdmin,):
 
     def has_delete_permission(self, request, obj=None):
         return False
 
     def has_delete_permission(self, request, obj=None):
         return False
@@ -124,10 +107,37 @@ class ImportDossierAdmin(admin.ModelAdmin):
             return False
 
     def get_actions(self, request):
             return False
 
     def get_actions(self, request):
-        actions = super(ImportDossierAdmin, self).get_actions(request)
+        actions = super(ImportAdmin, self).get_actions(request)
         del actions['delete_selected']
         return actions
 
         del actions['delete_selected']
         return actions
 
+
+class ImportDossierAdmin(ImportAdmin):
+    list_display = ('_poste', '_employe', '_dae', )
+    actions = ['importer_dans_RH', ]
+
+    def _employe(self, obj):
+        return obj.employe
+
+    def _poste(self, obj):
+        rh = obj.poste.rh_importation()
+        if rh is not None:
+            extra = u"<a href='%s' style='color: red;'> (déjà importé)</a>" % \
+                reverse('admin:rh_poste_change', args=(rh.id,))
+        else:
+            extra = u""
+
+        return u"%s%s" % (obj.poste.nom, extra)
+    _poste.allow_tags = True
+
+    def _implantation(self, obj):
+        return obj.poste.implantation
+
+    def _dae(self, obj):
+        url = reverse('embauche_consulter', args=(obj.id, ))
+        return "<a href='%s'>voir la DAE</a>" % url
+    _dae.allow_tags = True
+
     def importer_dans_RH(self, request, data):
         selected = request.POST.getlist(admin.ACTION_CHECKBOX_NAME)
         dae = [d for d in Dossier.objects.filter(id__in=selected)]
     def importer_dans_RH(self, request, data):
         selected = request.POST.getlist(admin.ACTION_CHECKBOX_NAME)
         dae = [d for d in Dossier.objects.filter(id__in=selected)]
@@ -138,7 +148,31 @@ class ImportDossierAdmin(admin.ModelAdmin):
             url = reverse('admin:rh_dossier_change', args=(copie.id, ))
             return redirect(url)
 
             url = reverse('admin:rh_dossier_change', args=(copie.id, ))
             return redirect(url)
 
+
+class ImportPosteAdmin(ImportAdmin):
+    list_display = ('nom', '_implantation', '_dae', )
+    actions = ['importer_dans_RH', ]
+
+    def _implantation(self, obj):
+        return obj.implantation
+
+    def _dae(self, obj):
+        url = reverse('poste_consulter', args=(obj.id, ))
+        return "<a href='%s'>voir le poste dans DAE</a>" % url
+    _dae.allow_tags = True
+
+    def importer_dans_RH(self, request, data):
+        selected = request.POST.getlist(admin.ACTION_CHECKBOX_NAME)
+        dae = [d for d in Poste.objects.filter(id__in=selected)]
+        for p in dae:
+            copie = p.importer()
+            messages.add_message(request, messages.SUCCESS, u"%s importé dans\
+                    RH" % d)
+            url = reverse('admin:rh_poste_change', args=(copie.id, ))
+            return redirect(url)
+
 admin.site.register(Poste, PosteAdmin)
 admin.site.register(Dossier, DossierAdmin)
 admin.site.register(ProxyDossierStatut, DossierStatutAdmin)
 admin.site.register(DossierFinalise, ImportDossierAdmin)
 admin.site.register(Poste, PosteAdmin)
 admin.site.register(Dossier, DossierAdmin)
 admin.site.register(ProxyDossierStatut, DossierStatutAdmin)
 admin.site.register(DossierFinalise, ImportDossierAdmin)
+admin.site.register(PosteFinalise, ImportPosteAdmin)