ftp.py : zip à mettre sur FTP
authorDavin Baragiotta <davin.baragiotta@auf.org>
Thu, 12 Apr 2012 19:53:54 +0000 (15:53 -0400)
committerDavin BARAGIOTTA <davin.baragiotta@auf.org>
Thu, 12 Apr 2012 19:53:54 +0000 (15:53 -0400)
project/wcs/conf.py.edit
project/wcs/docs.py
project/wcs/ftp.py [new file with mode: 0644]
project/wcs/views.py

index 6c0d560..14047f0 100644 (file)
@@ -7,6 +7,7 @@ WCS_SIGMA_USER = ''
 WCS_SIGMA_PASS = ''
 
 FORMNAME = 'demande-de-bourse-de-doctorat-2011-2012-afrique-centrale-et-des-grands-lacs'  # nom WCS
+ZIPNAME = 'bacgl-doctorat-2012-2013'    # pour diffusion FTP
 
 # Pièces réelles soumises par candidat
 PIECES_SUFFIXE = {
index e2c27d2..dd09ab5 100644 (file)
@@ -5,7 +5,7 @@ from simplejson import loads
 import urllib2
 import zipfile
 
-from wcs.settings import FORMNAME
+from wcs.settings import FORMNAME, MOBILITE, CODE_BUDGETAIRE
 
 from lib import getCandidaturesJson, createPdf, createZip
 from models import JsonWcs2JsonSigma
@@ -33,7 +33,7 @@ if __name__ == "__main__":
     print 'Nombre à traiter = %d' % (nombre)
     print '--------------------------------------------------'
         
-    # IMPORT
+    # DOCS
     jj = JsonWcs2JsonSigma()
     for candidature in candidatures :
         if candidature['wcs_workflow_status'] == 'SPAM':
diff --git a/project/wcs/ftp.py b/project/wcs/ftp.py
new file mode 100644 (file)
index 0000000..343020b
--- /dev/null
@@ -0,0 +1,11 @@
+# -=- encoding: utf-8 -=-
+
+from views import exportFtpFiles
+
+if __name__ == "__main__":
+    """
+    bin/django shell
+    >>> cd project/wcs
+    >>> run ftp.py
+    """
+    exportFtpFiles()
index b32a8bd..c7b8b87 100644 (file)
@@ -8,7 +8,7 @@ import zipfile
 from sigma_v1.models import Dossier
 from sigma_v1.settings import PIECES_SUFFIXE as PIECES_SIGMA_SUFFIXE
 from wcs.settings import PIECES_FIELDNAME, PIECES_SUFFIXE as PIECES_WCS_SUFFIXE
-from wcs.settings import MOBILITE, FORMNAME, WCS_SIGMA_URL, WCS_SIGMA_USER, WCS_SIGMA_PASS
+from wcs.settings import MOBILITE, FORMNAME, ZIPNAME, WCS_SIGMA_URL, WCS_SIGMA_USER, WCS_SIGMA_PASS
 
 from lib import getCandidaturesJson
 from models import JsonWcs2JsonSigma, JsonSigma2ObjectSigma
@@ -28,8 +28,8 @@ def importDossiersCandidaturesWcs(appel):
         return written
     
     # conf
-    src = '%s/%s' % (WCS_SIGMA_URL, appel.wcs_form_name)
-    dst = 'docs/%s' % (appel.wcs_form_name)
+    src = '%s/%s' % (WCS_SIGMA_URL, FORMNAME)
+    dst = 'docs/%s' % (FORMNAME)
     dossierDir = 'data'
     dstData = '%s/%s' % (dst, dossierDir)
     meta = [
@@ -182,7 +182,7 @@ def exportSigmaFiles(appel):
     
     # création du répertoire local pour rsync
     print "Création du répertoire local des dossiers de candidature (fichiers renommés) :"
-    exportCandidaturesPath = "%s/%d.zip" % (dstZip, MOBILITE)
+    exportCandidaturesPath = "%s/%d.zip" % (dstZip, ZIPNAME)
     archive = zipfile.ZipFile(exportCandidaturesPath, "w", zipfile.ZIP_STORED)
         
     candidatures = getCandidaturesJson()
@@ -196,7 +196,7 @@ def exportSigmaFiles(appel):
             nb_spam = nb_spam + 1
         else:
             candidature = jj.mapper(candidature)
-            candidature = jj.cleanup(candidature)     
+            candidature = jj.cleanup(candidature)
             candidature = jj.convert(candidature)
             filename = candidature['wcs_json_filename']
             basename = filename.rstrip('.json')
@@ -271,6 +271,61 @@ def exportSigmaFiles(appel):
 #    print 'ZIP traités  : %d sur %d' % (nb_zip_done, nb_cand_done)
     print '--------------------------------------------------'
 
+def exportFtpFiles():
+    """Créer le fichier zip global des zip de cnadidatures, à mettre sur FTP. /ftp/ZIPNAME.zip
+    """
+    
+    # conf
+    src = 'docs/%s/data' % (FORMNAME)
+    dst = "docs/%s/ftp" % (FORMNAME)
+    
+    if not os.path.exists(dst):
+        os.mkdir(dst)    # mode 0777 ?
+                
+    # rapport : header
+    print '--------------------------------------------------'
+    print 'Création zip pour FTP dans :'
+    
+    # zip final
+    path = "%s/%s.zip" % (dst, ZIPNAME)
+    print path
+    archive = zipfile.ZipFile(path, "w", zipfile.ZIP_STORED)
+    
+    # traitement candidatures
+    candidatures = getCandidaturesJson()
+    nb_cand = len(candidatures)
+    nb_spam = 0
+    nb_cand_done = 0
+
+    jj = JsonWcs2JsonSigma()
+    for candidature in candidatures :
+        if candidature['wcs_workflow_status'] == 'SPAM':
+            nb_spam = nb_spam + 1
+        else:
+            candidature = jj.mapper(candidature)
+            candidature = jj.cleanup(candidature)
+            candidature = jj.convert(candidature)
+
+            # zip de candidature...
+            cible = candidature['wcs_json_filename'].rstrip('.json') + '.zip'
+            path_cible = '%s/%s' % (src, cible)
+            if os.path.exists(path_cible):
+                # ... ajouté dans zip global
+                archive.write(path_cible, cible)
+                
+            nb_cand_done = nb_cand_done + 1
+            print '%d : %s' % (nb_cand_done, cible)
+
+    archive.close()
+    
+    # rapport : footer
+    print '--------------------------------------------------'
+    print 'ZIP créé.'
+    print 'Candidatures : %d' % (nb_cand)
+    print 'Spams : %d sur %d' % (nb_spam, nb_cand)
+    print 'Zip traités : %d sur %d' % (nb_cand_done, nb_cand)
+    print '--------------------------------------------------'
+
 # MAIN
 if __name__ == "__main__":
     """