url(r'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/item_xspf.xml$', item_view.item_playlist, dict(template="telemeta/mediaitem_xspf.xml", mimetype="application/xspf+xml"), name="telemeta-item-xspf"),
url(r'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/edit/$', ItemEditView.as_view(), name="telemeta-item-edit"),
url(r'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/copy/$', ItemEditView.as_view(), name="telemeta-item-copy"),
- url(r'^archives/item_new/add/$', ItemAddView.as_view(), name="telemeta-item-add"),
+ url(r'^archives/items_add/$', ItemAddView.as_view(), name="telemeta-item-add"),
url(r'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/player/(?P<width>[0-9]+)x(?P<height>[0-9]+)/$', item_view.item_detail, dict(template='telemeta/mediaitem_player.html'), name="telemeta-item-player"),
url(r'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/player/(?P<width>[0-9]+)x(?P<height>[0-9]+)/simple/$', item_view.item_detail, dict(template='telemeta/mediaitem_player_simple.html'), name="telemeta-item-player-simple"),
url(r'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/player/(?P<width>[0-9]+)x(?P<height>[0-9]+)/countour/$', item_view.item_detail, dict(template='telemeta/mediaitem_player_contour.html'), name="telemeta-item-player-contour"),
- url(r'^archives/items/(?P<public_id>[A-Za-z0-9._-]+)/performances/$', item_view.item_performances_edit, dict(template='telemeta/mediaitem_performances_edit.html'), name="telemeta-item-performances_edit"),
- 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._-]+)/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"),
url(r'^archives/collections_sound/$', CollectionSoundListView.as_view(), name="telemeta-collections-sound"),
url(r'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/$', CollectionDetailView.as_view(), name="telemeta-collection-detail"),
url(r'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/dc/$', CollectionDetailViewDC.as_view(), name="telemeta-collection-dublincore"),
- url(r'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/collection_xspf.xml$', collection_view.collection_playlist, dict(template="telemeta/collection_xspf.xml", mimetype="application/xspf+xml"), name="telemeta-collection-xspf"),
- url(r'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/collection.m3u$', collection_view.collection_playlist, dict(template="telemeta/collection.m3u", mimetype="audio/mpegurl"), name="telemeta-collection-m3u"),
- url(r'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/edit/$', CollectionEditView.as_view(), name="telemeta-collection-edit"),
+ # url(r'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/collection_xspf.xml$', collection_view.collection_playlist, dict(template="telemeta/collection_xspf.xml", mimetype="application/xspf+xml"), name="telemeta-collection-xspf"),
+ # url(r'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/collection.m3u$', collection_view.collection_playlist, dict(template="telemeta/collection.m3u", mimetype="audio/mpegurl"), name="telemeta-collection-m3u"),
+ # url(r'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/edit/$', CollectionEditView.as_view(), name="telemeta-collection-edit"),
url(r'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/copy/$', CollectionCopyView.as_view(), name="telemeta-collection-copy"),
- url(r'^archives/collection_new/add/$', CollectionAddView.as_view(), name="telemeta-collection-add"),
+ url(r'^archives/collections_add//$', CollectionAddView.as_view(), name="telemeta-collection-add"),
url(r'^archives/collections/(?P<public_id>[A-Za-z0-9._-]+)/add_item/$', ItemAddView.as_view(), 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._-]+)/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"),
# FIXME: need all paths
url(r'^collections/(?P<path>[A-Za-z0-9._-s/]+)/$', RedirectView.as_view(), {'url': '/archives/collections/%(path)s/', 'permanent': False}, name="telemeta-collection-redir"),
url(r'^archives/(?P<type>[A-Za-z0-9._-]+)/(?P<public_id>[A-Za-z0-9._-]+)/delete/$', ResourceDeleteView.as_view(), 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._-]+)/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"),
# search
# url(r'^archives/$', home_view.search, name="telemeta-archives"),
def get_initial(self):
return model_to_dict(self.get_object())
+ def form_valid(self, form):
+ item = MediaItem()
+ if self.request.FILES:
+ item_form = MediaItemForm(data=self.request.POST, files=self.request.FILES, instance=item, prefix='item')
+ else:
+ item_form = MediaItemForm(data=self.request.POST, instance=item, prefix='item')
+
+ if item_form.is_valid():
+ item_form.save()
+ if not self.request.FILES:
+ item.file = source_item.file
+ item.save()
+
+ code = item_form.cleaned_data['code']
+ if not code:
+ code = str(item.id)
+ if format_form.is_valid():
+ format.item = item
+ format_form.save()
+
+ performances = MediaItemPerformance.objects.filter(media_item=source_item)
+ for performance in performances:
+ performance.pk = None
+ performance.id = None
+ performance.media_item = item
+ performance.save()
+
+ keywords = MediaItemKeyword.objects.filter(item=source_item)
+ for keyword in keywords:
+ keyword.pk = None
+ keyword.id = None
+ keyword.item = item
+ keyword.save()
+
+ item.set_revision(self.request.user)
+
+ self.code = form.cleaned_data['code']
+ return super(ItemCopyView, self).form_valid(form)
+
def get_success_url(self):
- return reverse_lazy('telemeta-item-detail', kwargs={'public_id':self.object.code})
+ return reverse_lazy('telemeta-item-detail', kwargs={'public_id':self.code})
class ItemDetailView(ItemViewMixin, DetailView):
self.model = self.types[type]['model']
self.form = self.types[type]['form']
self.related = self.types[type]['related']
- self.related_form = self.types[type]['related_form']
self.parent = self.types[type]['parent']
self.type = 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):
- self.setup(type)
- resource = self.model.objects.get(code=public_id)
- ResourceRelatedFormSet = inlineformset_factory(self.model, self.related, form=self.related_form)
- if request.method == 'POST':
- formset = ResourceRelatedFormSet(data=request.POST, files=request.FILES, instance=resource)
- if formset.is_valid():
- formset.save()
- resource.set_revision(request.user)
- return redirect('telemeta-resource-edit', self.type, public_id)
- else:
- formset = ResourceRelatedFormSet(instance=resource)
- return render(request, template, {'resource': resource, 'type': type, 'formset': formset,})
-
class ResourceMixin(View):
self.form = self.types[type]['form']
self.form_class = self.types[type]['form']
self.related = self.types[type]['related']
- self.related_form = self.types[type]['related_form']
self.parent = self.types[type]['parent']
self.inlines = self.types[type]['inlines']
self.type = type
context['count'] = self.object_list.count()
return context
+
class ResourceDetailView(ResourceSingleMixin, DetailView):
template_name = "telemeta/resource_detail.html"