Correction des conflits
authorNilovna Bascunan-Vasquez <contact@nilovna.com>
Thu, 30 Jun 2011 20:37:02 +0000 (16:37 -0400)
committerNilovna Bascunan-Vasquez <contact@nilovna.com>
Thu, 30 Jun 2011 20:37:02 +0000 (16:37 -0400)
1  2 
project/recrutement/admin.py
project/recrutement/models.py

@@@ -24,12 -24,12 +24,12 @@@ class OffreEmploiAdmin(VersionAdmin)
      def queryset(self, request):
          """ 
          N'affiche la liste de candidats que si le user connecté 
 -        possède un UserProfile
 +        possède un Evaluateur
          """
          qs = self.model._default_manager.get_query_set()
          try:
 -            user = UserProfile.objects.get(user=request.user)
 -        except UserProfile.DoesNotExist:
 +            user = Evaluateur.objects.get(user=request.user)
 +        except Evaluateur.DoesNotExist:
              return qs.none()
          
          region_ids = [g.id for g in user.regions.all()]
@@@ -50,7 -50,7 +50,7 @@@ class CandidatPieceInline(admin.Tabular
      fields = ('candidat', 'nom', 'path', )
      extra = 1
  
 -class ProxyEvaluateur(UserProfile.candidats.through):
 +class ProxyEvaluateur(Evaluateur.candidats.through):
      """
      Ce proxy sert uniquement dans l'admin à disposer d'un libellé
      plus ergonomique.
@@@ -95,7 -95,7 +95,7 @@@ class CandidatAdmin(VersionAdmin)
          EvaluateurInline,
      ]
  
 -    actions = ['affecter_candidats_evaluateur', ] #'envoyer_courriel_candidats']
 +    actions = ['affecter_candidats_evaluateur', 'envoyer_courriel_candidats']
      # Affecter un évaluateurs à des candidats
      def affecter_candidats_evaluateur(modeladmin, obj, candidats):   
          selected = obj.POST.getlist(admin.ACTION_CHECKBOX_NAME)
                  "?ids=%s" % (",".join(selected)))
      affecter_candidats_evaluateur.short_description = u'Affecter évaluateur'
  
 -    # Affecter un évaluateurs à des candidats
 +    # Envoyer un courriel à des candidats
      def envoyer_courriel_candidats(modeladmin, obj, candidats):   
          selected = obj.POST.getlist(admin.ACTION_CHECKBOX_NAME)
  
      """    # Afficher note poster par l'évaluateur
      def note_evaluateur(self, obj):
          import pdb;pdb.set_trace()
 -        evaluateur = UserProfile.objects.get(user=obj.user)
 +        evaluateur = Evaluateur.objects.get(user=obj.user)
          import pdb;pdb.set_trace()
          note_eval = CandidatEvaluation.objects.filter(evaluateur=evaluateur, 
                          candidat=obj.user)
      def get_form(self, request, obj=None, **kwargs):
          """
          Affiche la liste des offres d'emploi, seulement si le user
 -        connecté possède un UserProfile
 +        connecté possède un Evaluateur
          """
          form = super(CandidatAdmin, self).get_form(request, obj, **kwargs)
          if form.declared_fields.has_key('offre_emploi'):
              region_field = form.base_fields['offre_emploi']
  
          try:
 -            user = UserProfile.objects.get(user=request.user)
 -        except UserProfile.DoesNotExist:
 +            user = Evaluateur.objects.get(user=request.user)
 +        except Evaluateur.DoesNotExist:
              region_field.queryset = region_field.queryset.none()
              return form  
  
  
          qs = self.model._default_manager.get_query_set()
          try:
 -            user = UserProfile.objects.get(user=obj.user)
 -        except UserProfile.DoesNotExist:
 +            user = Evaluateur.objects.get(user=obj.user)
 +        except Evaluateur.DoesNotExist:
              return qs.none()      
      
          ids = [c.id for c in user.candidats.all()]
@@@ -212,71 -212,38 +212,72 @@@ class CandidatPieceAdmin(admin.ModelAdm
          modèles de Region, il existe plusieurs boucles, ce qui conduit à la 
          génération d'une requête infinie.
          Affiche la liste de candidats que si le user connecté 
 -        possède un UserProfile
 +        possède un Evaluateur
          """
          qs = self.model._default_manager.get_query_set()
          return qs.select_related('candidat')
  
  class EvaluateurAdmin(VersionAdmin):
      fieldsets = (
 -        (None, {'fields': ('user', 'regions')}),
 +        (None, {'fields': ('user', )}),#'regions')}),
          (None, {'fields': ('candidats',)}),
      )
  
-     def get_form(self, request, obj=None, **kwargs):
++    '''def get_form(self, request, obj=None, **kwargs):
 +        """
 +        Affiche la liste des users, regions et candidats, seulement si le user
 +        connecté possède un Evaluateur
 +        """
 +        form = super(EvaluateurAdmin, self).get_form(request, obj, **kwargs)
 +        if form.declared_fields.has_key('user'):
 +            permission_field = form.declared_fields['user']
 +        else:
 +            permission_field = form.base_fields['user']
 +
 +        #if form.declared_fields.has_key('regions'):
 +        #    region_field = form.declared_fields['regions']
 +        #else:
 +        #    region_field = form.base_fields['regions']
 +
 +        if form.declared_fields.has_key('candidats'):
 +            candidats_field = form.declared_fields['candidats']
 +        else:
 +            candidats_field = form.base_fields['candidats']
 +
 +        try:
 +            user = Evaluateur.objects.get(user=request.user)
 +        except Evaluateur.DoesNotExist:
 +            #region_field.queryset = Region.objects.none()
 +            permission_field.queryset = Evaluateur.objects.none()
 +            candidats_field.queryset = Candidat.objects.none()
 +            return form
 +
 +        return form
++    '''
  
      def queryset(self, request):
          """ 
          Affiche la liste d'évaluateur que si le user connecté 
 -        possède un UserProfile
 +        possède un Evaluateur
          """
          qs = self.model._default_manager.get_query_set()
          try:
 -            user = UserProfile.objects.get(user=request.user)
 -        except UserProfile.DoesNotExist:
 +            user = Evaluateur.objects.get(user=request.user)
 +        except Evaluateur.DoesNotExist:
              return qs.none()
          
          return qs
  
 +class AdministrateurRegionalAdmin(VersionAdmin):
 +    pass
 +
  class CandidatEvaluationAdmin(VersionAdmin):
      list_display = ('candidat', 'evaluateur', 'note', 'commentaire', 'date', )
  
      def get_form(self, request, obj=None, **kwargs):
          """
          Affiche la liste des candidats et évaluateur, seulement si le user
 -        connecté possède un UserProfile
 +        connecté possède un Evaluateur
          """
          form = super(CandidatEvaluationAdmin, self).get_form(request, obj,
                  **kwargs)
              candidats_field = form.base_fields['candidat']
  
          try:
 -            user = UserProfile.objects.get(user=request.user)
 -        except UserProfile.DoesNotExist:
 -            evaluateur_field.queryset = UserProfile.objects.none()
 +            user = Evaluateur.objects.get(user=request.user)
 +        except Evaluateur.DoesNotExist:
 +            evaluateur_field.queryset = Evaluateur.objects.none()
              candidats_field.queryset = Candidat.objects.none()
              return form
  
      def queryset(self, request):
          """ 
          Affiche la liste d'évaluation que si le user connecté 
 -        possède un UserProfile
 +        possède un Evaluateur
          """
          qs = self.model._default_manager.get_query_set()
          try:
 -            user = UserProfile.objects.get(user=request.user)
 -        except UserProfile.DoesNotExist:
 +            user = Evaluateur.objects.get(user=request.user)
 +        except Evaluateur.DoesNotExist:
              return qs.none()
  
          return qs.select_related('candidat')
  
 +class CourrielTemplateAdmin(VersionAdmin):
 +    pass
 +
  admin.site.register(OffreEmploi, OffreEmploiAdmin)
  admin.site.register(Candidat, CandidatAdmin)
 -admin.site.register(UserProfile, EvaluateurAdmin)
 +admin.site.register(CourrielTemplate, CourrielTemplateAdmin)
 +admin.site.register(Evaluateur, EvaluateurAdmin)
 +admin.site.register(AdministrateurRegional, AdministrateurRegionalAdmin)
@@@ -44,7 -44,7 +44,7 @@@ class ProxyPoste(Poste)
          return '%s [%s]' % (self.nom, self.id)
  
  class OffreEmploi(Metadata):
 -    objects = OffreEmploiManager()
 +    #objects = OffreEmploiManager()
      nom = models.CharField(max_length=255)
      resume = models.TextField(verbose_name="Résumé")
      description = tinymce_models.HTMLField()
@@@ -159,36 -159,26 +159,36 @@@ class CandidatPiece(models.Model)
      def __unicode__(self):
          return '%s' % (self.nom)
  
 -class UserProfile(models.Model):
 +class Evaluateur(models.Model):
      user = models.ForeignKey(User, unique=True,
              verbose_name="permission")
      candidats = models.ManyToManyField(Candidat, verbose_name='candidats', 
                  blank=True, null=True,related_name="evaluateurs")
 +
 +    class Meta:
 +        verbose_name = "évaluateur"
 +
 +    def __unicode__(self):
 +        return '%s %s' % (self.user.first_name, self.user.last_name)
 +
 +class AdministrateurRegional(models.Model):
 +    user = models.ForeignKey(User, unique=True,
 +            verbose_name="permission")
      regions = models.ManyToManyField(ref.Region, 
                             verbose_name="Régions", )
  
      class Meta:
 -        verbose_name = "évaluateur"
 +        verbose_name = "administrateur régional"
 +        verbose_name_plural = "administrateurs régionaux"
  
      def __unicode__(self):
          return '%s %s' % (self.user.first_name, self.user.last_name)
  
 -UserProfile.profile = property(lambda u: UserProfile.objects.get_or_create(user=u)[0])
  
  class CandidatEvaluation(models.Model):
      candidat = models.ForeignKey(Candidat, db_column='candidat', 
                  related_name='+',) 
 -    evaluateur = models.ForeignKey(UserProfile, db_column='evaluateur', 
 +    evaluateur = models.ForeignKey(Evaluateur, db_column='evaluateur', 
                      related_name='+', verbose_name='Évaluateur') 
      note = models.IntegerField(choices=NOTES, blank=True, null=True)
      commentaire = models.TextField(null=True, blank=True)
          verbose_name = 'évaluation du candidat'
          verbose_name_plural = 'évaluations des candidats'
  
- ### TEMPLATE COURRIEL
+ #### TEMPLATE COURRIEL
  TEMPLATE_CHOICES = (
      ('SEL', 'Sélectionné'),
      ('REF', 'Refusé'),