class OffreEmploiAdmin(admin.ModelAdmin):
date_hierarchy = 'date_creation'
- list_display = ('nom', 'resume', 'date_limite',)
+ list_display = ('nom', 'resume', 'date_limite', )#'_actions',
+ #'_tousCandidats')
list_filter = ('region',)
+# def _tousCandidats(self, request):
+# return OffreEmploi.candidats.through
+
+# def _actions(self, request):
+# return "<a href='%s?id=%s'>Voir le candidat</a>" % (reverse('admin:recrutement_candidat_changelist'), request.id)
+# _actions.allow_tags = True
+
class CandidatPieceInline(admin.TabularInline):
model = CandidatPiece
extra = 1
EvaluateurInline,
]
+ # Affecter un évaluateurs à des candidats
+ actions = ['affecter_candidats_evaluateur']
+ def affecter_candidats_evaluateur(modeladmin, request, queryset):
+ selected = request.POST.getlist(admin.ACTION_CHECKBOX_NAME)
+ return HttpResponseRedirect(reverse('affecter_evaluateurs_candidats')+"?ids=%s" % (",".join(selected)))
+ affecter_candidats_evaluateur.short_description = "Affecter evaluateur"
+
def queryset(self, request):
"""
Spécifie un queryset limité, autrement Django exécute un select_related()
from django.core.files.storage import FileSystemStorage
from django.db import models
import settings
+#from private_files import PrivateFileField
import datamaster_modeles.models as ref
from project.rh import models as rh
-
# Abstracts
class Metadata(models.Model):
"""Méta-données AUF.
candidat = models.ForeignKey(Candidat, db_column='candidat',
related_name='+')
nom = models.CharField(max_length=255)
+ #path = PrivateFileField("file", upload_to=candidat_piece_dispatch)
path = models.FileField(upload_to=candidat_piece_dispatch,
storage=storage_prive)
return '%s' % (self.nom)
class Evaluateur(models.Model):
- candidats = models.ManyToManyField(Candidat)
+ candidats = models.ManyToManyField(Candidat, verbose_name='Dossiers',
+ related_name="evaluateurs", blank=True, null=True,)
nom = models.CharField(max_length=255)
prenom = models.CharField(max_length=255)
evaluateur = models.ForeignKey(Evaluateur, db_column='evaluateur',
related_name='+')
note = models.IntegerField()
- commentaire = models.TextField()
+ commentaire = models.TextField(null=True, blank=True)
date = models.DateField(auto_now_add=True)
# -*- encoding: utf-8 -*-
from django.shortcuts import redirect, render_to_response, get_object_or_404
+from django.http import HttpResponse
+from django.contrib import messages
+from django.template import Context, RequestContext
+from django.shortcuts import render_to_response, redirect
from django.template import RequestContext
+from forms import *
+from models import *
from project.recrutement import models as recr
def index(request):
- return render_to_response('recrutement/index.html', {}, RequestContext(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))
from django.conf import settings
from django.contrib import admin
+
admin.autodiscover()
handler500 # Pyflakes
urlpatterns = patterns(
'',
(r'^$', 'project.views.index'),
+ #url(r'^private_files/', include('private_files.urls')),
url(r'^admin_tools/', include('admin_tools.urls')),
(r'^admin/', include(admin.site.urls)),
(r'^connexion/$', 'django.contrib.auth.views.login'),
(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'),
(r'^', include('project.rh.urls')),
(r'^prive/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.PRIVE_MEDIA_ROOT}),
)