Beispiel #1
0
 def _get_generation_context(self, helper_view, pod_template):
     result = super(IDocumentGenerationView, self)._get_generation_context(
         helper_view, pod_template)
     # if pod_template.portal_type == 'ConfigurablePODTemplate':
     if IFacetedNavigable.providedBy(self.context):
         brains = getDashboardQueryResult(self.context)
         result['brains'] = brains
         if len(brains) > 0 and brains[0].portal_type == 'Event':
             expandevents = expand_events(brains, 2)
             events = []
             for event in expandevents:
                 if IOccurrence.providedBy(event):
                     start = event.start
                     end = event.end
                     parent = zope.copy.copy(event.aq_parent.aq_base)
                     parent.start = start
                     parent.end = end
                     req = event.REQUEST
                     parent.REQUEST = req
                     parent.occurrence = True
                     parent.base_event = event.aq_parent
                     events.append(parent)
                 else:
                     events.append(event)
             result['brains'] = events
         return result
def activate_faceted_tasks_listing(task_container, event):
    """
    Set the listing tasks faceted view on the faceted tasks container.
    """
    if hasattr(aq_base(task_container), 'checkCreationFlag'):
        if task_container.checkCreationFlag():
            return

    if IFacetedNavigable.providedBy(task_container):
        return
    elif IPossibleFacetedNavigable.providedBy(task_container):
        subtyper = task_container.unrestrictedTraverse('@@faceted_subtyper')
        subtyper.enable()
        IFacetedLayout(task_container).update_layout('list_tasks')
        task_container.manage_delProperties(['layout'])
Beispiel #3
0
    def get_facted_criteria(self):
        from eea.facetednavigation.criteria.handler import Criteria
        from eea.facetednavigation.criteria.interfaces import ICriteria
        from eea.facetednavigation.indexes.language.interfaces import ILanguageWidgetAdapter  # noqa
        from eea.facetednavigation.interfaces import IFacetedNavigable
        from eea.facetednavigation.settings.interfaces import IDisableSmartFacets  # noqa
        from eea.facetednavigation.settings.interfaces import IHidePloneLeftColumn  # noqa
        from eea.facetednavigation.settings.interfaces import IHidePloneRightColumn  # noqa
        from eea.facetednavigation.subtypes.interfaces import IFacetedWrapper
        from eea.facetednavigation.views.interfaces import IViewsInfo
        from eea.facetednavigation.widgets.alphabetic.interfaces import IAlphabeticWidget  # noqa
        from eea.facetednavigation.widgets.interfaces import ICriterion
        from eea.facetednavigation.widgets.interfaces import IWidget
        from eea.facetednavigation.widgets.interfaces import IWidgetsInfo
        from eea.facetednavigation.widgets.resultsfilter.interfaces import IResultsFilterWidget  # noqa

        interfaces = [
            IFacetedNavigable,
            IDisableSmartFacets,
            IHidePloneLeftColumn,
            IHidePloneRightColumn,
            ICriteria,
            ILanguageWidgetAdapter,
            IFacetedWrapper,
            IViewsInfo,
            IAlphabeticWidget,
            ICriterion,
            IWidget,
            IWidgetsInfo,
            IResultsFilterWidget,
        ]
        inter = []
        for interface in interfaces:
            if interface.providedBy(self.context):
                inter.append(interface.__identifier__)
        self['faceted_interfaces'] = inter
        if IFacetedNavigable.providedBy(self.context):
            criteria = Criteria(self.context)
            criterias = []
            for crit in criteria.criteria:
                criterias.append(crit.__dict__)
            self['faceted_criteria'] = criterias
 def is_faceted(self):
     """ Is faceted navigable?
     """
     return IFacetedNavigable.providedBy(self.context)
 def available(self):
     """ Is this menu available?
     """
     return (IFacetedNavigable.providedBy(self.context) and
             checkPermission('eea.faceted.configure', self.context))
Beispiel #6
0
 def available(self):
     """ Is this menu available?
     """
     return (IFacetedNavigable.providedBy(self.context)
             and checkPermission('eea.faceted.configure', self.context))
Beispiel #7
0
 def test_create_faceted_folder(self):
     faceted = utils.create_faceted_folder(self.portal, "Test Faceted")
     self.assertEqual("Test Faceted", faceted.title)
     self.assertEqual("test-faceted", faceted.id)
     IFacetedNavigable.providedBy(faceted)
Beispiel #8
0
    def test_DashboardPODTemplateViewlet(self):
        """Test the IDDashboardDocumentGeneratorLinksViewlet
        that list available DashboardPODTemplates."""

        # by default, viewlet is not displayed as no template to display
        # but it needs a faceted enabled folder and to be able to getCurrentCollection
        self.assertTrue(IFacetedNavigable.providedBy(self.folder))
        dashboardcoll = api.content.create(id='dc1',
                                           type='DashboardCollection',
                                           title='Dashboard collection 1',
                                           container=self.folder)
        self.request.form['c1[]'] = dashboardcoll.UID()
        self.assertEquals(getCurrentCollection(self.folder), dashboardcoll)
        viewlet = DashboardDocumentGeneratorLinksViewlet(
            self.folder, self.request, None, None)
        viewlet.update()
        self.assertFalse(viewlet.available())
        self.assertFalse(viewlet.get_generable_templates())

        # add a PODTemplate, still not available
        api.content.create(id='template',
                           type='PODTemplate',
                           title='POD template',
                           container=self.portal)
        # need to clean memoize because available() calls
        # get_generable_templates that use it
        del IAnnotations(self.request)['plone.memoize']
        self.assertFalse(viewlet.available())
        self.assertFalse(viewlet.get_generable_templates())

        # add a DashboardPODTemplate, this time it is available
        dashtemplate = api.content.create(id='dashtemplate',
                                          type='DashboardPODTemplate',
                                          title='Dashboard template',
                                          container=self.portal)
        # clean memoize
        del IAnnotations(self.request)['plone.memoize']
        self.assertTrue(viewlet.available())
        self.assertEquals(len(viewlet.get_generable_templates()), 1)
        self.assertEquals(viewlet.get_generable_templates()[0].UID(),
                          dashtemplate.UID())

        # this viewlet will not be displayed if current context is not a faceted
        self.assertFalse(IFacetedNavigable.providedBy(self.folder2))
        self.assertTrue(IFacetedNavigable.providedBy(self.folder))
        # not faceted context
        viewlet = self._get_viewlet(
            context=self.folder2,
            manager_name='collective.eeafaceted.z3ctable.topabovenav',
            viewlet_name='dashboard-document-generation-link')
        self.assertIsNone(viewlet)
        # collection criterion not found
        viewlet = self._get_viewlet(
            context=self.folder,
            manager_name='collective.eeafaceted.z3ctable.topabovenav',
            viewlet_name='dashboard-document-generation-link')
        self.assertIsNotNone(viewlet)
        del IAnnotations(self.request)['plone.memoize']
        self.assertTrue(viewlet.available())
        criteria = ICriteria(self.folder).criteria
        index = [
            i for i, crit in enumerate(criteria)
            if crit.widget == u'collection-link'
        ][0]
        del criteria[index]  # we remove collectionwidget criterion
        self.assertFalse(viewlet.available())
        # no matter there are pod templates
        self.assertTrue(viewlet.get_generable_templates())
 def is_faceted(self):
     """ Is faceted navigable?
     """
     return IFacetedNavigable.providedBy(self.context)