url(r'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/add_item/$', item_view.item_add,
dict(template='telemeta/mediaitem_add.html'), name="telemeta-collection-additem"),
url(r'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/delete/$', collection_view.collection_delete, name="telemeta-collection-delete"),
- url(r'^archives/collections/(?P<collection_public_id>[A-Za-z0-9._-]+)/related/(?P<media_id>[A-Za-z0-9._-]+)$', collection_view.related_media_collection_stream, name="telemeta-collection-related"),
+ url(r'^archives/collections/(?P<collection_public_id>[A-Za-z0-9._-]+)/related/(?P<media_id>[A-Za-z0-9._-]+)/view/$', collection_view.related_media_collection_stream, name="telemeta-collection-related"),
+ url(r'^archives/collections/(?P<collection_public_id>[A-Za-z0-9._-]+)/related/(?P<media_id>[A-Za-z0-9._-]+)/download/$', collection_view.related_media_collection_download, name="telemeta-collection-related-download"),
+
url(r'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/related_edit/$', collection_view.related_media_edit, dict(template='telemeta/collection_related_edit.html'), name="telemeta-collection-related_edit"),
url(r'^archives/collections_sound/$', 'django.views.generic.list_detail.object_list',
dict(all_collections_sound, paginate_by=20, template_name="telemeta/collection_list.html"), name="telemeta-collections-sound"),
url(r'^archives/(?P<type>[A-Za-z0-9._-]+)_add$', resource_view.add,
dict(template='telemeta/resource_add.html'), name="telemeta-resource-add"),
url(r'^archives/(?P<type>[A-Za-z0-9._-]+)/(?P<public_id>[A-Za-z0-9._-]+)/delete/$', resource_view.delete, name="telemeta-resource-delete"),
- url(r'^archives/(?P<type>[A-Za-z0-9._-]+)/(?P<public_id>[A-Za-z0-9._-]+)/related/(?P<media_id>[A-Za-z0-9._-]+)$', resource_view.related_stream, name="telemeta-resource-related"),
+ url(r'^archives/(?P<type>[A-Za-z0-9._-]+)/(?P<public_id>[A-Za-z0-9._-]+)/related/(?P<media_id>[A-Za-z0-9._-]+)/view/$', resource_view.related_stream, name="telemeta-resource-related"),
+ url(r'^archives/(?P<type>[A-Za-z0-9._-]+)/(?P<public_id>[A-Za-z0-9._-]+)/related/(?P<media_id>[A-Za-z0-9._-]+)/download/$', resource_view.related_download, name="telemeta-resource-related-download"),
url(r'^archives/(?P<type>[A-Za-z0-9._-]+)/(?P<public_id>[A-Za-z0-9._-]+)/related_edit/$', resource_view.related_edit, dict(template='telemeta/resource_related_edit.html'), name="telemeta-resource-related_edit"),
url(r'^archives/(?P<type>[A-Za-z0-9._-]+)/(?P<public_id>[A-Za-z0-9._-]+)/dc/$', resource_view.detail,
{'template': 'telemeta/resource_detail_dc.html'},
# response['Content-Disposition'] = 'attachment'
return response
+ def related_media_collection_download(self, request, collection_public_id, media_id):
+ collection = MediaCollection.objects.get(public_id=collection_public_id)
+ media = MediaCollectionRelated.objects.get(collection=collection, id=media_id)
+ filename = media.file.path.split(os.sep)[-1]
+ response = HttpResponse(stream_from_file(media.file.path), mimetype=media.mime_type)
+ response['Content-Disposition'] = 'attachment; ' + 'filename=' + filename
+ return response
+
@method_decorator(permission_required('telemeta.change_mediacollection'))
def related_media_edit(self, request, public_id, template):
collection = MediaCollection.objects.get(public_id=public_id)
from telemeta.backup import CollectionSerializer
from telemeta.util import zipstream
import json
-
- z = zipstream.ZipFile()
+
+ z = zipstream.ZipFile()
cache_data = TelemetaCache(settings.TELEMETA_DATA_CACHE_DIR)
-
+
collection = self.get_object()
serializer = CollectionSerializer(collection)
response = HttpResponse(stream_from_file(media.file.path), mimetype=media.mime_type)
return response
+ def related_download(self, request, type, public_id, media_id):
+ self.setup(type)
+ resource = self.model.objects.get(code=public_id)
+ media = self.related.objects.get(resource=resource, id=media_id)
+ filename = media.file.path.split(os.sep)[-1]
+ response = HttpResponse(stream_from_file(media.file.path), mimetype=media.mime_type)
+ response['Content-Disposition'] = 'attachment; ' + 'filename=' + filename
+ return response
+
@jsonrpc_method('telemeta.add_fonds_related_media')
@jsonrpc_method('telemeta.add_corpus_related_media')
def related_edit(self, request, type, public_id, template):