]> git.parisson.com Git - telemeta.git/commitdiff
cleanup old related forms
authorGuillaume Pellerin <yomguy@parisson.com>
Sun, 23 Nov 2014 23:25:48 +0000 (00:25 +0100)
committerGuillaume Pellerin <yomguy@parisson.com>
Sun, 23 Nov 2014 23:26:07 +0000 (00:26 +0100)
telemeta/templates/telemeta/collection_edit.html
telemeta/urls.py
telemeta/views/collection.py
telemeta/views/item.py
telemeta/views/resource.py

index 1ea79a6e808d2b68392f29918bd0d805d9fe7632..453aec42b2cedffc5bca81fcbe2447df3edd2032 100644 (file)
@@ -4,14 +4,14 @@
 {% load bootstrap3 %}
 
 {% block title %}
-    <img src="{{ STATIC_URL }}telemeta/images/collections_red.png" style="vertical-align:middle" /> Collection : {{ object.title }}
+    <img src="{{ STATIC_URL }}telemeta/images/collections_red.png" style="vertical-align:middle" /> Collection : {{ collection.title }}
 {% endblock %}
 
 {% block title_buttons %}
 <div class="fixedWidthAsPlayer">
     <img id="wait-img" style="display:none" style="vertical-align:middle" alt="wait" src="{{ STATIC_URL }}telemeta/images/wait.gif" />
     {% block cancel %}
-    <a id="cancel" href="{% url "telemeta-collection-detail" object.public_id %}">
+    <a id="cancel" href="{% url "telemeta-collection-detail" collection.code %}">
       <button type="button" class="btn btn-default">
         <span class="glyphicon glyphicon-remove"></span> {% trans "Cancel" %}
       </button>
@@ -63,7 +63,7 @@
 
     <div align="center" style="margin-top:3ex;">
     {% block cancel2 %}
-    <a id="cancel" href="{% url "telemeta-collection-detail" object.public_id %}">
+    <a id="cancel" href="{% url "telemeta-collection-detail" collection.code %}">
       <button type="button" class="btn btn-default">
         <span class="glyphicon glyphicon-remove"></span> {% trans "Cancel" %}
       </button>
index 301466396f72f91e9eca039c5745c7b1bd7e2ca3..19fb437e1e657f364ef63358829d16984191a723 100644 (file)
@@ -83,16 +83,13 @@ urlpatterns = patterns('',
     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"),
@@ -107,16 +104,15 @@ urlpatterns = patterns('',
     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"),
@@ -133,7 +129,6 @@ urlpatterns = patterns('',
     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"),
index e1878f77a3491fd031240c69200dad0535b4c665..0ee2793e2a61ba8f0b0f15736f835075688e25e1 100644 (file)
@@ -331,3 +331,9 @@ class CollectionCopyView(CollectionAddView):
 
     def get_success_url(self):
         return reverse_lazy('telemeta-collection-detail', kwargs={'public_id':self.object.code})
+
+    def get_context_data(self, **kwargs):
+        context = super(CollectionCopyView, self).get_context_data(**kwargs)
+        collection = self.get_object()
+        context['collection'] = collection
+        return context
\ No newline at end of file
index af1230a21f28f23718d0d42b870c3dad6b69473a..f5763ebac6531c64d8136354019db0506a25ff5c 100644 (file)
@@ -777,8 +777,47 @@ class ItemCopyView(ItemAddView):
     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):
index 77077d9d44b0d13417bd80976430b911c332e352..7598cf3db8a2566770d7f4e2b9e08d6ee56febf6 100644 (file)
@@ -59,7 +59,6 @@ class ResourceView(object):
         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
 
@@ -167,22 +166,6 @@ class ResourceView(object):
         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):
 
@@ -207,7 +190,6 @@ 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
@@ -292,6 +274,7 @@ class ResourceListView(ResourceMixin, ListView):
         context['count'] = self.object_list.count()
         return context
 
+
 class ResourceDetailView(ResourceSingleMixin, DetailView):
 
     template_name = "telemeta/resource_detail.html"