merge statut postes
[auf_rh_dae.git] / project / dae / admin.py
index 032c395..993f38b 100644 (file)
@@ -14,6 +14,7 @@ from models import Poste, Dossier, DossierFinalise, PosteFinalise
 class PosteAdmin(VersionAdmin):
     list_display = ('nom', 'implantation', 'etat', )
 
+
 class DossierAdmin(VersionAdmin):
     list_display = ('_poste', '_implantation', 'employe', 'etat', )
     list_filter = ('etat', )
@@ -25,6 +26,7 @@ class DossierAdmin(VersionAdmin):
     def _implantation(self, obj):
         return obj.poste.implantation
 
+
 class ProxyDossierStatut(Dossier):
     class Meta:
         proxy = True
@@ -32,17 +34,20 @@ class ProxyDossierStatut(Dossier):
         verbose_name_plural = "Statut des dossiers"
 
 
-class StatutDossierForm(forms.ModelForm):
-    
+class ProxyPosteStatut(Poste):
+    class Meta:
+        proxy = True
+        verbose_name = "Statut du poste"
+        verbose_name_plural = "Statut des postes"
+
+
+class StatutForm(forms.ModelForm):
+
     commentaire = forms.CharField(label="Commentaire",
             widget=forms.widgets.Textarea())
 
-    class Meta:
-        model = ProxyDossierStatut
-        fields = ('etat', )
-
     def __init__(self, *args, **kwargs):
-        super(StatutDossierForm, self).__init__(*args, **kwargs)
+        super(StatutForm, self).__init__(*args, **kwargs)
         
         # On retire le controle check des états pour faire ce qu'on veut
         self._meta.model.__setattr__ = object.__setattr__
@@ -54,7 +59,7 @@ class StatutDossierForm(forms.ModelForm):
     
     def save(self, *args, **kwargs):
         # Le dossier se voit attribuée un commentaire WF verbeux
-        obj = super(StatutDossierForm, self).save(*args, **kwargs)
+        obj = super(StatutForm, self).save(*args, **kwargs)
         self.wf.content_object = obj
         self.wf.etat_final = obj.etat
         commentaire = u"%s => %s : %s" % (self.wf.etat_initial, self.wf.etat_final,
@@ -62,22 +67,23 @@ class StatutDossierForm(forms.ModelForm):
         self.wf.texte = commentaire
         self.wf.save()
         return obj
-        
 
-class DossierStatutAdmin(VersionAdmin):
-    search_fields = ('employe__nom', 'employe__prenom', 'poste__nom', )
-    list_display = ('_poste', '_implantation', 'employe', '_etat', )
-    form = StatutDossierForm
-    action = None
+class StatutDossierForm(StatutForm):
+    
+    class Meta:
+        model = ProxyDossierStatut
+        fields = ('etat', )
 
-    def _poste(self, obj):
-        return obj.poste.nom
 
-    def _implantation(self, obj):
-        return obj.poste.implantation
+class StatutPosteForm(StatutForm):
+    
+    class Meta:
+        model = ProxyPosteStatut
+        fields = ('etat', )
 
-    def _etat(self, obj):
-        return obj.get_etat_display()
+
+class StatutAdmin(VersionAdmin):
+    action = None
 
     def has_delete_permission(self, request, obj=None):
         return False
@@ -89,11 +95,33 @@ class DossierStatutAdmin(VersionAdmin):
         return request.user.is_superuser
 
     def get_form(self, request, obj=None, **kwargs):
-        form = super(DossierStatutAdmin, self).get_form(request,
+        form = super(StatutAdmin, self).get_form(request,
                 obj, **kwargs)
         form.user = request.user
         return form
 
+    def _etat(self, obj):
+        return obj.get_etat_display()
+
+
+class DossierStatutAdmin(StatutAdmin):
+    search_fields = ('employe__nom', 'employe__prenom', 'poste__nom', )
+    list_display = ('_poste', '_implantation', 'employe', '_etat', )
+    form = StatutDossierForm
+
+    def _poste(self, obj):
+        return obj.poste.nom
+
+    def _implantation(self, obj):
+        return obj.poste.implantation
+
+
+class PosteStatutAdmin(StatutAdmin):
+    search_fields = ('nom', )
+    list_display = ('nom', 'implantation', '_etat', )
+    form = StatutPosteForm
+
+
 class ImportAdmin(admin.ModelAdmin,):
 
     def has_delete_permission(self, request, obj=None):
@@ -132,8 +160,7 @@ class ImportDossierAdmin(ImportAdmin):
         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, ))
@@ -187,8 +214,10 @@ class ImportPosteAdmin(ImportAdmin):
                 url = reverse('admin:dae_postefinalise_changelist')
             return redirect(url)
 
+
 admin.site.register(Poste, PosteAdmin)
 admin.site.register(Dossier, DossierAdmin)
 admin.site.register(ProxyDossierStatut, DossierStatutAdmin)
+admin.site.register(ProxyPosteStatut, PosteStatutAdmin)
 admin.site.register(DossierFinalise, ImportDossierAdmin)
 admin.site.register(PosteFinalise, ImportPosteAdmin)