]> git.parisson.com Git - telemeta.git/commitdiff
fix file upload, fix forms, fix no item.file for analyzers, cleanup
authoryomguy <yomguy@parisson.com>
Tue, 8 Mar 2011 10:33:47 +0000 (11:33 +0100)
committeryomguy <yomguy@parisson.com>
Tue, 8 Mar 2011 10:33:47 +0000 (11:33 +0100)
telemeta/models/media.py
telemeta/templates/telemeta_default/mediaitem_copy.html
telemeta/templates/telemeta_default/mediaitem_edit.html
telemeta/web/base.py

index 9f900dc6c32025feb9b57a0c0e3c0d07dd07c9e6..d1fafeb3cdaf915e80cfc607dd635d6f289f92f0 100644 (file)
@@ -198,8 +198,8 @@ class MediaCollection(MediaResource):
     def save(self, force_insert=False, force_update=False):
         if not self.code:
             raise RequiredFieldError(self, self._meta.get_field('code'))
-#        if not self.is_valid_code(self.code):
-#            raise MediaInvalidCodeError("%s is not a valid code for this collection" % self.code)
+        if not self.is_valid_code(self.code):
+            raise MediaInvalidCodeError("%s is not a valid code for this collection" % self.code)
         super(MediaCollection, self).save(force_insert, force_update)
 
     class Meta(MetaCore):
@@ -281,9 +281,9 @@ class MediaItem(MediaResource):
         return False
 
     def save(self, force_insert=False, force_update=False):
-#        if self.code and not self.is_valid_code(self.code):
-#            raise MediaInvalidCodeError("%s is not a valid item code for collection %s" 
-#                                        % (self.code, self.collection.code))
+        if self.code and not self.is_valid_code(self.code):
+            raise MediaInvalidCodeError("%s is not a valid item code for collection %s" 
+                                        % (self.code, self.collection.code))
         super(MediaItem, self).save(force_insert, force_update)
 
     def computed_duration(self):
index 0cca0bc8b58875901ac29dd4c751352ba2627cdd..bb4c8797067c5a5165f892e0f841e23e3a7daf0d 100644 (file)
   
   {% block infos %}    
     <div class="infos">
-     <form method="POST" action="">{% csrf_token %}
-       <table>
-         {{ form }}
+     <form enctype="multipart/form-data" method="POST" action="">{% csrf_token %}
+      <table>
+       {% for field in form %}
+        {% if not field.html_name == "copied_from_item" %}
+        <tr>
+            <tr><td>{{ field.errors }}</td></tr>
+            <td>{{ field.label_tag }}:</td><td> {{ field }}</td>
+        </tr>
+        {% endif %}
+       {% endfor %}
        </table>
        <div align="center">
         <a href="{% url telemeta-item-detail item.public_id %}">
index 60d3bea526523d07140c77cd898f65bb2b22f866..68b779f303ae5fc5a2c874c8852aa02c978ec31e 100644 (file)
@@ -7,7 +7,7 @@
 
   {% block infos %}    
     <div class="infos">
-     <form method="POST" action="">{% csrf_token %}
+     <form enctype="multipart/form-data" method="POST" action="">{% csrf_token %}
       <table>
        {% for field in form %}
         {% if not field.html_name == "copied_from_item" %}
index 1bb3efb93f4c13cd23179a4d11f431c0fc93850d..61f89ae2c4ca35090a4c4d081ebf8a81de8d048f 100644 (file)
@@ -204,11 +204,11 @@ class WebView(object):
         previous, next = self.item_previous_next(item)
         analyzers = self.item_analyze(item)
    
-        return render(request, template, 
-                    {'item': item, 'export_formats': formats, 
-                    'visualizers': graphers, 'visualizer_id': grapher_id,'analysers': analyzers,  #FIXME analysers
-                    'audio_export_enabled': getattr(settings, 'TELEMETA_DOWNLOAD_ENABLED', True), 
-                    'previous' : previous, 'next' : next, 
+        return render(request, template,
+                    {'item': item, 'export_formats': formats,
+                    'visualizers': graphers, 'visualizer_id': grapher_id,'analysers': analyzers,
+                    'audio_export_enabled': getattr(settings, 'TELEMETA_DOWNLOAD_ENABLED', True),
+                    'previous' : previous, 'next' : next,
                     })
 
     @method_decorator(permission_required('telemeta.change_mediaitem'))
@@ -241,7 +241,7 @@ class WebView(object):
         
         return render(request, template, 
                     {'item': item, 'export_formats': formats, 
-                    'visualizers': graphers, 'visualizer_id': grapher_id,'analysers': analyzers,  #FIXME analysers
+                    'visualizers': graphers, 'visualizer_id': grapher_id,'analysers': analyzers,
                     'audio_export_enabled': getattr(settings, 'TELEMETA_DOWNLOAD_ENABLED', True), "form": form, 
                     'previous' : previous, 'next' : next, 
                     })
@@ -251,7 +251,7 @@ class WebView(object):
         """Show the details of a given item"""
         item = MediaItem()
         if request.method == 'POST':
-            form = MediaItemForm(request.POST, request.FILES, instance=item)
+            form = MediaItemForm(data=request.POST, files=request.FILES, instance=item)
             if form.is_valid():
                 form.save()
                 return HttpResponseRedirect('/items/'+form.cleaned_data['code'])
@@ -266,7 +266,7 @@ class WebView(object):
         item = MediaItem.objects.get(public_id=public_id)
         new_item = MediaItem()
         if request.method == 'POST':
-            form = MediaItemForm(request.POST, request.FILES, instance=new_item)
+            form = MediaItemForm(data=request.POST, files=request.FILES, instance=new_item)
             if form.is_valid():
                 form.save()
                 return HttpResponseRedirect('/items/'+form.cleaned_data['code'])
@@ -295,14 +295,11 @@ class WebView(object):
             if item.file:
                 decoder  = timeside.decoder.FileDecoder(item.file.path)
                 pipe = decoder
-                
                 for analyzer in self.analyzers:
                     subpipe = analyzer()
                     analyzers_sub.append(subpipe)
                     pipe = pipe | subpipe
-                    
                 pipe.run()
-                
                 mime_type = decoder.format()
                 analyzers.append({'name': 'Mime type', 'id': 'mime_type', 'unit': '', 'value': mime_type})
                     
@@ -319,10 +316,10 @@ class WebView(object):
                                       'unit':analyzer.unit(),
                                       'value':str(value)})
                   
-            self.cache.write_analyzer_xml(analyzers, analyze_file)
+                self.cache.write_analyzer_xml(analyzers, analyze_file)
+            
         return analyzers
         
-        
     def item_visualize(self, request, public_id, visualizer_id, width, height):
         item = MediaItem.objects.get(public_id=public_id)
         mime_type = 'image/png'
@@ -694,7 +691,6 @@ class WebView(object):
         return redirect('telemeta-home')
 
     @jsonrpc_method('telemeta.add_marker')
-#    @method_decorator(permission_required('telemeta.add_marker'))
     def add_marker(request, marker):
         # marker must be a dict
         if isinstance(marker, dict):
@@ -713,7 +709,6 @@ class WebView(object):
             raise 'Error : Bad marker dictionnary'
 
     @jsonrpc_method('telemeta.del_marker')
-#    @method_decorator(permission_required('telemeta.delete_marker'))
     def del_marker(request, public_id):
         m = MediaItemMarker.objects.get(public_id=public_id)
         m.delete()
@@ -733,7 +728,6 @@ class WebView(object):
         return list
 
     @jsonrpc_method('telemeta.update_marker')
-#    @method_decorator(permission_required('telemeta.change_marker'))
     def update_marker(request, marker):
         if isinstance(marker, dict):
             m = MediaItemMarker.objects.get(public_id=marker['public_id'])