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
+ 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
- - {% 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
- - {% 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
- - {% 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(); + } } - - }