From 4418c732fb89c53a5cf5987fb89e167a168f85b1 Mon Sep 17 00:00:00 2001 From: "nilovna.bascunan-vasquez" Date: Thu, 26 May 2011 14:45:24 -0400 Subject: [PATCH] =?utf8?q?1501:=20Continuation=20des=20mod=C3=A8les=20(Candi?= =?utf8?q?datPiece,=20Evaluateur,=20CandidatEvaluation).?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- project/recrutement/admin.py | 12 +++++++++ project/recrutement/models.py | 55 ++++++++++++++++++++++++++++++++++++----- 2 files changed, 61 insertions(+), 6 deletions(-) diff --git a/project/recrutement/admin.py b/project/recrutement/admin.py index 27d80a5..b1252f8 100644 --- a/project/recrutement/admin.py +++ b/project/recrutement/admin.py @@ -9,5 +9,17 @@ class OffreEmploiAdmin(admin.ModelAdmin): class CandidatAdmin(admin.ModelAdmin): pass +class CandidatPieceAdmin(admin.ModelAdmin): + pass + +class EvaluateurAdmin(admin.ModelAdmin): + pass + +class CandidatEvaluationAdmin(admin.ModelAdmin): + pass + admin.site.register(OffreEmploi, OffreEmploiAdmin) admin.site.register(Candidat, CandidatAdmin) +admin.site.register(CandidatPiece, CandidatPieceAdmin) +admin.site.register(Evaluateur, EvaluateurAdmin) +admin.site.register(CandidatEvaluation, CandidatEvaluationAdmin) diff --git a/project/recrutement/models.py b/project/recrutement/models.py index 6340835..6ec300e 100755 --- a/project/recrutement/models.py +++ b/project/recrutement/models.py @@ -2,7 +2,9 @@ import datetime +from django.core.files.storage import FileSystemStorage from django.db import models +import settings import datamaster_modeles.models as ref from project.rh import models as rh @@ -22,6 +24,7 @@ class Metadata(models.Model): class OffreEmploi(Metadata): + # TODO : Afficher les bureaux selon la région choisies? nom = models.CharField(max_length=255) resume = models.TextField() description = models.TextField() @@ -29,6 +32,9 @@ class OffreEmploi(Metadata): date_limite = models.DateField(verbose_name="Date limite") region = models.ForeignKey(ref.Region, db_column='region') bureau = models.ForeignKey(ref.Bureau, db_column='bureau') + + def __unicode__(self): + return '%s [%s]' % (self.nom, self.id) ### CANDIDAT @@ -52,20 +58,21 @@ STATUT_CHOICES = ( ) class Candidat(Metadata): + # TODO : Automatiser le statut à la création à Nouveau offre_emploi = models.ForeignKey('OffreEmploi', db_column='offre_emploi', related_name='candidats') prenom = models.CharField(max_length=255) nom = models.CharField(max_length=255) genre = models.CharField(max_length=1, choices=GENRE_CHOICES) nationalite = models.ForeignKey(ref.Pays, - db_column='nationalite', - related_name='candidat_nationalite') + db_column='nationalite', + related_name='candidat_nationalite') date_naissance = models.DateField(verbose_name="Date de naissance") situation_famille = models.CharField(max_length=1, - choices=SITUATION_CHOICES) + choices=SITUATION_CHOICES) nombre_dependant = models.IntegerField(verbose_name="Nombre de dépendant") niveau_diplome = models.CharField(max_length=255, - verbose_name="Niveau du diplôme") + verbose_name="Niveau du diplôme") employeur_actuel = models.CharField(max_length=255) poste_actuel = models.CharField(max_length=255) domaine_professionnel = models.CharField(max_length=255) @@ -74,9 +81,45 @@ class Candidat(Metadata): adresse = models.CharField(max_length=255) ville = models.CharField(max_length=255) etat_province = models.CharField(max_length=255, - verbose_name="État/Province") + verbose_name="État/Province") pays = models.ForeignKey(ref.Pays, db_column='pays', - related_name='candidat_pays') + related_name='candidats') statut = models.CharField(max_length=4, choices=STATUT_CHOICES) + + def __unicode__(self): + return '%s %s [%s]' % (self.prenom, self.nom, self.id) + +### PIECE CANDIDAT +# Upload de fichiers +storage_prive = FileSystemStorage(settings.PRIVE_MEDIA_ROOT, + base_url=settings.PRIVE_MEDIA_URL) + +def candidat_piece_dispatch(instance, filename): + path = "offre_emploi/%s_%s/%s/%s_%s" % (instance.candidat.nom, + instance.candidat.prenom, instance.nom, instance.candidat.id, + filename) + return path + +class CandidatPiece(models.Model): + candidat = models.ForeignKey(Candidat, db_column='candidat', + related_name='+') + nom = models.CharField(max_length=255) + path = models.FileField(upload_to=candidat_piece_dispatch, + storage=storage_prive) + + def __unicode__(self): + return '%s' % (self.nom) + +class Evaluateur(models.Model): + candidats = models.ManyToManyField(Candidat) + +class CandidatEvaluation(models.Model): + candidat = models.ForeignKey(Candidat, db_column='candidat', + related_name='candidats') + evaluateur = models.ForeignKey(Evaluateur, db_column='evaluateur', + related_name='evaluateurs') + note = models.IntegerField() + commentaire = models.TextField() + date = models.DateField(auto_now_add=True) -- 1.7.10.4