def test_is_document(self):
        document = create(Builder('document'))
        mail = create(Builder('mail'))
        dossier = create(Builder('dossier'))

        self.assertTrue(IContentListingObject(obj2brain(document)).is_document)
        self.assertFalse(IContentListingObject(obj2brain(mail)).is_document)
        self.assertFalse(IContentListingObject(obj2brain(dossier)).is_document)
Beispiel #2
0
    def test_getIcon_returns_none_for_every_contenttype(self):
        self.login(self.regular_user)

        self.assertIsNone(
            IContentListingObject(obj2brain(self.dossier)).getIcon(), )

        self.assertIsNone(
            IContentListingObject(obj2brain(self.document)).getIcon(), )
Beispiel #3
0
    def test_is_trashed(self):
        self.grant('Administrator')

        document_a = create(Builder('document'))
        document_b = create(Builder('document').trashed())

        self.assertFalse(IContentListingObject(document_a).is_trashed)
        self.assertTrue(IContentListingObject(document_b).is_trashed)
    def test_getIcon_returns_none_for_every_contenttype(self):
        dossier = create(Builder('dossier'))
        document = create(Builder('document'))

        self.assertEquals(None,
                          IContentListingObject(obj2brain(dossier)).getIcon())

        self.assertEquals(None,
                          IContentListingObject(obj2brain(document)).getIcon())
Beispiel #5
0
    def test_is_document(self):
        self.login(self.regular_user)

        self.assertTrue(
            IContentListingObject(obj2brain(self.document)).is_document, )

        self.assertFalse(
            IContentListingObject(obj2brain(self.mail_eml)).is_document, )

        self.assertFalse(
            IContentListingObject(obj2brain(self.dossier)).is_document, )
    def test_is_removed(self):
        document_a = create(Builder('document'))
        document_b = create(Builder('document').removed())
        dossier = create(Builder('dossier'))

        self.assertFalse(
            IContentListingObject(obj2brain(document_a)).is_removed)
        self.assertTrue(
            IContentListingObject(obj2brain(document_b,
                                            unrestricted=True)).is_removed)
        self.assertFalse(IContentListingObject(obj2brain(dossier)).is_removed)
Beispiel #7
0
    def test_ContentTypeClass_returns_the_contenttype_icon_css_class(self):
        dossier = create(Builder('dossier'))
        document = create(Builder('document'))

        self.assertEquals(
            'contenttype-opengever-dossier-businesscasedossier',
            IContentListingObject(obj2brain(dossier)).ContentTypeClass())

        self.assertEquals(
            'contenttype-opengever-document-document',
            IContentListingObject(obj2brain(document)).ContentTypeClass())
Beispiel #8
0
    def test_ContentTypeClass_returns_the_contenttype_icon_css_class(self):
        self.login(self.regular_user)

        self.assertEquals(
            'contenttype-opengever-dossier-businesscasedossier',
            IContentListingObject(obj2brain(self.dossier)).ContentTypeClass(),
        )

        self.assertEquals(
            'icon-docx',
            IContentListingObject(obj2brain(self.document)).ContentTypeClass(),
        )
    def test_is_trashed(self):
        self.grant('Administrator')
        document_a = create(Builder('document'))
        document_b = create(Builder('document').trashed())

        dossier = create(Builder('dossier'))

        self.assertFalse(
            IContentListingObject(obj2brain(document_a)).is_trashed)
        self.assertTrue(
            IContentListingObject(obj2brain(document_b,
                                            unrestricted=True)).is_trashed)
        self.assertFalse(IContentListingObject(obj2brain(dossier)).is_trashed)
Beispiel #10
0
    def test_is_trashed(self):
        self.login(self.regular_user)

        self.assertFalse(
            IContentListingObject(obj2brain(self.document)).is_trashed, )

        Trasher(self.document).trash()

        self.assertTrue(
            IContentListingObject(obj2brain(self.document,
                                            unrestricted=True), ).is_trashed, )

        self.assertFalse(
            IContentListingObject(obj2brain(self.dossier)).is_trashed, )
Beispiel #11
0
    def test_is_removed(self):
        self.login(self.regular_user)

        self.assertFalse(
            IContentListingObject(obj2brain(self.dossier)).is_removed, )

        self.assertFalse(
            IContentListingObject(obj2brain(self.document)).is_removed, )

        self.login(self.manager)
        self.set_workflow_state('document-state-removed', self.document)

        self.assertTrue(
            IContentListingObject(obj2brain(self.document,
                                            unrestricted=True)).is_removed, )
Beispiel #12
0
    def _serialize_submitted_excerpt(self, item):
        if not item.has_proposal:
            return None

        excerpt = item.proposal.resolve_submitted_excerpt_document()
        if excerpt:
            return IContentListingObject(excerpt).render_link()
    def test_feed_order(self):
        article = self.create_content('collective.cart.core.Article')
        instance = IContentListingObject(article)
        self.assertEqual(instance.feed_order(), u'Edit')

        instance._realobject.feed_order = 3
        self.assertEqual(instance.feed_order(), 3)
Beispiel #14
0
 def test_cropped_description_returns_empty_string_for_objs_without_description(
         self):
     self.login(self.regular_user)
     self.assertEqual(
         '',
         IContentListingObject(obj2brain(
             self.empty_document)).CroppedDescription())
Beispiel #15
0
    def test_containing_dossier_title_is_cropped_to_near_200_chars(self):
        dossier = create(Builder('dossier')
                         .titled(25 * u'lorem ipsum '))
        document = create(Builder('document').within(dossier))

        self.assertCropping(
            201, IContentListingObject(obj2brain(document)).containing_dossier())
Beispiel #16
0
    def test_brain_summary(self):
        brain = self.catalog(UID=self.doc1.UID())[0]
        summary = getMultiAdapter((brain, self.request),
                                  ISerializeToJsonSummary)()

        self.assertDictEqual(
            {
                "@id": "http://nohost/plone/doc1",
                "@type": "DXTestDocument",
                "title": "Lorem Ipsum",
                "description": "Description",
                "review_state": "private",
            },
            summary,
        )

        # Must also work if we're dealing with a CatalogContentListingObject
        # (because the brain has already been adapted to IContentListingObject,
        # as is the case for collection results)
        listing_obj = IContentListingObject(brain)
        summary = getMultiAdapter((listing_obj, self.request),
                                  ISerializeToJsonSummary)()

        self.assertDictEqual(
            {
                "@id": "http://nohost/plone/doc1",
                "@type": "DXTestDocument",
                "title": "Lorem Ipsum",
                "description": "Description",
                "review_state": "private",
            },
            summary,
        )
Beispiel #17
0
    def test_brain_summary(self):
        brain = self.catalog(UID=self.doc1.UID())[0]
        summary = getMultiAdapter((brain, self.request),
                                  ISerializeToJsonSummary)()

        self.assertDictEqual(
            {
                '@id': 'http://nohost/plone/doc1',
                '@type': 'DXTestDocument',
                'title': 'Lorem Ipsum',
                'description': 'Description'
            }, summary)

        # Must also work if we're dealing with a CatalogContentListingObject
        # (because the brain has already been adapted to IContentListingObject,
        # as is the case for collection results)
        listing_obj = IContentListingObject(brain)
        summary = getMultiAdapter((listing_obj, self.request),
                                  ISerializeToJsonSummary)()

        self.assertDictEqual(
            {
                '@id': 'http://nohost/plone/doc1',
                '@type': 'DXTestDocument',
                'title': 'Lorem Ipsum',
                'description': 'Description'
            }, summary)
Beispiel #18
0
    def test_containing_dossier_returns_the_title_of_the_containing_dossier(self):
        dossier = create(Builder('dossier').titled(u'Testdossier'))
        document = create(Builder('document').within(dossier))

        self.assertEquals(
            'Testdossier',
            IContentListingObject(obj2brain(document)).containing_dossier())
Beispiel #19
0
    def test_overlay_title_is_document_title_utf8_encoded(self):
        document = create(Builder('document')
                          .titled('Anfrage B\xc3\xbcchel'.decode('utf-8')))

        self.assertEquals(
            u'Anfrage B\xfcchel',
            IContentListingObject(document).get_overlay_title())
    def test_get_breadcrumbs_returns_a_tuple_of_dicts_with_title_and_url(self):
        root = create(Builder('repository_root').titled(u'Ordnungssystem'))
        repo = create(Builder('repository').within(root).titled(u'Ablage 1'))
        dossier = create(
            Builder('dossier').within(repo).titled(
                'hans m\xc3\xbcller'.decode('utf-8')))
        document = create(
            Builder('document').titled('Anfrage Meier').within(
                dossier).with_dummy_content())

        self.assertEquals(
            (
                {
                    'absolute_url': 'http://nohost/plone/ordnungssystem',
                    'Title': 'Ordnungssystem'
                },
                {
                    'absolute_url':
                    'http://nohost/plone/ordnungssystem/ablage-1',
                    'Title': '1. Ablage 1'
                },
                {
                    'absolute_url':
                    'http://nohost/plone/ordnungssystem/ablage-1/dossier-1',  # noqa
                    'Title': 'hans m\xc3\xbcller'
                },
                {
                    'absolute_url':
                    'http://nohost/plone/ordnungssystem/ablage-1/dossier-1/document-1',  # noqa
                    'Title': 'Anfrage Meier'
                }),
            IContentListingObject(obj2brain(document)).get_breadcrumbs())
Beispiel #21
0
    def test_contenttypeclass_is_normalized_mimetype(self):
        document = create(Builder('document')
                          .attach_file_containing('DATA', u'test.pdf'))

        self.assertEquals(
            'icon-pdf',
            IContentListingObject(document).ContentTypeClass())
Beispiel #22
0
    def __call__(self):
        field_list = self.request.form.get('items.fl', '').strip()
        if field_list:
            field_list = field_list.split(',')
        else:
            field_list = ['@type', 'title', 'description', 'review_state']

        obj = IContentListingObject(self.context)
        summary = json_compatible({
            '@id': obj.getURL(),
        })

        for field in field_list:
            accessor = FIELD_ACCESSORS.get(field)
            if accessor is None:
                continue
            if isinstance(accessor, str):
                value = getattr(obj, accessor, None)
                if callable(value):
                    value = value()
            else:
                value = accessor(obj)
            summary[field] = json_compatible(value)

        if ('title' in summary
                and ITranslatedTitleSupport.providedBy(self.context)):
            # Update title to contain translated title in negotiated language
            attr = 'title_{}'.format(get_preferred_language_code())
            summary['title'] = getattr(self.context, attr)

        return summary
    def test_containing_dossier_returns_empty_string_for_object_not_in_a_dossier(
            self):  # noqa
        repository = create(Builder('repository'))

        self.assertEquals(
            '',
            IContentListingObject(obj2brain(repository)).containing_dossier())
 def __getitem__(self, index):
     """`x.__getitem__(index)` <==> `x[index]`
     """
     if isinstance(index, slice):
         return IContentListing(
             self._basesequence[index.start:index.stop:index.step])
     return IContentListingObject(self._basesequence[index])
Beispiel #25
0
    def test_uses_documentlinkrenderer_for_mails(self):
        self.login(self.regular_user)

        self.assertEquals(
            u'PATCHED LINK Die B\xfcrgschaft'.encode('utf-8'),
            IContentListingObject(obj2brain(self.mail_eml)).render_link(),
        )
Beispiel #26
0
    def test_uses_documentlinkrenderer_for_documents(self):
        self.login(self.regular_user)

        self.assertEquals(
            u'PATCHED LINK Vertr\xe4gsentwurf'.encode('utf-8'),
            IContentListingObject(obj2brain(self.document)).render_link(),
        )
Beispiel #27
0
    def test_containing_dossier_of_a_dossier_returns_dossiers_title(self):
        self.login(self.regular_user)

        brain = obj2brain(self.dossier)
        self.assertEquals(
            u'Vertr\xe4ge mit der kantonalen Finanzverwaltung'.encode('utf-8'),
            IContentListingObject(brain).containing_dossier(),
        )
    def test_cropped_description_returns_empty_string_for_objs_without_description(
            self):  # noqa
        document = create(Builder('document'))

        self.assertEquals(
            '',
            IContentListingObject(obj2brain(document)).CroppedDescription(),
        )
 def setUp(self):
     super(TestIndividualRealContentItems, self).setUp()
     self.folder.invokeFactory('Document',
                               'mypage',
                               title='My Page',
                               description='blah')
     self.item = IContentListingObject(self.folder.mypage)
     self.realitem = self.folder.mypage
 def test_job_state(self):
     view = self.getview()
     pc = self.portal.portal_catalog
     brain = pc.searchResults(path='/'.join(self.dataset.getPhysicalPath()))[0]
     from plone.app.contentlisting.interfaces import IContentListingObject
     ds = IContentListingObject(brain)
     data = view.job_state(ds)
     self.assertEqual(data, 'COMPLETED')