Test coverage for vnccollab.theme.portlets.retriever
1: from zope.interface import implements
1: from zope.component import adapts
1: from zope.component import queryAdapter
1: from Products.CMFPlone.interfaces.siteroot import IPloneSiteRoot
1: from plone.portlets.interfaces import IPortletContext
1: from plone.portlets.interfaces import IPlacelessPortletManager
1: from plone.portlets.interfaces import IPortletRetriever
1: from plone.portlets.interfaces import IPortletAssignmentSettings
1: from plone.portlets.constants import GROUP_CATEGORY
1: from collective.braveportletsmanager.util import logException
1: from collective.braveportletsmanager.retriever import PlacelessPortletRetriever
2: class CloudPortalDashboardPortletRetriever(PlacelessPortletRetriever):
"""A placeless portlet retriever.
Here we display only group portlets.
1: """
1: implements(IPortletRetriever)
1: adapts(IPloneSiteRoot, IPlacelessPortletManager)
1: def __init__(self, context, storage):
4: self.context = context
4: self.storage = storage
1: def getPortlets(self):
4: if IPortletContext.providedBy(self.context):
>>>>>> pcontext = self.context
else:
4: pcontext = queryAdapter(self.context, IPortletContext)
4: if pcontext is None:
>>>>>> return []
4: assignments = []
16: for category, key in pcontext.globalPortletCategories(True):
# skip all portlets that are not within Group category
12: if category != GROUP_CATEGORY:
4: continue
8: mapping = self.storage.get(category, None)
8: if mapping is not None:
8: for assignment in mapping.get(key, {}).values():
>>>>>> try:
>>>>>> settings = IPortletAssignmentSettings(assignment)
>>>>>> except Exception:
>>>>>> logException(u'Error during retrieving assignment '
'settings. Context: "%s", Category: "%s", Key: '
'"%s", Assignment Class: "%s", Assignment ID: "%s"'
>>>>>> % ('/'.join(self.context.getPhysicalPath()),
>>>>>> category, key, str(assignment.__class__),
>>>>>> assignment.__name__), context=self.context)
>>>>>> continue
>>>>>> if not settings.get('visible', True):
>>>>>> continue
>>>>>> assignments.append({'category': category,
>>>>>> 'key': key,
>>>>>> 'name': assignment.__name__,
>>>>>> 'assignment': assignment
})
4: return assignments