]> git.parisson.com Git - telemeta.git/commitdiff
fix export formats
authoryomguy <yomguy@parisson.com>
Mon, 8 Oct 2012 13:35:57 +0000 (15:35 +0200)
committeryomguy <yomguy@parisson.com>
Mon, 8 Oct 2012 13:35:57 +0000 (15:35 +0200)
telemeta/views/item.py

index 1fde562bcfcb1ff456cfc46129813008fb302965..9bf2da26770390cc876b5f6981227ae61ee1144b 100644 (file)
@@ -47,6 +47,17 @@ class ItemView(object):
     cache_data = TelemetaCache(settings.TELEMETA_DATA_CACHE_DIR)
     cache_export = TelemetaCache(settings.TELEMETA_EXPORT_CACHE_DIR)
 
+    export_enabled = getattr(settings, 'TELEMETA_DOWNLOAD_ENABLED', True)
+    export_formats = getattr(settings, 'TELEMETA_DOWNLOAD_FORMATS', ('mp3', 'wav'))
+
+    def get_export_formats(self):
+        formats = []
+        for encoder in self.encoders:
+            if encoder.file_extension() in self.export_formats:
+                formats.append({'name': encoder.format(),
+                                    'extension': encoder.file_extension()})
+        return formats
+
     def item_previous_next(self, item):
         # Get previous and next items
         pks = []
@@ -99,15 +110,6 @@ class ItemView(object):
             messages.error(request, title)
             return render(request, 'telemeta/messages.html', {'description' : description})
 
-        # Get TimeSide processors
-        formats = []
-        for encoder in self.encoders:
-            if settings.TELEMETA_DOWNLOAD_FORMATS:
-                if encoder.file_extension() in settings.TELEMETA_DOWNLOAD_FORMATS:
-                    formats.append({'name': encoder.format(), 'extension': encoder.file_extension()})
-            else:
-                formats.append({'name': encoder.format(), 'extension': encoder.file_extension()})
-
         graphers = []
         for grapher in self.graphers:
             graphers.append({'name':grapher.name(), 'id': grapher.id()})
@@ -142,9 +144,9 @@ class ItemView(object):
             format = item.format.get()
 
         return render(request, template,
-                    {'item': item, 'export_formats': formats,
+                    {'item': item, 'export_formats': self.get_export_formats(),
                     'visualizers': graphers, 'visualizer_id': grapher_id,
-                    'audio_export_enabled': getattr(settings, 'TELEMETA_DOWNLOAD_ENABLED', True),
+                    'audio_export_enabled': self.export_enabled,
                     'previous' : previous, 'next' : next, 'marker': marker_id, 'playlists' : playlists,
                     'public_access': public_access, 'width': width, 'height': height,
                     'related_media': related_media, 'mime_type': mime_type, 'last_revision': last_revision,
@@ -167,9 +169,6 @@ class ItemView(object):
             except:
                 grapher_id = 'waveform'
 
-        export_enabled = getattr(settings, 'TELEMETA_DOWNLOAD_ENABLED', True)
-        export_formats = getattr(settings, 'TELEMETA_DOWNLOAD_FORMATS', ('mp3', 'wav'))
-
         previous, next = self.item_previous_next(item)
         mime_type = self.item_analyze(item)
         #FIXME: use mimetypes.guess_type
@@ -206,9 +205,9 @@ class ItemView(object):
 
         return render(request, template,
                     {'item': item,
-                     'export_formats': export_formats,
+                     'export_formats': self.get_export_formats(),
                     'visualizers': graphers, 'visualizer_id': grapher_id,
-                    'audio_export_enabled': export_enabled,
+                    'audio_export_enabled': self.export_enabled,
                     'forms': forms, 'previous' : previous,
                     'next' : next, 'mime_type': mime_type,
                     })