list_display contrat #1542
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Mon, 11 Jul 2011 18:40:54 +0000 (14:40 -0400)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Mon, 11 Jul 2011 18:40:54 +0000 (14:40 -0400)
project/rh/lib.py
project/rh/models.py

index fc351c8..eba434f 100644 (file)
@@ -150,7 +150,12 @@ class CommentaireAdmin(admin.ModelAdmin):
 
 
 class ContratAdmin(admin.ModelAdmin):
-    pass
+    search_fields = ('dossier__employe__nom', 'dossier__employe__prenom', )
+    list_display = ('id', 'dossier', '_poste', )
+
+    def _poste(self, obj):
+        return obj.dossier.poste
+    _poste.short_description = "Poste"
 
 
 class DeviseAdmin(admin.ModelAdmin):
index a410f9b..e5bcfd4 100644 (file)
@@ -594,12 +594,20 @@ class Remuneration(Remuneration_):
 
 
 ### CONTRATS
+
+class ContratManager(NoDeleteManager):
+    def get_query_set(self):
+        return super(ContratManager, self).get_query_set().select_related('dossier', 'dossier__poste')
+
         
 class Contrat(AUFMetadata):
     """Document juridique qui encadre la relation de travail d'un Employe
     pour un Poste particulier. Pour un Dossier (qui documente cette 
     relation de travail) plusieurs contrats peuvent être associés.
     """
+
+    objects = ContratManager()
+
     dossier = models.ForeignKey('Dossier', db_column='dossier', 
                             related_name='+')
     type_contrat = models.ForeignKey('TypeContrat', db_column='type_contrat',