Пример #1
0
 def update(self):
     DocumentBylineViewlet.update(self)
     self.context_state = getMultiAdapter((self.context, self.request),
                                          name=u'plone_context_state')
     self.tools = getMultiAdapter((self.context, self.request),
                                  name='plone_tools')
     self.modifier = self.last_modification()
Пример #2
0
    def test_pub_date(self):
        request = self.app.REQUEST
        self.login('Alan')
        self.portal.invokeFactory('Document', 'd1')
        context = getattr(self.portal, 'd1')

        # configure our portal and context to get publication date not None
        properties = getToolByName(context, 'portal_properties')
        site_properties = getattr(properties, 'site_properties')
        site_properties.displayPublicationDateInByline = True
        wtool = getToolByName(context, 'portal_workflow')
        wtool.doActionFor(context, 'publish')

        self.login('Ano')
        viewlet = DocumentBylineViewlet(context, request, None, None)
        viewlet.update()

        # publication date should be not None now
        self.failIf(viewlet.pub_date() is None)

        # now set publication date in workflow history manually
        published = DateTime('2012/03/14')
        context.workflow_history[wtool.getChainFor('Document')[0]][-1]['time'] = \
            published
        # purge instance memoize cache
        delattr(viewlet, Memojito.propname)
        self.assertEqual(viewlet.pub_date(), published)

        # set Effective Date and check if it'll be used
        effective = DateTime('2012/03/15')
        context.setEffectiveDate(effective)
        # purge instance memoize cache
        delattr(viewlet, Memojito.propname)
        self.assertEqual(viewlet.pub_date(),
                         DateTime(effective.toZone(_zone).ISO8601()))

        # now make document private and ensure publication date will return None
        self.login('Alan')
        wtool.doActionFor(context, 'retract')
        self.login('Ano')
        # purge instance memoize cache
        delattr(viewlet, Memojito.propname)
        self.assertEqual(viewlet.pub_date(), None)

        # move it back to public
        self.login('Alan')
        wtool.doActionFor(context, 'publish')
        self.login('Ano')
        # purge instance memoize cache
        delattr(viewlet, Memojito.propname)
        self.failIf(viewlet.pub_date() is None)

        # and finally check that our global site setting
        # 'Display pub date in byline' works properly
        # purge instance memoize cache
        site_properties.displayPublicationDateInByline = False
        delattr(viewlet, Memojito.propname)
        self.assertEqual(viewlet.pub_date(), None)
Пример #3
0
    def test_locked_icon(self):
        request = self.app.REQUEST
        self.setRoles(['Manager', 'Member'])
        self.portal.invokeFactory('Document', 'd1')
        context = getattr(self.portal, 'd1')
        viewlet = DocumentBylineViewlet(context, request, None, None)
        viewlet.update()
        self.assertEqual(viewlet.locked_icon(), "")
        ILockable(context).lock()
        lockIconUrl = '<img src="http://nohost/plone/lock_icon.png" alt="" \
title="Locked" height="16" width="16" />'
        self.assertEqual(viewlet.locked_icon(), lockIconUrl)
Пример #4
0
    def test_pub_date(self):
        request = self.app.REQUEST
        self.login('Alan')
        self.portal.invokeFactory('Document', 'd1')
        context = getattr(self.portal, 'd1')
        
        # configure our portal and context to get publication date not None
        properties = getToolByName(context, 'portal_properties')
        site_properties = getattr(properties, 'site_properties')
        site_properties.displayPublicationDateInByline = True
        wtool = getToolByName(context, 'portal_workflow')
        wtool.doActionFor(context, 'publish')

        self.login('Ano')
        viewlet = DocumentBylineViewlet(context, request, None, None)
        viewlet.update()
        
        # publication date should be not None now
        self.failIf(viewlet.pub_date() is None)
        
        # now set publication date in workflow history manually
        published = DateTime('2012/03/14')
        context.workflow_history[wtool.getChainFor('Document')[0]][-1]['time'] = \
            published
        # purge instance memoize cache
        delattr(viewlet, Memojito.propname)
        self.assertEqual(viewlet.pub_date(), published)
        
        # set Effective Date and check if it'll be used
        effective = DateTime('2012/03/15')
        context.setEffectiveDate(effective)
        # purge instance memoize cache
        delattr(viewlet, Memojito.propname)
        self.assertEqual(viewlet.pub_date(),
            DateTime(effective.toZone(_zone).ISO8601()))
        
        # now make document private and ensure publication date will return None
        self.login('Alan')
        wtool.doActionFor(context, 'retract')
        self.login('Ano')
        # purge instance memoize cache
        delattr(viewlet, Memojito.propname)
        self.assertEqual(viewlet.pub_date(), None)
        
        # move it back to public
        self.login('Alan')
        wtool.doActionFor(context, 'publish')
        self.login('Ano')
        # purge instance memoize cache
        delattr(viewlet, Memojito.propname)
        self.failIf(viewlet.pub_date() is None)
        
        # and finally check that our global site setting
        # 'Display pub date in byline' works properly
        # purge instance memoize cache
        site_properties.displayPublicationDateInByline = False
        delattr(viewlet, Memojito.propname)
        self.assertEqual(viewlet.pub_date(), None)
Пример #5
0
 def test_anonymous_locked_icon(self):
     request = self.app.REQUEST
     self.setRoles(['Manager', 'Member'])
     self.portal.invokeFactory('Document', 'd1')
     context = getattr(self.portal, 'd1')
     viewlet = DocumentBylineViewlet(context, request, None, None)
     viewlet.update()
     ILockable(context).lock()
     self.login('Ano')
     viewlet = DocumentBylineViewlet(context, request, None, None)
     viewlet.update()
     self.assertEqual(viewlet.locked_icon(), "")
Пример #6
0
    def test_pub_date(self):
        request = self.app.REQUEST
        self.login('Alan')
        self.portal.invokeFactory('Document', 'd1')
        context = getattr(self.portal, 'd1')

        # configure our portal to enable publication date on pages globally on
        # the site
        properties = getToolByName(context, 'portal_properties')
        site_properties = getattr(properties, 'site_properties')
        site_properties.displayPublicationDateInByline = True

        self.login('Ano')
        viewlet = DocumentBylineViewlet(context, request, None, None)
        viewlet.update()

        # publication date should be None as there is not Effective date set for
        # our document yet
        self.assertEqual(viewlet.pub_date(), None)

        # now set effective date for our document
        effective = DateTime()
        context.setEffectiveDate(effective)
        self.assertEqual(viewlet.pub_date(), DateTime(effective.ISO8601()))

        # now switch off publication date globally on the site and see if
        # viewlet returns None for publication date
        site_properties.displayPublicationDateInByline = False
        self.assertEqual(viewlet.pub_date(), None)
Пример #7
0
    def test_pub_date(self):
        request = self.app.REQUEST
        self.login('Alan')
        self.portal.invokeFactory('Document', 'd1')
        context = getattr(self.portal, 'd1')

        # configure our portal to enable publication date on pages globally on
        # the site
        properties = getToolByName(context, 'portal_properties')
        site_properties = getattr(properties, 'site_properties')
        site_properties.displayPublicationDateInByline = True

        self.login('Ano')
        viewlet = DocumentBylineViewlet(context, request, None, None)
        viewlet.update()

        # publication date should be None as there is not Effective date set
        # for our document yet
        self.assertEqual(viewlet.pub_date(), None)

        # now set effective date for our document
        effective = DateTime()
        context.setEffectiveDate(effective)
        self.assertEqual(viewlet.pub_date(), DateTime(effective.ISO8601()))

        # now switch off publication date globally on the site and see if
        # viewlet returns None for publication date
        site_properties.displayPublicationDateInByline = False
        self.assertEqual(viewlet.pub_date(), None)
Пример #8
0
 def test_anonymous_locked_icon(self):
     request = self.app.REQUEST
     self.setRoles(['Manager', 'Member'])
     self.portal.invokeFactory('Document', 'd1')
     context = getattr(self.portal, 'd1')
     viewlet = DocumentBylineViewlet(context, request, None, None)
     viewlet.update()
     ILockable(context).lock()
     self.login('Ano')
     viewlet = DocumentBylineViewlet(context, request, None, None)
     viewlet.update()
     self.assertEqual(viewlet.locked_icon(), "")
Пример #9
0
    def test_locked_icon(self):
        request = self.app.REQUEST
        self.setRoles(['Manager', 'Member'])
        self.portal.invokeFactory('Document', 'd1')
        context = getattr(self.portal, 'd1')
        viewlet = DocumentBylineViewlet(context, request, None, None)
        viewlet.update()
        self.assertEqual(viewlet.locked_icon(), "")
        ILockable(context).lock()
        lockIconUrl = '<img src="http://nohost/plone/lock_icon.png" alt="" \
title="Locked" height="16" width="16" />'
        self.assertEqual(viewlet.locked_icon(), lockIconUrl)
Пример #10
0
 def _get_viewlet(self):
     request = self.app.REQUEST
     viewlet = DocumentBylineViewlet(self.context, request, None, None)
     viewlet.update()
     return viewlet
Пример #11
0
 def _get_viewlet(self):
     request = self.app.REQUEST
     viewlet = DocumentBylineViewlet(self.context, request, None, None)
     viewlet.update()
     return viewlet