Esempio n. 1
0
def ordernacao_pastas(portal_setup):
    """ Ajusta a ordenacao das pastas da raiz do portal setando ordenação
        padrão Plone. Similar ao ordenacao_pastas feito no upgradeStep 5000, só
        que ao invés de ordenar pastas pontuais ele é executado em todas as
        pastas.
    """
    plone_view = portal_setup.restrictedTraverse("@@plone_portal_state")
    site = plone_view.portal()
    for pasta_id in site.objectIds():
        pasta = site[pasta_id]
        # Se não for diretório e já estiver com a ordenação default, não faça
        # nada.
        if not IFolder.providedBy(pasta) or isinstance(pasta.getOrdering(), DefaultOrdering):
            continue

        # Define ordenacao padrao
        pasta.setOrdering()
        ordering = pasta.getOrdering()
        # A ordenacao dos itens na pasta e mantida em uma
        # Annotation. Aqui vamos repopula-la com os dados
        # corretos
        real = [o for o in pasta.objectIds(ordered=False)]
        stored = [o for o in pasta.objectIds(ordered=True)]
        for o in stored:
            ordering.notifyRemoved(o)
        for o in real:
            ordering.notifyAdded(o)
        logger.info("Pasta %s atualizada", pasta.Title())
Esempio n. 2
0
 def search_base(self, context=None):
     if not context:
         context = self.context
     if not IFolder.providedBy(context):
         return self.search_base(context=context.aq_parent)
     else:
         return context.absolute_url()
    def test_fix_interface_for_folder(self):
        self.obj.portal_type = 'Folder'
        self.catalog.reindexObject(self.obj)

        self.portal.restrictedTraverse('fix_base_classes')()

        self.assertTrue(IFolder.providedBy(self.obj))
Esempio n. 4
0
def ordernacao_pastas(portal_setup):
    """ Ajusta a ordenacao das pastas da raiz do portal setando ordenação
        padrão Plone. Similar ao ordenacao_pastas feito no upgradeStep 5000, só
        que ao invés de ordenar pastas pontuais ele é executado em todas as
        pastas.
    """
    plone_view = portal_setup.restrictedTraverse('@@plone_portal_state')
    site = plone_view.portal()
    for pasta_id in site.objectIds():
        pasta = site[pasta_id]
        # Se não for diretório e já estiver com a ordenação default, não faça
        # nada.
        if (not IFolder.providedBy(pasta)
                or isinstance(pasta.getOrdering(), DefaultOrdering)):
            continue

        # Define ordenacao padrao
        pasta.setOrdering()
        ordering = pasta.getOrdering()
        # A ordenacao dos itens na pasta e mantida em uma
        # Annotation. Aqui vamos repopula-la com os dados
        # corretos
        real = [o for o in pasta.objectIds(ordered=False)]
        stored = [o for o in pasta.objectIds(ordered=True)]
        for o in stored:
            ordering.notifyRemoved(o)
        for o in real:
            ordering.notifyAdded(o)
        logger.info('Pasta %s atualizada', pasta.Title())
    def test_fix_interface_for_folder(self):
        self.obj.portal_type = 'Folder'
        self.catalog.reindexObject(self.obj)

        self.portal.restrictedTraverse('fix_base_classes')()

        self.assertTrue(IFolder.providedBy(self.obj))
Esempio n. 6
0
 def test_factory(self):
     fti = queryUtility(
         IDexterityFTI,
         name='Folder'
     )
     factory = fti.factory
     new_object = createObject(factory)
     self.assertTrue(IFolder.providedBy(new_object))
Esempio n. 7
0
 def getTargetFolder(self):
     target_folder = getattr(self.calendar, 'target_folder', None)
     if target_folder:
         addContext = self.portal.unrestrictedTraverse('/' + self.portal.id \
                                                       + target_folder)
     elif IFolder.providedBy(self.context):
         addContext = self.context
     else:
         addContext = aq_parent(aq_inner(self.context))
     return addContext
Esempio n. 8
0
 def test_folder_is_migrated(self):
     from Products.ATContentTypes.content.folder import ATFolder
     from plone.app.contenttypes.migration.migration import FolderMigrator
     from plone.app.contenttypes.interfaces import IFolder
     at_folder = self.createATCTobject(ATFolder, 'folder')
     migrator = self.get_migrator(at_folder, FolderMigrator)
     migrator.migrate()
     new_folder = self.portal['folder']
     self.assertTrue(IFolder.providedBy(new_folder))
     self.assertTrue(at_folder is not new_folder)
 def test_folder_is_migrated(self):
     from plone.app.contenttypes.migration.migration import FolderMigrator
     from plone.app.contenttypes.interfaces import IFolder
     self.portal.invokeFactory('Folder', 'folder')
     at_folder = self.portal['folder']
     applyProfile(self.portal, 'plone.app.contenttypes:default')
     migrator = self.get_migrator(at_folder, FolderMigrator)
     migrator.migrate()
     dx_folder = self.portal['folder']
     self.assertTrue(IFolder.providedBy(dx_folder))
     self.assertTrue(at_folder is not dx_folder)
 def _album_results(self):
     """Get results to display an album with subalbums.
     """
     results = self.results()
     images = []
     folders = []
     for it in results:
         # TODO: potentially expensive!
         ob = it.getObject()
         if IImage.providedBy(ob):
             images.append(it)
         elif IFolder.providedBy(ob):
             folders.append(it)
     return {'images': images, 'folders': folders}
Esempio n. 11
0
 def _album_results(self):
     """Get results to display an album with subalbums.
     """
     results = self.results()
     images = []
     folders = []
     for it in results:
         # TODO: potentially expensive!
         ob = it.getObject()
         if IImage.providedBy(ob):
             images.append(it)
         elif IFolder.providedBy(ob):
             folders.append(it)
     return {'images': images, 'folders': folders}
Esempio n. 12
0
 def __call__(self):
     if IFolder.providedBy(self.context):
         self.folder = self.context
         self.text = self.context.Description()
     else:
         self.folder = aq_parent(self.context)
         value = getattr(self.context, 'text', None)
         if value:
             if IRichTextValue.providedBy(value):
                 self.text = value.output
             else:
                 self.text = value
         else:
             self.text = self.context.Description()
     return self.index()
Esempio n. 13
0
 def __call__(self):
     if IFolder.providedBy(self.context):
         self.folder = self.context
         self.text = self.context.Description()
     else:
         self.folder = aq_parent(self.context)
         value = getattr(self.context, 'text', None)
         if value:
             if IRichTextValue.providedBy(value):
                 self.text = value.output
             else:
                 self.text = value
         else:
             self.text = self.context.Description()
     return self.index()
Esempio n. 14
0
    def test_folders_in_root_are_plone_default_ordering(self):
        """
        Após a ordenação de pastas no upgradeStep 10600 complementando o 5000,
        para que todos os diretórios do root tenham a ordenação default do
        Plone, é preciso garantir esse comportamento em todos os diretórios.

        Esse teste hoje não retorna nada, é para garantir que, caso no futuro

        self.applyProfile(portal, 'brasil.gov.portal:initcontent')

        por exemplo seja utilizado em testing.py e que algum diretório criado
        na raiz dessa forma não tenha a ordenação padrão.
        """
        all_ordered = all([
            isinstance(self.portal[pasta_id].getOrdering(), DefaultOrdering)
            for pasta_id in self.portal.objectIds()
            if IFolder.providedBy(self.portal[pasta_id])
        ])
        self.assertTrue(all_ordered)
    def test_folders_in_root_are_plone_default_ordering(self):
        """
        Após a ordenação de pastas no upgradeStep 10600 complementando o 5000,
        para que todos os diretórios do root tenham a ordenação default do
        Plone, é preciso garantir esse comportamento em todos os diretórios.

        Esse teste hoje não retorna nada, é para garantir que, caso no futuro

        self.applyProfile(portal, 'brasil.gov.portal:initcontent')

        por exemplo seja utilizado em testing.py e que algum diretório criado
        na raiz dessa forma não tenha a ordenação padrão.
        """
        all_ordered = all([
            isinstance(self.portal[pasta_id].getOrdering(), DefaultOrdering)
            for pasta_id in self.portal.objectIds()
            if IFolder.providedBy(self.portal[pasta_id])
        ])
        self.assertTrue(all_ordered)
 def add_interface(self):
     obj = self.get_canonical()
     if not IFolder.providedBy(obj):
         api.portal.show_message(
             message=u'Impossibile marcare il contenuto come subsite.',
             type='error',
             request=self.request)
         return self.request.response.redirect(obj.absolute_url())
     if not IRERSubsiteEnabled.providedBy(obj):
         alsoProvides(obj, IRERSubsiteEnabled)
         obj.reindexObject(idxs=['object_provides'])
         api.portal.show_message(message='Cartella marcata come subsite.',
                                 type='info',
                                 request=self.request)
     else:
         api.portal.show_message(
             message=u'Cartella già marcata come subsite.',
             type='warning',
             request=self.request)
     self.request.response.redirect(obj.absolute_url())
Esempio n. 17
0
 def test_adding(self):
     self.portal.invokeFactory("Folder", "doc1")
     self.assertTrue(IFolder.providedBy(self.portal["doc1"]))
Esempio n. 18
0
 def test_adding(self):
     self.portal.invokeFactory(
         'Folder',
         'doc1'
     )
     self.assertTrue(IFolder.providedBy(self.portal['doc1']))
 def check_subsite_action_remove(self):
     obj = self.get_canonical()
     if not IFolder.providedBy(obj):
         return False
     return IRERSubsiteEnabled.providedBy(obj)