]> git.parisson.com Git - telemeta.git/commitdiff
add related media download view - fix #156
authorGuillaume Pellerin <yomguy@parisson.com>
Mon, 24 Mar 2014 12:51:16 +0000 (13:51 +0100)
committerGuillaume Pellerin <yomguy@parisson.com>
Mon, 24 Mar 2014 12:51:16 +0000 (13:51 +0100)
telemeta/templates/telemeta/inc/mediaitem_related.html
telemeta/urls.py
telemeta/views/item.py

index 0ab107d7c84ee60a6f83997a2b9c856534bcb9e8..f4de8343c3a428ffe4bceba4651725fc2373e021 100644 (file)
                                 <dt>{% trans "Credits" %}</dt>
                                 <dd>{{ media.credits }}</dd>
                                 {% dl_field media "mime_type" %}
-                                <dt>{% trans "URL" %}</dt>
+                                <dt>{% trans "Download" %}</dt>
                                 <dd>
                                 {% if media.url %}
                                     <a href="{{ media.url }}" target="_blank">{{ media.url }}</a>
                                 {% else %}
                                     {% if media.file %}
-                                    <a href="{% url telemeta-item-related item.public_id media.id %}" target="_blank">
-                                    {% url telemeta-item-related item.public_id media.id %}
+                                    <a href="{% url telemeta-item-related-download item.public_id media.id %}" target="_blank">
+                                     {{ media.file|get_filename }}
                                     </a>
                                     {% endif %}
                                 {% endif %}
index a8774bfda0a82cd58252f2651cf9258cfadf3802..88154c403b5d9767c463a7752279aed8a1bf619e 100644 (file)
@@ -122,7 +122,8 @@ urlpatterns = patterns('',
     url(r'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/keywords/$', item_view.item_keywords_edit,
         dict(template='telemeta/mediaitem_keywords_edit.html'), name="telemeta-item-keywords_edit"),
     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._-]+)$', 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._-]+)/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._-]+)/related_edit/$', item_view.related_media_edit,  dict(template='telemeta/mediaitem_related_edit.html'), name="telemeta-item-related_edit"),
     # Markers
     url(r'^archives/markers/(?P<marker_id>[A-Za-z0-9]+)/$', item_view.item_detail, name="telemeta-item-detail-marker"),
index 99329d607a243f2c2c10aa4f28e40374a89a132a..11c2d7265783ac2080a0f5d02abe733e046960d9 100644 (file)
@@ -218,8 +218,16 @@ class ItemView(object):
     def related_media_item_stream(self, request, item_public_id, media_id):
         item = MediaItem.objects.get(public_id=item_public_id)
         media = MediaItemRelated.objects.get(item=item, 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='+media.title+'.'+ext
+        return response
+
+    def related_media_item_download(self, request, item_public_id, media_id):
+        item = MediaItem.objects.get(public_id=item_public_id)
+        media = MediaItemRelated.objects.get(item=item, 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_mediaitem'))