Ajout du package auf.django.emploi
[auf_rh_dae.git] / project / recrutement / models.py
index 94a4e2c..c20b856 100755 (executable)
@@ -10,6 +10,8 @@ import settings
 
 import datamaster_modeles.models as ref
 from project.rh.models import Poste 
+from recrutement.workflow import grp_evaluateurs_recrutement
+from auf.django.emploi.models import *
 
 ### CONSTANTES
 #NOTES
@@ -53,45 +55,6 @@ class ProxyPoste(Poste):
     def __unicode__(self):
         return '%s [%s]' % (self.nom, self.id)
 
-STATUT_OFFRE_EMPLOI_CHOICES = (
-    ('NOUV', 'Nouveau'),
-    ('AFFI', 'Offre d\'emploi en affichage'),
-    ('EVAL', 'En évaluation des candidatures'),
-    ('ENTR', 'En entrevue'),
-    ('TERM', 'Terminé'),
-)
-
-class OffreEmploi(Metadata):
-    #objects = OffreEmploiManager()
-    est_affiche = models.BooleanField(default=False, 
-                                    verbose_name="En affichage sur le site")
-    statut = models.CharField(max_length=4, choices=STATUT_OFFRE_EMPLOI_CHOICES,
-                                default='NOUV')
-    nom = models.CharField(max_length=255)
-    resume = models.TextField(verbose_name="Résumé")
-    description = tinymce_models.HTMLField()
-    poste = models.ForeignKey(ProxyPoste, db_column='poste')
-    date_limite = models.DateField(verbose_name="Date limite",
-                        help_text=HELP_TEXT_FORMAT_DATE,)  
-    region = models.ForeignKey(ref.Region, db_column='region', 
-                verbose_name="Région")
-    bureau = models.ForeignKey(ref.Bureau, db_column='bureau', )
-    duree_affectation = models.CharField(max_length=255, 
-                        verbose_name="Durée de l'affectation")
-    renumeration = models.CharField(max_length=255,
-                    verbose_name='Rénumération')
-    debut_affectation = models.DateField(verbose_name="Début de l'affectation",
-                        help_text=HELP_TEXT_FORMAT_DATE,)
-    lieu_affectation = models.ForeignKey(ref.Implantation,  
-                        db_column='implantation', 
-                        verbose_name="Lieu d'affectation")
-
-    class Meta:
-        verbose_name_plural = "offres d'emploi"
-
-    def __unicode__(self):
-        return '%s [%s]' % (self.nom, self.id)
 class ProxyOffreEmploi(OffreEmploi):
     class Meta:
         proxy = True
@@ -100,62 +63,6 @@ class ProxyOffreEmploi(OffreEmploi):
 
     def __unicode__(self):
         return '%s [%s] - View' % (self.nom, self.id)
-### CANDIDAT
-  
-GENRE_CHOICES = (
-    ('M', 'Homme'),
-    ('F', 'Femme'),
-)
-SITUATION_CHOICES = (
-    ('C', 'Célibataire'),
-    ('F', 'Conjoint de fait'),
-    ('M', 'Marié'),
-    ('D', 'Divorcé'),
-)
-STATUT_CHOICES = (
-    ('NOUV', 'Nouveau'),
-    ('REC', 'Recevable'),
-    ('SEL', 'Sélectionné'),
-    ('REF', 'Refusé'),
-    ('ACC', 'Accepté'),
-)
-
-class Candidat(Metadata):   
-    statut = models.CharField(max_length=4, choices=STATUT_CHOICES, 
-                default='NOUV')
-    offre_emploi = models.ForeignKey('OffreEmploi', db_column='offre_emploi',
-                    related_name='+')
-    prenom = models.CharField(max_length=255, verbose_name='Prénom', )
-    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='+',
-                    verbose_name='Nationalité')
-    situation_famille = models.CharField(max_length=1, 
-                        choices=SITUATION_CHOICES, 
-                        verbose_name='Situation familiale', )
-    nombre_dependant = models.IntegerField(verbose_name='Nombre de dépendant',
-                        help_text=HELP_TEXT_NB_DEPENDANT, )
-    niveau_diplome = models.CharField(max_length=255,
-                        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, )
-    telephone = models.CharField(max_length=255, verbose_name='Téléphone', )
-    email = models.EmailField(max_length=255, verbose_name = 'Courriel', )
-
-    # Adresse
-    adresse = models.CharField(max_length=255)
-    ville = models.CharField(max_length=255)
-    etat_province = models.CharField(max_length=255, 
-                    verbose_name="État/Province")
-    code_postal = models.CharField(max_length=255, blank=True)
-    pays = models.ForeignKey(ref.Pays, db_column='pays',
-            related_name='+')
-
-    def __unicode__(self):
-        return '%s %s [%s]' % (self.prenom, self.nom, self.id)
 
 class ProxyCandidat(Candidat):
     class Meta:
@@ -166,44 +73,20 @@ class ProxyCandidat(Candidat):
     def __unicode__(self):
         return '%s %s [%s]' % (self.prenom, self.nom, self.id)
 
-### PIECE CANDIDAT
-
-TYPE_PIECE_CHOICES = (
-    ('CV','CV'),
-    ('LET','Lettre'),
-    ('AUT','Autre'),
-)
-# 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='candidat_piece') 
-    nom = models.CharField(max_length=3, choices=TYPE_PIECE_CHOICES)
-    #path = PrivateFileField("file", upload_to=candidat_piece_dispatch)
-    path = models.FileField(verbose_name="Fichier", 
-            upload_to=candidat_piece_dispatch, 
-            storage=storage_prive, )
-
-    class Meta:
-        verbose_name = "pièce jointe"
-        verbose_name_plural = "pièces jointes"
-
-    def __unicode__(self):
-        return '%s' % (self.nom)
 
 class Evaluateur(models.Model):
     user = models.ForeignKey(User, unique=True, verbose_name="Évaluateur")
     candidats = models.ManyToManyField(Candidat, through='CandidatEvaluation', 
                 related_name="evaluateurs")
 
+    """def save(self, *args, **kwargs):
+        
+        Assigner automatiquement les évaluateurs d'une offre d'emploi à un 
+        nouveau candidat.
+        
+        self.user.groups.add(grp_evaluateurs_recrutement)
+        super(Evaluateur, self).save(*args, **kwargs)
+    """
     class Meta:
         verbose_name = "évaluateur"