From: yomguy Date: Tue, 8 Mar 2011 10:33:47 +0000 (+0100) Subject: fix file upload, fix forms, fix no item.file for analyzers, cleanup X-Git-Tag: 1.1~402 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=92e75099e6c5d7a4ddd3f3a03397efa7c31015f2;p=telemeta.git fix file upload, fix forms, fix no item.file for analyzers, cleanup --- diff --git a/telemeta/models/media.py b/telemeta/models/media.py index 9f900dc6..d1fafeb3 100644 --- a/telemeta/models/media.py +++ b/telemeta/models/media.py @@ -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): diff --git a/telemeta/templates/telemeta_default/mediaitem_copy.html b/telemeta/templates/telemeta_default/mediaitem_copy.html index 0cca0bc8..bb4c8797 100644 --- a/telemeta/templates/telemeta_default/mediaitem_copy.html +++ b/telemeta/templates/telemeta_default/mediaitem_copy.html @@ -23,9 +23,16 @@ {% block infos %}
-
{% csrf_token %} - - {{ form }} + {% csrf_token %} +
+ {% for field in form %} + {% if not field.html_name == "copied_from_item" %} + + + + + {% endif %} + {% endfor %}
{{ field.errors }}
{{ field.label_tag }}: {{ field }}
diff --git a/telemeta/templates/telemeta_default/mediaitem_edit.html b/telemeta/templates/telemeta_default/mediaitem_edit.html index 60d3bea5..68b779f3 100644 --- a/telemeta/templates/telemeta_default/mediaitem_edit.html +++ b/telemeta/templates/telemeta_default/mediaitem_edit.html @@ -7,7 +7,7 @@ {% block infos %}
- {% csrf_token %} + {% csrf_token %} {% for field in form %} {% if not field.html_name == "copied_from_item" %} diff --git a/telemeta/web/base.py b/telemeta/web/base.py index 1bb3efb9..61f89ae2 100644 --- a/telemeta/web/base.py +++ b/telemeta/web/base.py @@ -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'])