]> git.parisson.com Git - telemeta.git/commitdiff
fix item view mixins
authorGuillaume Pellerin <yomguy@parisson.com>
Mon, 11 May 2015 07:53:28 +0000 (09:53 +0200)
committerGuillaume Pellerin <yomguy@parisson.com>
Mon, 11 May 2015 07:53:28 +0000 (09:53 +0200)
telemeta/pages
telemeta/views/item.py

index bff9dcc2ab149ad2c88d811a4268b43cdb9b2073..f8324093174d077b674ac2c52eb0db6eaf815ab5 160000 (submodule)
@@ -1 +1 @@
-Subproject commit bff9dcc2ab149ad2c88d811a4268b43cdb9b2073
+Subproject commit f8324093174d077b674ac2c52eb0db6eaf815ab5
index cc047e7162e743c065d29e396a508bd1095360cc..ff1412e03f48ba453243f1a4777a55dae82cdbc3 100644 (file)
@@ -55,10 +55,6 @@ class ItemBaseMixin(TelemetaBaseMixin):
     default_grapher_sizes = getattr(settings, 'TIMESIDE_DEFAULT_GRAPHER_SIZES', ['346x130', ])
     auto_zoom = getattr(settings, 'TIMESIDE_AUTO_ZOOM', False)
 
-
-class ItemView(ItemBaseMixin):
-    """Provide Item web UI methods"""
-
     def get_export_formats(self):
         formats = []
         for encoder in self.encoders:
@@ -67,12 +63,14 @@ class ItemView(ItemBaseMixin):
                                     'extension': encoder.file_extension()})
         return formats
 
-    def get_graphers(self):
+    def get_graphers(self, user):
         graphers = []
         for grapher in self.graphers:
             if grapher.id() == self.default_grapher_id:
                 graphers.insert(0, {'name':grapher.name(), 'id': grapher.id()})
-            else:
+            elif not hasattr(grapher, '_staging'):
+                graphers.append({'name':grapher.name(), 'id': grapher.id()})
+            elif not grapher._staging:
                 graphers.append({'name':grapher.name(), 'id': grapher.id()})
         return graphers
 
@@ -82,6 +80,52 @@ class ItemView(ItemBaseMixin):
                 break
         return grapher
 
+    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 inside the collection of the item"""
+
+        pks = []
+        items = MediaItem.objects.filter(collection=item.collection)
+        items = items.order_by('code', 'old_code')
+
+        if len(items) > 1:
+            for it in items:
+                pks.append(it.pk)
+            for pk in pks:
+                if pk == item.pk:
+                    if pk == pks[0]:
+                        previous_pk = pks[-1]
+                        next_pk = pks[1]
+                    elif pk == pks[-1]:
+                        previous_pk = pks[-2]
+                        next_pk = pks[0]
+                    else:
+                        previous_pk = pks[pks.index(pk)-1]
+                        next_pk = pks[pks.index(pk)+1]
+                    for it in items:
+                        if it.pk == previous_pk:
+                            previous = it
+                        if it.pk == next_pk:
+                            next = it
+                    previous = previous.public_id
+                    next = next.public_id
+        else:
+             previous = item.public_id
+             next = item.public_id
+
+        return previous, next
+
+
+class ItemView(ItemBaseMixin):
+    """Provide Item web UI methods"""
+
     def item_detail(self, request, public_id=None, marker_id=None, width=None, height=None,
                         template='telemeta/mediaitem_detail.html'):
         """Show the details of a given item"""
@@ -392,65 +436,6 @@ class ItemViewMixin(ItemBaseMixin):
     # inlines = [ItemPerformanceInline, ItemKeywordInline, ItemRelatedInline,
     #             ItemFormatInline, ItemIdentifierInline]
 
-    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 inside the collection of the item"""
-
-        pks = []
-        items = MediaItem.objects.filter(collection=item.collection)
-        items = items.order_by('code', 'old_code')
-
-        if len(items) > 1:
-            for it in items:
-                pks.append(it.pk)
-            for pk in pks:
-                if pk == item.pk:
-                    if pk == pks[0]:
-                        previous_pk = pks[-1]
-                        next_pk = pks[1]
-                    elif pk == pks[-1]:
-                        previous_pk = pks[-2]
-                        next_pk = pks[0]
-                    else:
-                        previous_pk = pks[pks.index(pk)-1]
-                        next_pk = pks[pks.index(pk)+1]
-                    for it in items:
-                        if it.pk == previous_pk:
-                            previous = it
-                        if it.pk == next_pk:
-                            next = it
-                    previous = previous.public_id
-                    next = next.public_id
-        else:
-             previous = item.public_id
-             next = item.public_id
-
-        return previous, next
-
-    def get_graphers(self, user):
-        graphers = []
-        for grapher in self.graphers:
-            if grapher.id() == self.default_grapher_id:
-                graphers.insert(0, {'name':grapher.name(), 'id': grapher.id()})
-            elif not hasattr(grapher, '_staging'):
-                graphers.append({'name':grapher.name(), 'id': grapher.id()})
-            elif not grapher._staging:
-                graphers.append({'name':grapher.name(), 'id': grapher.id()})
-        return graphers
-
-    def get_grapher(self, id):
-        for grapher in self.graphers:
-            if grapher.id() == id:
-                break
-        return grapher
-
     def get_object(self):
         obj = self.model.objects.filter(code=self.kwargs['public_id'])
         if not obj: