]> git.parisson.com Git - timeside.git/commitdiff
Server: fix models.py (was allergic to 'yield') dev-server-TM
authorThomas Fillon <thomas@parisson.com>
Fri, 5 Dec 2014 16:20:48 +0000 (17:20 +0100)
committerThomas Fillon <thomas@parisson.com>
Fri, 5 Dec 2014 16:20:48 +0000 (17:20 +0100)
timeside/server/models.py
timeside/server/templates/timeside/item_detail.html
timeside/server/views.py

index 21558f742d1b50eed429dda87d2c9ddb1ee1542e..a6b701872755e619206d64efae7d85428a6337a8 100644 (file)
@@ -239,7 +239,7 @@ class Result(BaseResource):
         self.save()
 
     def __unicode__(self):
-        return '_'.join([self.item.title, unicode(self.parameters.processor)])
+        return '_'.join([self.item.title, unicode(self.preset.processor)])
 
 
 class Task(BaseResource):
@@ -269,7 +269,6 @@ class Task(BaseResource):
 
     def run(self, streaming=False):
         self.status_setter(_RUNNING)
-
         results_root = 'results'
         results_path = os.path.join(settings.MEDIA_ROOT, results_root)
         if not os.path.exists(results_path):
@@ -309,21 +308,27 @@ class Task(BaseResource):
                 hdf5_file = str(self.experience.uuid) + '.hdf5'
                 item.hdf5 = os.path.join(item_path, hdf5_file)
                 item.save()
-            if streaming:
+
+            def stream_task(pipe):
                 for chunk in pipe.stream():
                     yield chunk
+
+            if streaming:
+                stream_task(pipe)
             else:
                 pipe.run()
+
             item.lock_setter(True)
-            #pipe.results.to_hdf5(item.hdf5.path)
+            # pipe.results.to_hdf5(item.hdf5.path)
 
             for preset in presets.keys():
                 proc = presets[preset]
                 if proc.type == 'analyzer':
                     for result_id in proc.results.keys():
                         parameters = proc.results[result_id].parameters
-                        preset, c = Preset.objects.get_or_create(processor=preset.processor,
-                                                                 parameters=unicode(parameters))
+                        preset, c = Preset.objects.get_or_create(
+                            processor=preset.processor,
+                            parameters=unicode(parameters))
                         result, c = Result.objects.get_or_create(preset=preset,
                                                                  item=item)
                         hdf5_file = str(result.uuid) + '.hdf5'
@@ -370,11 +375,11 @@ def set_hash(sender, **kwargs):
 
 def run(sender, **kwargs):
     instance = kwargs['instance']
-    if instance.status == 2:
+    if instance.status == _PENDING:
         instance.run()
 
 
-pre_save.connect(set_mimetype, sender=Item)
-pre_save.connect(set_hash, sender=Item)
-pre_save.connect(set_mimetype, sender=Result)
+post_save.connect(set_mimetype, sender=Item)
+post_save.connect(set_hash, sender=Item)
+post_save.connect(set_mimetype, sender=Result)
 post_save.connect(run, sender=Task)
index 2511ceb854a77b3fbcba3f6c16481d290736119d..b123b7d7b6312d0870ad83b564b25d6fae00a481 100644 (file)
@@ -12,8 +12,9 @@
    <li>author: {{ object.author }}</li>
    <li>lock : {{ object.lock }}</li>
 
-
 </ul>
+
+
 {% block html5-player %}
  <audio controls>
   <source src="download/ogg" type="audio/ogg">
 Your browser does not support the audio element.
 </audio>
 {% endblock html5-player %}
-    {% block player %}
-
-
-    <div id="player_maximized" class="ts-skin-lab">
-       <div id="player_header">
-        <a href="#" class="toggle">Minimize</a>
-        <a href="#" class="embed_player_frame">&lt;/&gt;</a>
-       </div>
-        <div class="wazing"></div>
-    </div>
-    <div id="rightcol">
-        <div id="player_minimized" class="ts-skin-lab">
-            <a href="#" class="toggle">Maximize</a>
-            <a href="#" class="embed_player_frame">&lt;/&gt;</a>
-            <div class="wazing"></div>
-            <div id="player" class="ts-player">
-            </div>
-        </div>
-
-    {% if "video" in mime_type %}
-    <div>
-    <video id="my_video_1" class="video-js vjs-default-skin" width="362" height="240" controls preload="auto" data-setup="{}">
-        <!-- Hello Chrome and Firefox (and Opera?) -->
-        {% comment "Optional note" %}
-            <source src="{% url "telemeta-item-export" item.public_id mime_type|mime_to_ext %}" type="{{ mime_type }}" />
-        {% endcomment %}
-        </video>
-        <!--<div id="videotime"></div>-->
-    </div>
-    <script>
-    (function(){
-        var v = document.getElementsByTagName('video')[0]
-        var t = document.getElementById('videotime');
-        v.addEventListener('timeupdate',function(event){
-            t.innerHTML = v.currentTime;
-            },false);
-            })();
-    </script>
-    {% endif %}
-
-
-    </div>
 
 
 
-    {% endblock player %}
 {% endblock content %}
index 166dcf8b175d0f4e74333de75750457307cd8f55..624bfd6b59eaab4a183d58a1594082e0760d6a28 100644 (file)
@@ -209,9 +209,10 @@ class ItemExport(DetailView):
             if created:
                 selection.save()
                 selection.items.add(item)
-            task = Task(experience=experience, selection=selection,
-                        status=_DRAFT)
+            task, created = Task.objects.get_or_create(experience=experience,
+                                                       selection=selection)
             task.save()
+
             # Run task in streaming mode
             response = StreamingHttpResponse()
             response['streaming_content'] = task.run(streaming=True)