from reversion.admin import VersionAdmin
from datamaster_modeles.models import Employe, Implantation, Region
+from django.forms.models import BaseInlineFormSet
from recrutement.models import *
from recrutement.workflow import grp_administrateurs_recrutement,\
return True
return False
-class ProxyCandidatPiece(CandidatPiece):
- class Meta:
- proxy = True
- verbose_name = "pièce jointe"
- verbose_name_plural = "pièces jointes"
-
-class CandidatPieceInline(admin.TabularInline):
- model = ProxyCandidatPiece
- fields = ('candidat', 'nom', 'path',)
- extra = 1
- max_num = 3
-
class ProxyEvaluateur(Evaluateur.candidats.through):
"""
Ce proxy sert uniquement dans l'admin à disposer d'un libellé
proxy = True
verbose_name = "évaluateur"
+class CandidatPieceInline(admin.TabularInline):
+ model = CandidatPiece
+ fields = ('candidat', 'nom', 'path',)
+ extra = 1
+ max_num = 3
+
class EvaluateurInline(admin.TabularInline):
model = ProxyEvaluateur
fields = ('evaluateur',)
extra = 1
+
+class CandidatEvaluationInlineFormSet(BaseInlineFormSet):
+ """
+ Empêche la suppression d'une évaluation pour le CandidatEvaluationInline
+ """
+ def __init__(self, *args, **kwargs):
+ super(CandidatEvaluationInlineFormSet, self).__init__(*args, **kwargs)
+ self.can_delete = False
+
+class CandidatEvaluationInline(admin.TabularInline):
+ model = CandidatEvaluation
+ fields = ('evaluateur', 'note', 'commentaire')
+ max_num = 0
+ extra = 0
+ formset = CandidatEvaluationInlineFormSet
+
+ def get_readonly_fields(self, request, obj=None):
+ """
+ Empêche la modification des évaluations
+ """
+ if obj:
+ return self.readonly_fields+('evaluateur', 'note', 'commentaire')
+ return self.readonly_fields
+
+
class CandidatAdmin(VersionAdmin):
date_hierarchy = 'date_creation'
list_display = ('nom', 'prenom', 'offre_emploi','statut',
inlines = [
CandidatPieceInline,
EvaluateurInline,
+ CandidatEvaluationInline,
]
actions = ['affecter_candidats_evaluateur', 'envoyer_courriel_candidats']
Assigner automatiquement l'évaluateurs d'une offre d'emploi à un
nouveau candidat.
"""
- import pdb;pdb.set_trace()
self.user.groups.add(grp_evaluateurs_recrutement)
super(Evaluateur, self).save(*args, **kwargs)
def __unicode__(self):
return '%s %s' % (self.user.first_name, self.user.last_name)
+#class ProxyCandidatEvaluation(CandidatEvaluation):
+# class Meta:
+# proxy = True
+
class CandidatEvaluation(models.Model):
candidat = models.ForeignKey(Candidat, db_column='candidat',
related_name='+',)
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)
+ commentaire = models.TextField(null=True, blank=True, default='Aucun')
date = models.DateField(auto_now_add=True,
help_text=HELP_TEXT_FORMAT_DATE, )