def description(self): if self.disabled(): return _(u'title_remove_index_html_for_display_control', default=u'Delete or rename the index_html item to gain ' u'full control over how this folder is ' u'displayed.') else: return _(u'title_choose_default_layout', default=u'Select a predefined layout for this folder, ' u'or set a content item as its default view.')
class DisplayLayoutSubMenuItem(BrowserSubMenuItem): implements(IContentMenuItem) adapts(ILayoutAware, IMosaicLayer) title = _(u'label_choose_display', default=u'Display') submenuId = 'plone_contentmenu_layout' order = 25 # between display menu and factories menu: # actions menu - order=10 # display menu - order=20 # factories menu - order=30 # workflows menu - order=40 def __init__(self, context, request): BrowserSubMenuItem.__init__(self, context, request) self.context_state = getMultiAdapter((context, request), name='plone_context_state') @property def extra(self): return {'id': 'plone-contentmenu-layout', 'disabled': self.disabled()} @property def description(self): if self.disabled(): return _(u'title_remove_index_html_for_display_control', default=u'Delete or rename the index_html item to gain ' u'full control over how this folder is ' u'displayed.') else: return _(u'title_choose_default_layout', default=u'Select a predefined layout for this folder, ' u'or set a content item as its default view.') @property def action(self): if self.disabled(): return '' else: if self.context_state.is_default_page(): return self.context_state.parent().absolute_url() + \ '/select_default_view' else: return self.context.absolute_url() + '/select_default_view' @view.memoize def available(self): if self.disabled(): return False context = self.context vocab_factory = getUtility(IVocabularyFactory, name='plone.availableDisplayLayouts') vocab = vocab_factory(context) if context is None: return False if len(vocab) > 0: return True else: return False def selected(self): return False @view.memoize def disabled(self): # From: plone.app.contentmenu.menu.DisplayMenuSubMenuItem.disabled: if IFolderContentsView.providedBy(self.request): return True context = self.context if not getattr(context, 'isPrincipiaFolderish', False): return False elif 'index_html' not in context.objectIds(): return False else: return True