def get_actions(self, request):
actions = super(OffreEmploiAdmin, self).get_actions(request)
del actions['delete_selected']
+ return actions
# Affecter un évaluateurs à des offres d'emploi
def affecter_evaluateurs_offre_emploi(modeladmin, obj, candidats):
return True
return False
-class ProxyEvaluateur(Evaluateur.candidats.through):
- """
+ """class ProxyEvaluateur(Evaluateur.candidats.through):
+
Ce proxy sert uniquement dans l'admin à disposer d'un libellé
plus ergonomique.
- """
+
class Meta:
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
)
inlines = [
CandidatPieceInline,
- EvaluateurInline,
CandidatEvaluationInline,
]
- actions = ['affecter_candidats_evaluateur', 'envoyer_courriel_candidats']
+ actions = ['envoyer_courriel_candidats']
def get_actions(self, request):
actions = super(CandidatAdmin, self).get_actions(request)
del actions['delete_selected']
-
- # Affecter un évaluateurs à des candidats
- 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 = u'Affecter évaluateur(s)'
+ return actions
# Envoyer un courriel à des candidats
def envoyer_courriel_candidats(modeladmin, obj, candidats):
class EvaluateurAdmin(VersionAdmin):
fieldsets = (
- (None, {'fields': ('user', )}),
- #(None, {'fields': ('candidats',)}),
+ ("Utilisateur", {
+ 'fields': ('user',)
+ }),
+ ("Offres d'emploi à évaluer", {
+ 'fields': ('offres_emploi',)
+ }),
)
def get_actions(self, request):
actions = super(EvaluateurAdmin, self).get_actions(request)
del actions['delete_selected']
+ return actions
class AdministrateurRegionalAdmin(VersionAdmin):
pass
def get_actions(self, request):
actions = super(CandidatEvaluationAdmin, self).get_actions(request)
del actions['delete_selected']
+ return actions
def _note(self, obj):
"""
def get_actions(self, request):
actions = super(CourrielTemplateAdmin, self).get_actions(request)
del actions['delete_selected']
+ return actions
admin.site.register(OffreEmploi, OffreEmploiAdmin)
admin.site.register(ProxyOffreEmploi, ProxyOffreEmploiAdmin)
recr.Evaluateur.objects.all())
def __init__(self, *args, **kwargs):
- self.candidats = kwargs.pop('candidats')
+ self.offres_emploi = kwargs.pop('offres_emploi')
super(EvaluateurForm, self).__init__(*args, **kwargs)
def save(self):
- for candidat in self.candidats:
+ candidats = recr.Candidat.objects.\
+ filter(offre_emploi__in=self.offres_emploi)
+ import pdb;pdb.set_trace()
+ for candidat in candidats:
for evaluateur in self.cleaned_data.get('evaluateurs', []):
candidat_evaluation = recr.CandidatEvaluation()
candidat_evaluation.candidat = candidat
candidat_evaluation.evaluateur = evaluateur
candidat_evaluation.save()
+
################################################################################
# OFFRE EMPLOI
class PostulerOffreEmploiForm(emploi.PostulerOffreEmploiForm):
pass
+"""class OffreEmploiForm(emploi.OffreEmploi):
+ def clean(self):
+ cleaned_data = self.cleaned_data
+ date_limite = cleaned_data.get("date_limite")
+ debut_affectation = cleaned_data.get("debut_affectation")
+
+ if date_limite and debut_affectation:
+ if date_limite > debut_affectation:
+ raise forms.ValidationError("La date limite doit être \
+ ultérieure à la date de début d'affectation.")
+ return cleaned_data
+"""
################################################################################
# TEMPLATE COURRIEL
################################################################################
def __unicode__(self):
return '%s [%s]' % (self.nom, self.id)
-class ProxyOffreEmploi(OffreEmploi):
+class ProxyOffreEmploi(emploi.OffreEmploi):
class Meta:
proxy = True
verbose_name = "Offre d'emploi (visualisation)"
class Evaluateur(models.Model):
user = models.ForeignKey(User, unique=True, verbose_name="Évaluateur")
- candidats = models.ManyToManyField(Candidat, through='CandidatEvaluation',
- related_name="evaluateurs")
+ offres_emploi = models.ManyToManyField(emploi.OffreEmploi,
+ related_name="evaluateurs", blank=True)
def save(self, *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='+',)
from forms import *
from models import *
-from project.recrutement import models as recr
from recrutement.workflow import grp_evaluateurs_recrutement
def index(request):
return render_to_response('recrutement/index.html', {},
RequestContext(request))
-def affecter_evaluateurs_candidats(request):
- candidat_ids = request.GET.get('ids').split(',')
- candidats = Candidat.objects.filter(id__in=candidat_ids)
- if request.method == "POST":
- form = EvaluateurForm(request.POST, candidats=candidats)
- if form.is_valid():
- form.save()
- messages.add_message(request, messages.SUCCESS,
- "Les évaluateurs ont été affectés aux candidats.")
- return redirect("admin:recrutement_candidat_changelist")
- else:
- form = EvaluateurForm(candidats=candidats)
-
- c = {'form' : form}
- return render_to_response("recrutement/affecter_evaluateurs.html",
- Context(c), context_instance = RequestContext(request))
-
def selectionner_template(request):
candidat_ids = request.GET.get('ids')
if request.method == "POST":
def affecter_evaluateurs_offre_emploi(request):
offre_emploi_ids = request.GET.get('ids').split(',')
offres_emploi = OffreEmploi.objects.filter(id__in=offre_emploi_ids)
- candidats = Candidat.objects.filter(offre_emploi__in=offres_emploi)
if request.method == "POST":
- form = EvaluateurForm(request.POST, candidats=candidats)
+ form = EvaluateurForm(request.POST, offres_emploi=offres_emploi)
if form.is_valid():
form.save()
messages.add_message(request, messages.SUCCESS,
- "Les évaluateurs ont été affectés aux candidats.")
+ "Les évaluateurs ont été affectés aux offres d'emploi.")
return redirect("admin:recrutement_offreemploi_changelist")
else:
- form = EvaluateurForm(candidats=candidats)
+ form = EvaluateurForm(offres_emploi=offres_emploi)
c = {'form' : form}
return render_to_response("recrutement/affecter_evaluateurs.html",
(r'^deconnexion/$', 'django.contrib.auth.views.logout'),
(r'^dae/', include('project.dae.urls')),
(r'^recrutement/', include('project.recrutement.urls')),
- url(r'^recrutement/affecter_evaluateurs_candidats/$',
- 'recrutement.views.affecter_evaluateurs_candidats',
- name='affecter_evaluateurs_candidats'),
url(r'^recrutement/affecter_evaluateurs_offre_emploi/$',
'recrutement.views.affecter_evaluateurs_offre_emploi',
name='affecter_evaluateurs_offre_emploi'),
from tinymce import models as tinymce_models
from django.db import models
import settings
-#from private_files import PrivateFileField
import datamaster_modeles.models as ref
from django.template import Context, RequestContext, Template
from django.core.mail import EmailMultiAlternatives
-from forms import *
-from models import *
-from project.recrutement import models as recr
+from auf.django.emploi import models
+from auf.django.emploi import forms
def postuler_appel_offre(request):
vars = dict()