From 7bfeb5be9ed0376366fd5e3109c7eef31315172f Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Fri, 23 Jan 2015 10:58:52 +0100 Subject: [PATCH] add a json url to dump item markers --- telemeta/urls.py | 1 + telemeta/views/core.py | 1 + telemeta/views/item.py | 22 +++++++++++++++++++++- telemeta/views/marker.py | 2 ++ 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/telemeta/urls.py b/telemeta/urls.py index 46c5f761..37179626 100644 --- a/telemeta/urls.py +++ b/telemeta/urls.py @@ -90,6 +90,7 @@ urlpatterns = patterns('', url(r'^archives/items/(?P[A-Za-z0-9._-]+)/delete/$', item_view.item_delete, name="telemeta-item-delete"), url(r'^archives/items/(?P[A-Za-z0-9._-]+)/related/(?P[A-Za-z0-9._-]+)/view/$', item_view.related_media_item_stream, name="telemeta-item-related"), url(r'^archives/items/(?P[A-Za-z0-9._-]+)/related/(?P[A-Za-z0-9._-]+)/download/$', item_view.related_media_item_download, name="telemeta-item-related-download"), + url(r'^archives/items/(?P[A-Za-z0-9._-]+)/markers/json/$', ItemMarkerJsonView.as_view(), name="telemeta-item-markers-json"), # Markers url(r'^archives/markers/(?P[A-Za-z0-9]+)/$', item_view.item_detail, name="telemeta-item-detail-marker"), diff --git a/telemeta/views/core.py b/telemeta/views/core.py index 764484cf..2e503eb0 100644 --- a/telemeta/views/core.py +++ b/telemeta/views/core.py @@ -44,6 +44,7 @@ import datetime import tempfile import zipfile import mimetypes +import json from jsonrpc import jsonrpc_method diff --git a/telemeta/views/item.py b/telemeta/views/item.py index be422e69..5c1c8ccc 100644 --- a/telemeta/views/item.py +++ b/telemeta/views/item.py @@ -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 diff --git a/telemeta/views/marker.py b/telemeta/views/marker.py index 325275d0..f031b7bc 100644 --- a/telemeta/views/marker.py +++ b/telemeta/views/marker.py @@ -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 + + -- 2.39.5