Changeset 4d37d85


Ignore:
Timestamp:
Nov 17, 2011 12:40:35 PM (3 years ago)
Author:
yomguy <yomguy@…>
Branches:
master, crem, crem2, crem3, dev, dev2, diadems, dj1.6, feature/breadcrumbs, feature/ts-0.5, feature/ts-0.5.4, feature/writecache, forma, generic, instru_search, lam, lam2, mapsv3, merge, nlivemulti, production, release/1.4.4, sabiod, search, security, server, social, storage, telecaster, test, video
Children:
d7f192a
Parents:
ecfd068
git-author:
yomguy <yomguy@…> (17/11/2011 12:40:35)
git-committer:
yomguy <yomguy@…> (17/11/2011 12:40:35)
Message:

import: overwrite mode, create collections, more conditions

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tools/scripts/telemeta-crem-import.py

    recfd068 r4d37d85  
    4545        self.source_dir = source_dir 
    4646        self.collections = os.listdir(self.source_dir) 
    47         self.buffer_size = 0x1000 
    4847        self.pattern = pattern 
    4948        self.user = User.objects.filter(username='admin') 
    5049 
    51     def write_file(self, item, wav_file, user): 
     50    def write_file(self, item, wav_file, overwrite=False): 
    5251        if os.path.exists(wav_file): 
    53             if not item.file : 
     52            if not item.file or overwrite: 
    5453                f = open(wav_file, 'r') 
    5554                file_content = ContentFile(f.read()) 
     
    6059                item.set_revision(self.user) 
    6160            else: 
    62                 msg = code + ' : fichier ' + wav_file + ' déjà ajouté !' 
     61                msg = code + ' : fichier ' + wav_file + ' déjà existant !' 
    6362                self.logger.error(collection, msg) 
    6463        else: 
     
    7069         
    7170        for collection in self.collections: 
    72             collection_dir = self.source_dir + os.sep + collection 
     71            collection_dir = self.source_dir + os.sep + collection  
     72            collection_files = os.listdir(collection_dir) 
    7373            if not '/.' in collection_dir and self.pattern in collection_dir: 
    7474                collection_name = collection.split(os.sep)[-1] 
    7575                c = MediaCollection.objects.filter(code=collection_name) 
    76                 if not c: 
     76                if not c and collection + '.csv' in collection_files: 
    7777                    sys.exit(msg = collection + ' collection NON présente dans la base de données, SORTIE ') 
     78                elif not c: 
     79                    msg = 'collection NON présente dans la base de données, SORTIE ' 
     80                    self.logger.info(collection, msg) 
     81                    c = MediaCollection(code=collection_name) 
     82                    c.save() 
     83                    c.set_revision(self.user) 
     84                else: 
     85                    msg = 'collection présente dans la base de données, CONTINUE ' 
     86                    self.logger.info(collection, msg) 
    7887                     
    7988        for collection in self.collections: 
     
    102111                        items = MediaItem.objects.filter(code=code) 
    103112                        if len(items) != 0: 
    104                             msg = item.code+' : id = '+str(item.id)+" : title = "+item.title 
     113                            msg = ' : id = '+str(item.id)+" : title = "+item.title+' SELECTION' 
     114                            self.logger.info(item, msg) 
    105115                            self.logger.info(collection, msg) 
    106116                            item = items[0] 
     
    109119                            self.logger.info(item, msg) 
    110120                            item = MediaItem(code=code, collection=c) 
    111                         self.write_file(item, wav_file) 
     121                        self.write_file(item, wav_file, True) 
    112122 
    113123                else: 
     
    123133                            msg = item.old_code + ' : id = ' + str(item.id) + " : title = " + item.title 
    124134                            self.logger.info(item, msg) 
    125                             self.write_file(item, wav_file) 
     135                            self.write_file(item, wav_file, True) 
    126136                        else: 
    127                             msg = old_ref + ' : item inexistant dans la base de données !' 
     137                            msg = old_ref + ' : item inexistant dans la base de données ! PASS' 
    128138                            self.logger.error(item, msg) 
    129139 
Note: See TracChangeset for help on using the changeset viewer.