diff --git a/app/Resources/views/default/related_dataset_link.html.twig b/app/Resources/views/default/related_dataset_link.html.twig
deleted file mode 100755
index 4f6b0ab6..00000000
--- a/app/Resources/views/default/related_dataset_link.html.twig
+++ /dev/null
@@ -1 +0,0 @@
-{{ title }}
diff --git a/app/Resources/views/default/related_dataset_links.html.twig b/app/Resources/views/default/related_dataset_links.html.twig
new file mode 100755
index 00000000..7fb59b05
--- /dev/null
+++ b/app/Resources/views/default/related_dataset_links.html.twig
@@ -0,0 +1,11 @@
+
Related Datasets
+
+ {% for related in relatedDatasets %}
+
+ {% endfor %}
+
diff --git a/app/Resources/views/default/view_dataset.html.twig b/app/Resources/views/default/view_dataset.html.twig
index e7ae7f53..a308bce9 100755
--- a/app/Resources/views/default/view_dataset.html.twig
+++ b/app/Resources/views/default/view_dataset.html.twig
@@ -207,22 +207,8 @@
View articles which use this dataset
{% if (dataset.relatedDatasets.count > 0) %}
- Related Datasets
-
- {% for related in dataset.relatedDatasets %}
-
- {{ render(controller('AppBundle:RelatedDataset:relatedDataset',{'id':related.relatedDatasetUid})) }}
- {% if related.relationshipNotes %}
-
{{ related.relationshipNotes }}
- {% endif %}
-
- {% endfor %}
-
- {% if (related.relationshipNotes is defined) %}
- Related Dataset - Note
- {{ related.relationshipNotes }}
- {% endif %}
- {% endif %}
+ {{ render(controller('AppBundle:RelatedDataset:relatedDataset',{'relatedDatasets':dataset.relatedDatasets})) }}
+ {% endif %}
diff --git a/app/Resources/views/default/view_dataset_external.html.twig b/app/Resources/views/default/view_dataset_external.html.twig
index b4f3de16..3d0094d4 100755
--- a/app/Resources/views/default/view_dataset_external.html.twig
+++ b/app/Resources/views/default/view_dataset_external.html.twig
@@ -433,22 +433,8 @@ $(function () {
{% endif %}
{% if (dataset.relatedDatasets.count > 0) %}
- Related Datasets
-
- {% for related in dataset.relatedDatasets %}
-
- {{ render(controller('AppBundle:RelatedDataset:relatedDataset',{'id':related.relatedDatasetUid})) }}
- {% if related.relationshipNotes %}
-
{{ related.relationshipNotes }}
- {% endif %}
-
- {% endfor %}
-
- {% if (related.relationshipNotes is defined) %}
- Related Dataset - Note
- {{ related.relationshipNotes }}
- {% endif %}
- {% endif %}
+ {{ render(controller('AppBundle:RelatedDataset:relatedDataset',{'relatedDatasets':dataset.relatedDatasets})) }}
+ {% endif %}
diff --git a/app/Resources/views/default/view_dataset_internal.html.twig b/app/Resources/views/default/view_dataset_internal.html.twig
index 4b905761..f3661b4a 100755
--- a/app/Resources/views/default/view_dataset_internal.html.twig
+++ b/app/Resources/views/default/view_dataset_internal.html.twig
@@ -410,22 +410,8 @@ $(function () {
{% endif %}
{% if (dataset.relatedDatasets.count > 0) %}
- Related Datasets
-
- {% for related in dataset.relatedDatasets %}
-
- {{ render(controller('AppBundle:RelatedDataset:relatedDataset',{'id':related.relatedDatasetUid})) }}
- {% if related.relationshipNotes %}
-
{{ related.relationshipNotes }}
- {% endif %}
-
- {% endfor %}
-
- {% if (related.relationshipNotes is defined) %}
- Related Dataset - Note
- {{ related.relationshipNotes }}
- {% endif %}
- {% endif %}
+ {{ render(controller('AppBundle:RelatedDataset:relatedDataset',{'relatedDatasets':dataset.relatedDatasets})) }}
+ {% endif %}
diff --git a/src/AppBundle/Controller/RelatedDatasetController.php b/src/AppBundle/Controller/RelatedDatasetController.php
index 5ff8253d..18ccc009 100755
--- a/src/AppBundle/Controller/RelatedDatasetController.php
+++ b/src/AppBundle/Controller/RelatedDatasetController.php
@@ -33,27 +33,43 @@
class RelatedDatasetController extends Controller
{
/**
- * Return the rendered title and slug of a dataset given an ID
+ * Given a list of related datasets, fetch ones that are publicly-visible,
+ * and render a list for display in a dataset record
*
* @param int|string $id A dataset's UID
*
* @return Response A Response instance
*/
- public function relatedDatasetAction($id) {
+ public function relatedDatasetAction($relatedDatasets) {
- $em = $this->getDoctrine()->getManager();
+ $em = $this->getDoctrine()->getManager()->getRepository('AppBundle:Dataset');;
- $dataset = $em->getRepository('AppBundle:Dataset')
- ->findOneBy(array('dataset_uid'=>$id));
-
- return $this->render('default/related_dataset_link.html.twig',array(
- 'title' => $dataset->getTitle(),
- 'uid' => $dataset->getDatasetUid(),
- 'slug'=> $dataset->getSlug(),
- ));
+ $datasetsForDisplay = array();
+ foreach ($relatedDatasets as $related) {
+ // find dataset IF it is published AND not archived
+ $relatedDataset = $em->findOneBy(array(
+ 'dataset_uid' => $related->getRelatedDatasetUid(),
+ 'published' => 1,
+ 'archived' => 0
+ ));
+ if ($relatedDataset) {
+ $section = array('dataset' => $relatedDataset);
+ $notes = $related->getRelationshipNotes();
+ if ($notes) {
+ $section['relationshipNotes'] = $notes;
+ }
+ $datasetsForDisplay[] = $section;
+ }
+ }
+ if ($datasetsForDisplay) {
+ return $this->render('default/related_dataset_links.html.twig',array(
+ 'relatedDatasets' => $datasetsForDisplay,
+ ));
+ } else {
+ // return empty response so the "Related Datasets" field will not appear
+ return new Response();
+ }
}
-
-
}