Browse Source

Show parent dataset if existing

Matthias Vogelgesang 7 years ago
parent
commit
37a7b90128
2 changed files with 37 additions and 20 deletions
  1. 30 19
      nova/templates/dataset/detail.html
  2. 7 1
      nova/views.py

+ 30 - 19
nova/templates/dataset/detail.html

@@ -1,5 +1,26 @@
 {% set page_title = 'Dataset ' + dataset.name %}
 {% extends "layout.html" %}
+{% macro dataset_row(collection, dataset) -%}
+<div class="row dataset-pad">
+  <div class="col-lg-1">
+    {% if dataset.has_thumbnail %}
+    <img class="img-responsive" width="64" height="64" src="{{ url_for("show_dataset", name=collection.user.name, collection_name=collection.name, dataset_name=dataset.name, path='.thumb.jpg') }}"/>
+    {% else %}
+    <img class="img-responsive" src="https://placeholdit.imgix.net/~text?txtsize=33&txt=%C3%97&w=64&h=64"/>
+    {% endif %}
+  </div>
+  <div class="col-lg-11">
+    <h3 class="dataset-link">
+      <a href="{{ url_for("show_dataset", name=collection.user.name, collection_name=collection.name, dataset_name=dataset.name) }}">{{ dataset.name }}</a>
+    </h3>
+    <p>
+    {% if dataset.description %}
+      {{ dataset.description }}
+    {% endif %}
+    </p>
+  </div>
+</div>
+{%- endmacro %}
 {% block body %}
 <div class="row">
   <div class="col-lg-12">
@@ -29,6 +50,14 @@
     {% endif %}
   </div>
 </div>
+{% if parents %}
+<div class="row">
+  <div class="col-lg-12">
+    <h3>Parent dataset</h3>
+  </div>
+</div>
+{{ dataset_row(collection, parents[0]) }}
+{% endif %}
 {% if children %}
 <div class="row">
   <div class="col-lg-12">
@@ -36,25 +65,7 @@
   </div>
 </div>
 {% for dataset in children %}
-<div class="row dataset-pad">
-  <div class="col-lg-1">
-    {% if dataset.has_thumbnail %}
-    <img class="img-responsive" width="64" height="64" src="{{ url_for("show_dataset", name=collection.user.name, collection_name=collection.name, dataset_name=dataset.name, path='.thumb.jpg') }}"/>
-    {% else %}
-    <img class="img-responsive" src="https://placeholdit.imgix.net/~text?txtsize=33&txt=%C3%97&w=64&h=64"/>
-    {% endif %}
-  </div>
-  <div class="col-lg-11">
-    <h3 class="dataset-link">
-      <a href="{{ url_for("show_dataset", name=collection.user.name, collection_name=collection.name, dataset_name=dataset.name) }}">{{ dataset.name }}</a>
-    </h3>
-    <p>
-    {% if dataset.description %}
-      {{ dataset.description }}
-    {% endif %}
-    </p>
-  </div>
-</div>
+  {{ dataset_row(collection, dataset) }}
 {% endfor %}
 {% endif %}
 {% if dataset.type == "samplescan" %}

+ 7 - 1
nova/views.py

@@ -445,9 +445,14 @@ def show_dataset(name, collection_name, dataset_name, path=''):
     # FIXME: check access rights
     # FIXME: scream if no dataset found
 
+    parents = Dataset.query.join(Process.source).\
+        filter(Process.destination_id == dataset.id).all()
+
     children = Dataset.query.join(Process.destination).\
         filter(Process.source_id == dataset.id).all()
 
+    print parents
+
     parts = path.split('/')
     subpaths = []
 
@@ -463,7 +468,8 @@ def show_dataset(name, collection_name, dataset_name, path=''):
             else:
                 subpaths.append((part, part))
 
-    params = dict(collection=collection, dataset=dataset, children=children,
+    params = dict(collection=collection, dataset=dataset,
+                  parents=parents, children=children,
                   path=path, list_files=list_files,
                   subpaths=subpaths, files=files, dirs=dirs, origin=[])