]> git.parisson.com Git - telemeta.git/commitdiff
Fix performance and keywords copy during item copy
authorGuillaume Pellerin <yomguy@parisson.com>
Thu, 12 Feb 2015 15:47:15 +0000 (16:47 +0100)
committerGuillaume Pellerin <yomguy@parisson.com>
Thu, 12 Feb 2015 15:47:15 +0000 (16:47 +0100)
telemeta/models/item.py
telemeta/templates/telemeta/mediaitem_detail.html
telemeta/views/item.py

index db2417af767ef758b0e6528f7f8718e9dbf5857d..832f17f7ddeac3991a1414c9911a42316118136e 100644 (file)
@@ -475,7 +475,6 @@ class MediaItemIdentifier(Identifier):
         unique_together = ('identifier', 'item')
 
 
-
 class MediaPart(MediaResource):
     "Describe an item part"
     element_type = 'part'
index 312c2214b67e7e02653f298fb50f4886d4174c03..4e2d3d20e24557873d7f46169d41da9cdd68dd79 100644 (file)
 
     {% else %}
 
-    <div id="rightcol">
+    <div id="rightcol" style="float: right;">
         <div id="no-sound-access">
             {% trans "You don't have access to the media of this item." %} {% trans "Please contact the administrators to get more rights." %} <a href="{% url "telemeta-flatpage" 'legal_notices' %}" target="_blank">{% trans "Click here" %}</a>
         </div>
index 444c6ee8a223ee9c80339925a9e4f344a04ffa66..cfa5432e55197ebc7f5ed10938c75429ae9ec659 100644 (file)
@@ -815,11 +815,27 @@ class ItemCopyView(ItemAddView):
     template_name = 'telemeta/mediaitem_edit.html'
 
     def get_initial(self):
-        return model_to_dict(self.get_object())
+         return model_to_dict(self.get_object())
+
+    def forms_valid(self, form, inlines):
+        messages.info(self.request, ugettext_lazy("You have successfully updated your item."))
+        item = form.save()
+        item.set_revision(self.request.user)
+        if not MediaItemPerformance.objects.filter(media_item=item):
+            for performance in MediaItemPerformance.objects.filter(media_item=self.get_object()):
+                performance.pk = None
+                performance.id = None
+                performance.media_item = item
+                performance.save()
+        if not MediaItemKeyword.objects.filter(item=item):
+            for keyword in MediaItemKeyword.objects.filter(item=self.get_object()):
+                keyword.pk = None
+                keyword.id = None
+                keyword.item = item
+                keyword.save()
+        return super(ItemCopyView, self).forms_valid(form, inlines)
 
     def get_success_url(self):
-        #FIXME should be in form_valid but doesn't work with extra_views
-        self.get_object().set_revision(self.request.user)
         return reverse_lazy('telemeta-item-detail', kwargs={'public_id':self.object.code})
 
     def get_context_data(self, **kwargs):
@@ -1059,7 +1075,6 @@ class DublinCoreToFormatMetadata(object):
         return metadata
 
 
-
 class ItemMarkerJsonView(View):
 
     model = MediaItem