Débug de pièces jointes
[auf_django_emploi.git] / auf / django / emploi / models.py
index 36a6e96..35a0851 100755 (executable)
@@ -1,11 +1,10 @@
-# -=- encoding: utf-8 -=-
+# -*- encoding: utf-8 -*
 
 import datetime
 from django.core.files.storage import FileSystemStorage
 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
 
@@ -18,11 +17,13 @@ HELP_TEXT_TAGS_ACCEPTES = "Pour le texte, les variables disponibles sont : \
                             {{ offre_emploi }}. Ces champs seront \
                             automatiquement remplacés par les informations de \
                             chaque candidat."
-
+HELP_TEXT_EN_AFFICHAGE = "En cochant cette case, l'offre d'emploi sera affichée\
+                         sur le site institutionnel dès qu'elle aura le statut \
+                        'En diffusion' et ce, jusqu'à la date limite."
 
 STATUT_OFFRE_EMPLOI_CHOICES = (
     ('NOUV', 'Nouveau'),
-    ('AFFI', 'Offre d\'emploi en affichage'),
+    ('AFFI', 'En diffusion'),
     ('EVAL', 'En évaluation des candidatures'),
     ('ENTR', 'En entrevue'),
     ('TERM', 'Terminé'),
@@ -70,15 +71,17 @@ class Metadata(models.Model):
 
 class OffreEmploi(Metadata):
     est_affiche = models.BooleanField(default=False, 
-                                    verbose_name="En affichage sur le site")
+                        verbose_name="À afficher sur le site institutionnel",
+                        help_text=HELP_TEXT_EN_AFFICHAGE)
     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('rh.Poste', db_column='poste')
     date_limite = models.DateField(verbose_name="Date limite",
                         help_text=HELP_TEXT_FORMAT_DATE,)  
+    nom = models.CharField(max_length=255)
+    resume = models.TextField(verbose_name="Résumé", blank=True)
+    description = models.TextField()
+    poste = models.CharField(max_length=255)
+    poste_nom = models.CharField(max_length=255)
     region = models.ForeignKey(ref.Region, db_column='region', 
                 verbose_name="Région")
     bureau = models.ForeignKey(ref.Bureau, db_column='bureau', )
@@ -127,38 +130,40 @@ 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", blank=True)
     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 Meta:
         db_table = 'emploi_candidat'
 
+    def pieces_jointes(self):
+        return CandidatPiece.objects.filter(candidat=self) 
+    pieces_jointes.allow_tags = True    
+
+    def __unicode__(self):
+        return '%s %s [%s]' % (self.nom, self.prenom, self.id)
+
+
 # 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)
+    path = u'%s/%s_%s_%s/%s/%s' % ('emplois', instance.candidat.nom, 
+        instance.candidat.prenom, instance.candidat.id, instance.nom, 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, )
+                        upload_to=candidat_piece_dispatch, storage=storage_prive)
 
     class Meta:
-        db_table = 'emploi_evaluateur'
+        db_table = 'emploi_pieces'
         verbose_name = "pièce jointe"
         verbose_name_plural = "pièces jointes"