Ejemplo n.º 1
0
    def get_link_integrity_breaches(self):
        if isLinked(self.block):
            breaches = self.link_integrity.getIntegrityBreaches()
            breaches_info = []
            sources = breaches.values()
            sources = len(sources) and sources[0] or sources

            for source in sources:
                breaches_info.append({'title': source.title_or_id(),
                                      'url': source.absolute_url()})

            return breaches_info
        else:
            return None
Ejemplo n.º 2
0
    def __call__(self):

        context = self.context
        request = context.REQUEST

        # copied from delete_confirmation controller script
        if isLinked(context):

            parent = context.aq_inner.aq_parent
            title = safe_unicode(context.title_or_id())

            try:
                lock_info = context.restrictedTraverse('@@plone_lock_info')
            except AttributeError:
                lock_info = None

            if lock_info is not None and lock_info.is_locked():
                message = _pl_(u'${title} is locked and cannot be deleted.',
                               mapping={u'title': title})
            else:
                parent.manage_delObjects(context.getId())
                message = _pl_(u'${title} has been deleted.',
                               mapping={u'title': title})
                transaction_note('Deleted %s' % context.absolute_url())

            context.plone_utils.addPortalMessage(message)
            return context.REQUEST.RESPONSE.redirect(
                object.aq_inner.aq_parent.absolute_url())
        else:

            #check for lock info
            try:
                lock_info = context.restrictedTraverse('@@plone_lock_info')
            except AttributeError:
                lock_info = None

            if lock_info is not None and lock_info.is_locked():
                lock_view = getMultiAdapter((context, request),
                                            name="plone_lock_info")
                self.info = lock_view
                self.lock_is_stealable = self.info.lock_is_stealable()
                self.lock_info = self.info.lock_info()
                return self.locked_template()

            return self.template()
Ejemplo n.º 3
0
    def test_confirmation_dialog_link_integrity_checker_should_actually_delete_the_object(
            self):
        """The confirmation dialog deletes the object within a later rolled-back savepoint
        in order to detect broken links.
        If we only trash the object, the link checker will no longer work.
        Therefore ftw.trash must back off while within the link integrity checker.
        """
        if self.is_dexterity:
            # the test does not work with dexterity.
            return

        self.grant('Site Administrator')
        target = create(Builder('folder'))
        # be aware that the page object is always archetypes.
        create(
            Builder('page').having(
                text='<p><a href="resolveuid/{}">folder</a>'.format(
                    IUUID(target))))

        self.assertTrue(isLinked(target))
Ejemplo n.º 4
0
    def get_link_integrity_breaches(self):
        if isLinked(self.block):

            if IS_PLONE_5:
                portal = api.portal.get()
                view = api.content.get_view(
                    'delete_confirmation_info',
                    portal,
                    self.request)
                breaches = view.get_breaches([self.block, ])
            else:
                breaches = self.link_integrity.getIntegrityBreaches()

            breaches_info = []
            sources = breaches.values()
            sources = len(sources) and sources[0] or sources

            for source in sources:
                breaches_info.append({'title': source.title_or_id(),
                                      'url': source.absolute_url()})

            return breaches_info
        else:
            return None
Ejemplo n.º 5
0
 def test_is_linked(self):
     from Products.CMFPlone.utils import isLinked
     img1 = self.portal['image1']
     doc1 = self.portal['doc1']
     self._set_text(doc1, '<img src="image1"></img>')
     self.assertTrue(isLinked(img1))