Ver Fonte

Move decision, if volume is renderable to models.py

Add property in volumes.models.Volume to decide, if a rendering
is possible ('current status running, are there enough textures?')
Add depended showing of 'render' link to html views
Felix Schultze há 9 anos atrás
pai
commit
b65e5cea77
4 ficheiros alterados com 17 adições e 6 exclusões
  1. 1 1
      templates/layout.html
  2. 1 1
      templates/volumes/index.html
  3. 11 4
      templates/volumes/show.html
  4. 4 0
      volumes/models.py

+ 1 - 1
templates/layout.html

@@ -71,7 +71,7 @@
             version: {{ VERSION }} <br/>
         </div>
         {% if messages %}
-            <div class="errorMessage">
+            <div class="wrap errorMessage">
                 {% for message in messages %}
                     <p>{{ message }}</p>
                 {% endfor %}

+ 1 - 1
templates/volumes/index.html

@@ -11,7 +11,7 @@
     </td>
     <td>
     <ul class="button-box">
-      <li><a title="Render" href="{% url 'volumes:render-res' volume.id 1024 %}"><i class="fa fa-play-circle-o"><span>render</span></i></a></li>
+      {% if volume.rendering_possible %}<li><a title="Render" href="{% url 'volumes:render-res' volume.id 1024 %}"><i class="fa fa-play-circle-o"><span>render</span></i></a></li>{% endif %}
       <li><a title="Edit" href="{% url 'volumes:edit' volume.id %}"><i class="fa fa-pencil-square-o"><span>edit</span></i></a></li>
       <li><a title="Delete" href="{% url 'volumes:delete' volume.id %}"><i class="fa fa-trash-o"><span>delete</span></i></a></li>
     </ul>

+ 11 - 4
templates/volumes/show.html

@@ -57,7 +57,7 @@
 </table>
 
 
-{% if 'running' not in volume.generateSlicesStatus %}
+{% if volume.rendering_possible %}
 <h3>Textures</h3>
 
 <table>
@@ -109,19 +109,22 @@
 
 <ul class="vspace button-box">
   <li><a href="{% url 'volumes:home' %}"><i class="fa fa-arrow-circle-left"></i> back</a></li>
-  <li><a title="Render" href="{% url 'volumes:render-res' volume.id 1024 %}"><i class="fa fa-play-circle-o"><span>render</span></i></a></li>
+  {% if volume.rendering_possible %}<li><a title="Render" href="{% url 'volumes:render-res' volume.id 1024 %}"><i class="fa fa-play-circle-o"><span>render</span></i></a></li>{% endif %}
   <li><a title="Edit" href="{% url 'volumes:edit' volume.id %}"><i class="fa fa-pencil-square-o"><span>edit</span></i></a></li>
   <li><a title="Delete" href="{% url 'volumes:delete' volume.id %}"><i class="fa fa-trash-o"><span>delete</span></i></a></li>
 </ul>
 
 <script type="text/javascript">
     IPE.page = function() {
-        $('#show-generate').click(function () {
+        var showGenerateButton = $('#show-generate');
+        showGenerateButton.click(function () {
             $('#generate-form').toggle('show');
         });
 
         var generateSlicesStatus = '{{ volume.generateSlicesStatus }}';
         if(generateSlicesStatus.indexOf('running') !== -1) {
+            showGenerateButton.addClass('hidden');
+
             $('div.waiting').removeClass('hidden');
             var timeout = 5000;
             var getNewStatus = function() {
@@ -146,7 +149,11 @@
 
             setTimeout(getNewStatus, timeout);
         } else {
-            $('#generation-visibility').removeClass('hidden');
+            var texturesLength = parseInt('{{ volume.textures|length }}');
+
+            if(texturesLength == 0 || generateSlicesStatus.indexOf('failed') !== -1){
+                showGenerateButton.trigger('click');
+            }
         }
     };
 </script>

+ 4 - 0
volumes/models.py

@@ -248,6 +248,10 @@ class Volume(Document):
 
         return super(Volume, self).delete()
 
+    @property
+    def rendering_possible(self):
+        return 'running' not in self.generateSlicesStatus and len(self.textures) > 0
+
     @staticmethod
     def read_sprite(volumeId, spriteId):
         spriteId = ObjectId(spriteId)