Ajout des pièces jointes. 1763: Absence visualisation pièces jointes
[auf_django_emploi.git] / auf / django / emploi / models.py
index 75d8338..555c540 100755 (executable)
@@ -1,4 +1,4 @@
-# -=- encoding: utf-8 -=-
+# -*- encoding: utf-8 -*
 
 import datetime
 from django.core.files.storage import FileSystemStorage
@@ -8,7 +8,6 @@ import settings
 #from private_files import PrivateFileField
 
 import datamaster_modeles.models as ref
-from project.rh.models import Poste 
 
 ### CONSTANTES ###
 # HELP_TEXT
@@ -69,13 +68,6 @@ class Metadata(models.Model):
     class Meta:
         abstract = True
 
-class ProxyPoste(Poste):
-    class Meta:
-        proxy = True
-
-    def __unicode__(self):
-        return '%s [%s]' % (self.nom, self.id)
-
 class OffreEmploi(Metadata):
     est_affiche = models.BooleanField(default=False, 
                                     verbose_name="En affichage sur le site")
@@ -84,7 +76,7 @@ class OffreEmploi(Metadata):
     nom = models.CharField(max_length=255)
     resume = models.TextField(verbose_name="Résumé")
     description = tinymce_models.HTMLField()
-    poste = models.ForeignKey(ProxyPoste, db_column='poste')
+    #poste = models.ForeignKey('rh.Poste', 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', 
@@ -143,6 +135,10 @@ class Candidat(Metadata):
     def __unicode__(self):
         return '%s %s [%s]' % (self.prenom, self.nom, self.id)
 
+    def pieces_jointes(self):
+        return CandidatPiece.objects.filter(candidat=self) 
+    pieces_jointes.allow_tags = True    
+
     class Meta:
         db_table = 'emploi_candidat'
 
@@ -151,22 +147,20 @@ 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/%s' % ('emplois', instance.candidat.offre_emploi.id,
+            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"