# -*- encoding: utf-8 -*-
import textwrap
- from django.core.urlresolvers import reverse
- from django.http import HttpResponseRedirect
+
+ from django.conf import settings
from django.contrib import admin
- from django.forms.models import BaseInlineFormSet
+ from django.core.urlresolvers import reverse
from django.db.models import Avg
- from django.conf import settings
+from django.shortcuts import render_to_response
+from django.template import RequestContext
+
- from reversion.admin import VersionAdmin
- from datamaster_modeles.models import Region, Bureau
- from project.rh import models as rh
+from auf.django.emploi.models import STATUT_CHOICES
+ from django.forms.models import BaseInlineFormSet
+ from django.http import HttpResponseRedirect
+ from django.shortcuts import redirect
+ from reversion.admin import VersionAdmin
+
+ from auf.django.emploi.models import OffreEmploi, Candidat, CandidatPiece
+ from auf.django.references.models import Region, Bureau
- from project.dae.utils import get_employe_from_user as get_emp
- from recrutement.models import *
- from recrutement.workflow import grp_drh_recrutement, grp_drh2_recrutement, \
- grp_directeurs_bureau_recrutement, \
- grp_administrateurs_recrutement, \
- grp_correspondants_rh_recrutement, \
- grp_haute_direction_recrutement
+ from project.groups import get_employe_from_user as get_emp
+ from project.rh import models as rh
- from recrutement.forms import *
+ from project.recrutement.forms import OffreEmploiForm
+ from project.recrutement.groups import \
+ grp_drh, grp_drh2, \
+ grp_directeurs_bureau, \
+ grp_administrateurs, \
+ grp_correspondants_rh, \
+ grp_haute_direction
+ from project.recrutement.models import \
+ Evaluateur, CandidatEvaluation, \
+ ProxyOffreEmploi, ProxyCandidat, MesCandidatEvaluation, \
+ CourrielTemplate
+
### CONSTANTES
IMPLANTATIONS_CENTRALES = [15, 19]
CandidatPieceInline,
CandidatEvaluationInline,
]
- actions = ['envoyer_courriel_candidats']
+ actions = ['envoyer_courriel_candidats', 'changer_statut']
def _candidat(self, obj):
- txt = u"%s %s (%s)" % ( obj.nom.upper(), obj.prenom,
- obj.genre)
+ txt = u"%s %s (%s)" % (obj.nom.upper(), obj.prenom, obj.genre)
txt = textwrap.wrap(txt, 30)
return "<br/>".join(txt)
_candidat.short_description = "Candidat"
return actions
### Envoyer un courriel à des candidats
- def envoyer_courriel_candidats(modeladmin, obj, candidats):
+ def envoyer_courriel_candidats(modeladmin, obj, candidats):
selected = obj.POST.getlist(admin.ACTION_CHECKBOX_NAME)
- return HttpResponseRedirect(reverse('selectionner_template')+
- "?ids=%s" % (",".join(selected)))
+ return HttpResponseRedirect(
+ reverse('selectionner_template') + "?ids=%s" % (",".join(selected))
+ )
envoyer_courriel_candidats.short_description = u'Envoyer courriel'
+ ### Changer le statut à des candidats
+ def changer_statut(modeladmin, request, queryset):
+ if request.POST.get('post'):
+ queryset.update(statut=request.POST.get('statut'))
+ return None
+
+ context = {
+ 'action_checkbox_name': admin.helpers.ACTION_CHECKBOX_NAME,
+ 'queryset': queryset,
+ 'status': STATUT_CHOICES,
+ }
+
+ return render_to_response("recrutement/selectionner_statut.html",
+ context, context_instance = RequestContext(request))
+
+ changer_statut.short_description = u'Changer statut'
+
### Évaluer un candidat
def evaluer_candidat(self, obj):
- return "<a href='%s?candidat__id__exact=%s'>Évaluer le candidat</a>" % \
- (reverse('admin:recrutement_candidatevaluation_changelist'),
- obj.id)
- evaluer_candidat.allow_tags = True
+ return "<a href='%s?candidat__id__exact=%s'>" \
+ "Évaluer le candidat</a>" % (
+ reverse('admin:recrutement_candidatevaluation_changelist'),
+ obj.id
+ )
+ evaluer_candidat.allow_tags = True
evaluer_candidat.short_description = 'Évaluation'
### Afficher un candidat