]> git.parisson.com Git - telemeta.git/commitdiff
add a json url to dump item markers
authorGuillaume Pellerin <yomguy@parisson.com>
Fri, 23 Jan 2015 09:58:52 +0000 (10:58 +0100)
committerGuillaume Pellerin <yomguy@parisson.com>
Fri, 23 Jan 2015 09:58:52 +0000 (10:58 +0100)
telemeta/urls.py
telemeta/views/core.py
telemeta/views/item.py
telemeta/views/marker.py

index 46c5f761e1a111f3e66c8246215c90b58afc9658..37179626b7b166aae663d98da6c11f8bfccf07c2 100644 (file)
@@ -90,6 +90,7 @@ urlpatterns = patterns('',
     url(r'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/delete/$', item_view.item_delete, name="telemeta-item-delete"),
     url(r'^archives/items/(?P<item_public_id>[A-Za-z0-9._-]+)/related/(?P<media_id>[A-Za-z0-9._-]+)/view/$', item_view.related_media_item_stream, name="telemeta-item-related"),
     url(r'^archives/items/(?P<item_public_id>[A-Za-z0-9._-]+)/related/(?P<media_id>[A-Za-z0-9._-]+)/download/$', item_view.related_media_item_download, name="telemeta-item-related-download"),
+    url(r'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/markers/json/$', ItemMarkerJsonView.as_view(), name="telemeta-item-markers-json"),
 
     # Markers
     url(r'^archives/markers/(?P<marker_id>[A-Za-z0-9]+)/$', item_view.item_detail, name="telemeta-item-detail-marker"),
index 764484cf76ecf0340ac0711a99131ee09a0f189b..2e503eb0ae94cc75b25eff6db0f8dc41c38e8622 100644 (file)
@@ -44,6 +44,7 @@ import datetime
 import tempfile
 import zipfile
 import mimetypes
+import json
 
 from jsonrpc import jsonrpc_method
 
index be422e692efd3ae7844c63e62aafc39d3c5e5d3b..5c1c8ccc26674e4e0e414b444658b56138a625a5 100644 (file)
@@ -36,6 +36,7 @@
 
 
 from telemeta.views.core import *
+from telemeta.views.marker import *
 import timeside.core
 
 
@@ -1057,4 +1058,23 @@ class DublinCoreToFormatMetadata(object):
                     metadata[key] = value.decode('utf-8')
                 keys_done.append(key)
         return metadata
-        
\ No newline at end of file
+
+
+
+class ItemMarkerJsonView(View):
+
+    model = MediaItem
+
+    def get(self, request, *args, **kwargs):
+        code = self.kwargs['public_id']
+        marker_view = MarkerView()
+        item = MediaItem.objects.get(code=code)
+        markers = marker_view.get_markers(item.id)
+        if markers:
+            data = json.dumps(markers)
+        else:
+            data = ''
+        response = HttpResponse(data, content_type='application/json')
+        response['Content-Disposition'] = "attachment; filename=%s.%s" % \
+                                             (item.code, 'json')
+        return response
index 325275d055031f2d00565ecf09fe983c4af7558c..f031b7bcbaad88615aa72e3524be95e998edf642 100644 (file)
@@ -92,3 +92,5 @@ class MarkerView(object):
     def get_marker_id(request, public_id):
         marker = MediaItemMarker.objects.get(public_id=public_id)
         return marker.id
+
+