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'])
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))
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)
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())