1625: Mettre l'attribut "Offre emploi" tout en haut du formulaire.
[auf_rh_dae.git] / project / recrutement / admin.py
index 366532b..2962d7f 100644 (file)
@@ -63,6 +63,9 @@ class CandidatAdmin(VersionAdmin):
                     'evaluer_candidat', )
     list_filter = ('offre_emploi', )
     fieldsets = (
+        ("Offre d'emploi", {
+            'fields': ('offre_emploi', )
+        }),
         ('Informations personnelles', {
             'fields': ('prenom','nom','genre', 'nationalite', 'date_naissance',
                         'situation_famille', 'nombre_dependant',)        
@@ -71,7 +74,7 @@ class CandidatAdmin(VersionAdmin):
             'fields': ('adresse', 'ville', 'etat_province', 'pays', )
         }),
         ('Informations professionnelles', {
-            'fields': ('offre_emploi','niveau_diplome','employeur_actuel', 
+            'fields': ('niveau_diplome','employeur_actuel', 
                         'poste_actuel', 'domaine_professionnel',)
         }),  
         ('Options avancées', {
@@ -100,6 +103,23 @@ class CandidatAdmin(VersionAdmin):
     evaluer_candidat.allow_tags = True    
     evaluer_candidat.short_description = "Évaluer"
 
+    def get_form(self, request, obj=None, **kwargs):
+        form = super(CandidatAdmin, self).get_form(request, obj, **kwargs)
+        if form.declared_fields.has_key('offre_emploi'):
+            region_field = form.declared_fields['offre_emploi']
+        else:
+            region_field = form.base_fields['offre_emploi']
+
+        try:
+            user = UserProfile.objects.get(user=request.user)
+        except UserProfile.DoesNotExist:
+            region_field.queryset = region_field.queryset.none()
+            return form  
+
+        region_ids = [g.id for g in user.regions.all()]
+        region_field.queryset = Region.objects.filter(id__in=region_ids)
+        return form
+
     def queryset(self, obj):
         """
         Spécifie un queryset limité, autrement Django exécute un