<table class="listing" style="width:90%;margin-top: 3em">
<tr>
<td style="border-bottom:1px solid #6A0307;color:#6A0307;font-size: 100%">{{ playlist.playlist.title }}</td>
- <td style="width:33ex; padding-right: 0; border-bottom:1px solid #6A0307; text-align:right">
- <a href="{% url telemeta-playlist-csv-export playlist.playlist.public_id %}" class="component_icon button icon_csv">CSV</a>
+ <td style="width:66ex; padding-right: 0; border-bottom:1px solid #6A0307; text-align:right">
+ <a href="{% url telemeta-playlist-csv-export playlist.playlist.public_id 'collections' %}" class="component_icon button icon_csv">CSV Collections</a>
+ <a href="{% url telemeta-playlist-csv-export playlist.playlist.public_id 'items' %}" class="component_icon button icon_csv">CSV Items</a>
<a href="#" id="{{playlist.playlist.public_id}}" onclick="playlistUtils.remove(this.id);return false;" class="component_icon button icon_cancel">{% trans "Delete" %}</a>
</td>
</tr>
url(r'^item/add/$', web_view.item_add,
dict(template='telemeta/mediaitem_add.html'), name="telemeta-item-add"),
+ # Markers
+ url(r'^markers/(?P<marker_id>[A-Za-z0-9]+)/$', web_view.item_detail, name="telemeta-item-detail-marker"),
+
# collections
url(r'^collections/$', 'django.views.generic.list_detail.object_list',
dict(all_collections, paginate_by=20,
url(r'^json/(?P<method>[a-zA-Z0-9.]+)$', jsonrpc_site.dispatch), # for HTTP GET only, also omissible
# Playlists
- url(r'^playlists/(?P<public_id>[a-zA-Z0-9]+)/csv/$', web_view.playlist_csv_export, name="telemeta-playlist-csv-export"),
+ url(r'^playlists/(?P<public_id>[a-zA-Z0-9]+)/(?P<resource_type>[a-zA-Z0-9]+)/csv/$', web_view.playlist_csv_export, name="telemeta-playlist-csv-export"),
- # Markers
- url(r'^markers/(?P<marker_id>[A-Za-z0-9]+)/$', web_view.item_detail, name="telemeta-item-detail-marker"),
-
# RSS feeds
url(r'^rss/$', web_view.rss, name="telemeta-rss"),
m = PlaylistResource.objects.get(public_id=public_id)
m.delete()
- def playlist_csv_export(self, request, public_id):
+
+ def playlist_csv_export(self, request, public_id, resource_type):
playlist = Playlist.objects.get(public_id=public_id, author=request.user)
resources = PlaylistResource.objects.filter(playlist=playlist)
response = HttpResponse(mimetype='text/csv')
- response['Content-Disposition'] = 'attachment; filename='+playlist.title+'.csv'
+ response['Content-Disposition'] = 'attachment; filename='+playlist.title+'_'+resource_type+'.csv'
writer = UnicodeWriter(response)
- items = []
+ elements = []
for resource in resources:
- if resource.resource_type == 'collection':
- collection = MediaCollection.objects.get(pk=resource.resource_id)
- collection_items = MediaItem.objects.filter(collection=collection)
- for item in collection_items:
- items.append(item)
- elif resource.resource_type == 'item':
- item = MediaItem.objects.get(pk=resource.resource_id)
- items.append(item)
- else:
- pass
-
- if items:
- item = item.to_dict()
- tags = item.keys()
+ if resource_type == 'items':
+ if resource.resource_type == 'collection':
+ collection = MediaCollection.objects.get(pk=resource.resource_id)
+ collection_items = MediaItem.objects.filter(collection=collection)
+ for item in collection_items:
+ elements.append(item)
+ elif resource.resource_type == 'item':
+ item = MediaItem.objects.get(pk=resource.resource_id)
+ elements.append(item)
+
+ elif resource_type == 'collections':
+ if resource.resource_type == 'collection':
+ collection = MediaCollection.objects.get(pk=resource.resource_id)
+ elements.append(collection)
+
+ if elements:
+ element = elements[0].to_dict()
+ tags = element.keys()
writer.writerow(tags)
- import types
- for item in items:
+ for element in elements:
data = []
- item = item.to_dict()
+ element = element.to_dict()
for tag in tags:
- data.append(item[tag])
+ data.append(element[tag])
writer.writerow(data)
return response
-
+
def help(self, request):
"""Render the help page"""
template = loader.get_template('telemeta/index.html')