# Affecter un évaluateurs à des candidats
actions = ['affecter_candidats_evaluateur']
- def affecter_candidats_evaluateur(modeladmin, obj):
+ def affecter_candidats_evaluateur(modeladmin, obj, candidats):
+
selected = obj.POST.getlist(admin.ACTION_CHECKBOX_NAME)
+
return HttpResponseRedirect(reverse('affecter_evaluateurs_candidats')+
"?ids=%s" % (",".join(selected)))
affecter_candidats_evaluateur.short_description = "Affecter evaluateur"
modèles de Region, il existe plusieurs boucles, ce qui conduit à la
génération d'une requête infinie.
"""
+
qs = self.model._default_manager.get_query_set()
- return qs.select_related('offre_emploi')
+ user = get_object_or_404(User,user=obj.user)
+ ids = [c.id for c in user.candidats.all()]
+ return qs.select_related('candidats').filter(id__in=ids)
def _actions(self, obj):
return "<a href='%s?id=%s'>Voir l'offre d'emploi</a> \
class PostulerOffreEmploiForm(ModelForm):
def __init__(self, *args, **kwargs):
- self.offre_emploi = kwargs.pop('offre_emploi')
- #import pdb;pdb.set_trace()
+ self.offre_emploi = kwargs.pop('offre_emploi')
super(PostulerOffreEmploiForm, self).__init__(*args, **kwargs)
def save(self):
class User(models.Model):
user = models.ForeignKey("auth.User", unique=True)
- candidats = models.ManyToManyField(Candidat, verbose_name='Candidats', blank=True, null=True,)
+ candidats = models.ManyToManyField(Candidat, verbose_name='Candidats',
+ blank=True, null=True,related_name="evaluateurs")
regions = models.ManyToManyField(ref.Region,
verbose_name="Régions", )
+ def __unicode__(self):
+ return '%s %s' % (self.user.first_name, self.user.last_name)
+
User.profile = property(lambda u: User.objects.get_or_create(user=u)[0])
class CandidatEvaluation(models.Model):
RequestContext(request))
def evaluer_candidat(request):
+
candidat = get_object_or_404(Candidat, id__in=request.GET.get('id'))
-
if request.method == "POST":
candidat_evaluation = CandidatEvaluation()
candidat_evaluation.candidat = candidat
def affecter_evaluateurs_candidats(request):
candidat_ids = request.GET.get('ids').split(',')
- candidats = get_object_or_404(Candidat, id__in=candidat_ids)
+ candidats = Candidat.objects.filter(id__in=candidat_ids)
if request.method == "POST":
form = EvaluateurForm(request.POST, candidats=candidats)
if form.is_valid():
candidat.offre_emploi = offre_emploi
if request.method == "POST":
- form = PostulerOffreEmploiForm(request.POST, request.FILES, instance=candidat, offre_emploi=offre_emploi)
- piecesForm = CandidatPieceForm(request.POST, request.FILES, instance=candidat)
- #import pdb;pdb.set_trace()
+ form = PostulerOffreEmploiForm(request.POST, request.FILES,
+ instance=candidat, offre_emploi=offre_emploi)
+ piecesForm = CandidatPieceForm(request.POST, request.FILES,
+ instance=candidat)
if form.is_valid() and piecesForm.is_valid():
form.save()
messages.add_message(request, messages.SUCCESS,
été effectuée.")
return redirect("admin:recrutement_offreemploi_changelist")
else:
- form = PostulerOffreEmploiForm(instance=candidat, offre_emploi=offre_emploi)
+ form = PostulerOffreEmploiForm(instance=candidat,
+ offre_emploi=offre_emploi)
piecesForm = CandidatPieceForm(instance=candidat)
vars.update(dict(form=form, candidat=candidat, piecesForm=piecesForm, ))