예제 #1
0
 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.')
예제 #2
0
 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.')
예제 #3
0
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