]> git.parisson.com Git - telemeta.git/commitdiff
import: bugfix
authoryomguy <yomguy@parisson.com>
Thu, 17 Nov 2011 12:37:48 +0000 (13:37 +0100)
committeryomguy <yomguy@parisson.com>
Thu, 17 Nov 2011 12:37:48 +0000 (13:37 +0100)
tools/scripts/telemeta-crem-import.py

index 228e0918ed81a9e4a07c55121a2b6f17ea159ea1..39029d092bf51a6e8e2fce7120050fc14458ca7a 100755 (executable)
@@ -40,21 +40,21 @@ class Logger:
 class TelemetaWavImport:
 
     def __init__(self, source_dir, log_file, pattern):
+        from django.contrib.auth.models import User
         self.logger = Logger(log_file)
         self.source_dir = source_dir
         self.collections = os.listdir(self.source_dir)
         self.pattern = pattern
-        self.user = User.objects.filter(username='admin')
+        self.user = User.objects.filter(username='admin')[0]
 
     def write_file(self, item, wav_file, overwrite=False):
         if os.path.exists(wav_file):
             if not item.file or overwrite:
+                filename = wav_file.split(os.sep)[-1]
                 f = open(wav_file, 'r')
                 file_content = ContentFile(f.read())
                 item.file.save(filename, file_content)
                 f.close()
-                item.code = new_ref
-                item.save()
                 item.set_revision(self.user)
             else:
                 msg = code + ' : fichier ' + wav_file + ' déjà existant ! PASS'
@@ -85,7 +85,7 @@ class TelemetaWavImport:
                     c.save()
                     c.set_revision(self.user)
                 else:
-                    msg = 'collection présente dans la base de données, PASS '
+                    msg = 'collection présente dans la base de données'
                     self.logger.info(collection, msg)
                     
         for collection in self.collections:
@@ -104,13 +104,13 @@ class TelemetaWavImport:
                     
                     if not c:
                         msg = collection + ' collection NON présente dans la BDD, CREATION '
-                        self.logger.info(collection, msg)
+                        self.logger.info('collection', msg)
                         c = MediaCollection(code=collection_name)
                         c.save()
                     else:
-                        msg = ' : id = '+str(c.id)+" : title = "+c.title+' SELECTION'
-                        self.logger.info(collection, msg)
                         c = c[0]
+                        msg = ' : id = '+str(c.id)+" : title = "+c.title+' SELECTION'
+                        self.logger.info('collection', msg)
                         
                     for filename in collection_files:
                         wav_file = self.source_dir + os.sep + collection + os.sep + filename
@@ -118,13 +118,13 @@ class TelemetaWavImport:
                         items = MediaItem.objects.filter(code=code)
                         
                         if len(items) != 0:
-                            msg = ' : id = '+str(item.id)+" : title = "+item.title+' SELECTION'
-                            self.logger.info(item, msg)
                             item = items[0]
+                            msg = item.code + ' : id = '+str(item.id)+" : title = "+item.title+' SELECTION'
+                            self.logger.info('item', msg)
                         else:
-                            msg = item.code + ' : item NON présent dans la base de données, CREATION'
-                            self.logger.info(item, msg)
                             item = MediaItem(code=code, collection=c)
+                            msg = item.code + ' : item NON présent dans la base de données, CREATION'
+                            self.logger.info('item', msg)
                             
                         self.write_file(item, wav_file, True)
 
@@ -142,11 +142,13 @@ class TelemetaWavImport:
                         if items:
                             item = items[0]
                             msg = item.old_code + ' : id = ' + str(item.id) + " : title = " + item.title
-                            self.logger.info(item, msg)
+                            self.logger.info('item', msg)
                             self.write_file(item, wav_file, True)
+                            item.code = new_ref
+                            item.save()
                         else:
                             msg = old_ref + ' : item inexistant dans la base de données ! PASS'
-                            self.logger.error(item, msg)
+                            self.logger.error('item', msg)
 
 
 def print_usage(tool_name):
@@ -168,7 +170,6 @@ def run():
         sys.path.append(project_dir)
         import settings
         setup_environ(settings)
-        from django.contrib.auth.models import User
         t = TelemetaWavImport(source_dir, log_file, pattern)
         t.wav_import()