diff --git a/HISTORY.rst b/HISTORY.rst index c3632fb833..17d8cb091c 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -1,6 +1,7 @@ XX (2017-XX-XX) =============== - Add Django-mathfilters. +- Improve render of documents with no pages. 2.3 (2017-06-08) ================ diff --git a/mayan/apps/documents/tests/test_widgets.py b/mayan/apps/documents/tests/test_widgets.py new file mode 100644 index 0000000000..36af3c2f34 --- /dev/null +++ b/mayan/apps/documents/tests/test_widgets.py @@ -0,0 +1,14 @@ +from __future__ import unicode_literals + +from ..widgets import DocumentThumbnailWidget + +from .test_models import GenericDocumentTestCase + + +class DocumentWidgetTestCase(GenericDocumentTestCase): + def test_document_list_view_document_with_no_pages(self): + document_thumbnail_widget = DocumentThumbnailWidget() + self.document.pages.all().delete() + result = document_thumbnail_widget.render(instance=self.document) + + self.assertTrue(self.document.get_absolute_url() in result) diff --git a/mayan/apps/documents/widgets.py b/mayan/apps/documents/widgets.py index 92dae0d3e1..9c6f3f1d4b 100644 --- a/mayan/apps/documents/widgets.py +++ b/mayan/apps/documents/widgets.py @@ -268,19 +268,41 @@ class CarouselDocumentPageThumbnailWidget(BaseDocumentThumbnailWidget): class DocumentThumbnailWidget(BaseDocumentThumbnailWidget): def get_click_view_kwargs(self, instance): + #first_page = instance.pages.first() + #if first_page: return { 'pk': instance.pk, 'version_pk': instance.latest_version.pk, - 'page_pk': instance.latest_version.pages.first().pk + 'page_pk': instance.pages.first().pk } + def get_click_view_url(self, instance): + first_page = instance.pages.first() + if first_page: + return super(DocumentThumbnailWidget, self).get_click_view_url( + instance=instance + ) + else: + return '#' + def get_preview_view_kwargs(self, instance): + #first_page = instance.pages.first() + #if first_page: return { 'pk': instance.pk, 'version_pk': instance.latest_version.pk, - 'page_pk': instance.latest_version.pages.first().pk + 'page_pk': instance.pages.first().pk } + def get_preview_view_url(self, instance): + first_page = instance.pages.first() + if first_page: + return super(DocumentThumbnailWidget, self).get_preview_view_url( + instance=instance + ) + else: + return '' + def get_title(self, instance): return getattr(instance, 'label', None)