Changeset 1eb6b294
- Timestamp:
- 11/18/11 13:15:23 (18 months ago)
- Branches:
- master, crem, crem2, dev, dev2, diadems, forma, generic, instru_search, lam, nlivemulti, production, release/1.4.4, security, social, storage, test, video
- Children:
- d4c2dd3, e878904
- Parents:
- ffb0268
- git-author:
- yomguy <yomguy@…> (11/18/11 13:15:23)
- git-committer:
- yomguy <yomguy@…> (11/18/11 13:15:23)
- Files:
-
- 2 edited
-
telemeta/models/media.py (modified) (1 diff)
-
tools/scripts/telemeta-crem-import.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
telemeta/models/media.py
rdf08f22 r1eb6b294 218 218 class Meta: 219 219 model = MediaCollection 220 def clean_doctype_code(self): 221 return self.cleaned_data['doctype_code'] or 0 220 222 221 223 -
tools/scripts/telemeta-crem-import.py
rffb0268 r1eb6b294 69 69 for collection in self.collections: 70 70 collection_dir = self.source_dir + os.sep + collection 71 collection _files = os.listdir(collection_dir)71 collections = [] 72 72 73 73 if not '/.' in collection_dir and self.pattern in collection_dir: 74 74 collection_name = collection.split(os.sep)[-1] 75 collections.append(collection_name) 75 76 c = MediaCollection.objects.filter(code=collection_name) 76 77 … … 89 90 self.logger.info(collection, msg) 90 91 91 for collection in self.collections:92 for collection in collections: 92 93 collection_dir = self.source_dir + os.sep + collection 94 collection_name = collection 95 collection_files = os.listdir(collection_dir) 96 msg = '************************ ' + collection + ' ******************************' 97 self.logger.info(collection, msg[:70]) 98 overwrite = True 99 csv_file = '' 100 rows = {} 93 101 94 if not '/.' in collection_dir and self.pattern in collection_dir: 95 collection_name = collection.split(os.sep)[-1] 96 msg = '************************ ' + collection + ' ******************************' 102 if collection + '.csv' in collection_files: 103 csv_file = self.source_dir + os.sep + collection + os.sep + collection + '.csv' 104 csv_data = csv.reader(open(csv_file), delimiter=';') 105 for row in csv_data: 106 rows[row[1]] = row[0] 107 msg = collection + ' import du fichier CSV de la collection' 97 108 self.logger.info(collection, msg[:70]) 98 collection_files = os.listdir(collection_dir) 109 else: 110 msg = collection + ' pas de fichier CSV dans la collection' 111 self.logger.info(collection, msg[:70]) 112 113 c = MediaCollection.objects.filter(code=collection_name) 114 if not c: 115 c = MediaCollection(code=collection_name) 116 c.save() 117 msg = ' collection NON présente dans la BDD, CREATION ' 118 self.logger.info(c.code, msg) 119 else: 120 c = c[0] 121 msg = ' id = '+str(c.id) 122 self.logger.info(c.code, msg) 123 124 audio_files = [] 125 for file in collection_files: 126 ext = ['WAV', 'wav'] 127 if file.split('.')[-1] in ext: 128 audio_files.append(file) 129 130 audio_files.sort() 131 nb_items = c.items.count() 132 counter = 0 133 134 for file in audio_files: 135 code = file.split('.')[0] 136 wav_file = self.source_dir + os.sep + collection + os.sep + file 99 137 100 if not collection + '.csv' in collection_files: 101 overwrite = False 102 msg = collection + ' pas de fichier CSV dans la collection' 103 self.logger.info(collection, msg[:70]) 104 c = MediaCollection.objects.filter(code=collection_name) 138 if len(audio_files) <= nb_items: 139 items = MediaItem.objects.filter(code=code) 105 140 106 if not c: 107 c = MediaCollection(code=collection_name) 108 c.save() 109 msg = ' collection NON présente dans la BDD, CREATION ' 110 self.logger.info(c.code, msg) 141 if code in rows and not items: 142 old_ref = rows[code] 143 items = MediaItem.objects.filter(old_code=old_ref) 111 144 145 if items: 146 item = items[0] 147 msg = item.old_code + ' : Cas 1 ou 2 : id = ' + str(item.id) 148 self.logger.info('item', msg) 149 item.code = code 150 item.save() 112 151 else: 113 c = c[0] 114 msg = ' id = '+str(c.id) 115 self.logger.info(c.code, msg) 116 117 for filename in collection_files: 118 wav_file = self.source_dir + os.sep + collection + os.sep + filename 119 code = filename.split('.')[0] 120 items = MediaItem.objects.filter(code=code) 121 122 if len(items) != 0: 123 item = items[0] 124 msg = item.code + ' : id = '+str(item.id) 125 self.logger.info('item', msg) 126 else: 127 item = MediaItem(code=code, collection=c) 128 msg = item.code + ' : item NON présent dans la base de données, CREATION' 129 self.logger.info('item', msg) 130 152 item = MediaItem(code=code, collection=c) 153 msg = item.code + ' : Cas 1 ou 2 : item NON présent dans la base de données, CREATION' 154 self.logger.info('item', msg) 155 156 self.write_file(item, wav_file, overwrite) 157 158 elif nb_items == 1 and len(audio_files) > 1: 159 if counter == 0: 160 msg = code + ' : Cas 3a : item n°01 présent dans la base de données, PASSE' 161 self.logger.info('item', msg) 162 else: 163 item = MediaItem(code=code, collection=c) 164 msg = item.code + ' : Cas 3a : item NON présent dans la base de données, CREATION' 165 self.logger.info('item', msg) 131 166 self.write_file(item, wav_file, overwrite) 167 168 elif nb_items > 1 and nb_items < len(audio_files): 169 msg = code + ' : Cas 3b : nb items < nb de fichiers audio, PAS de creation' 170 self.logger.info('item', msg) 132 171 133 else: 134 overwrite = False 135 csv_file = self.source_dir + os.sep + collection + os.sep + collection + '.csv' 136 c = csv.reader(open(csv_file), delimiter=';') 137 138 for row in c: 139 old_ref = row[0] 140 new_ref = row[1] 141 filename = new_ref + '.wav' 142 wav_file = self.source_dir + os.sep + collection + os.sep + filename 143 items = MediaItem.objects.filter(old_code=old_ref) 144 145 if items: 146 item = items[0] 147 msg = item.old_code + ' : id = ' + str(item.id) 148 self.logger.info('item', msg) 149 self.write_file(item, wav_file, overwrite) 150 item.code = new_ref 151 item.save() 152 else: 153 msg = old_ref + ' : item inexistant dans la base de données !' 154 self.logger.error('item', msg) 155 172 counter += 1 156 173 157 174 def print_usage(tool_name):
Note: See TracChangeset
for help on using the changeset viewer.
