def getMenuItems(self, context, request): """Return menu item entries in a TAL-friendly form.""" results = BaseFactoriesMenu.getMenuItems(self, context, request) factories_view = getMultiAdapter((context, request), name='folder_factories') haveMore = False include = None addContext = factories_view.default_page_add_context() if not addContext: return results allowedTypes = _allowedTypes(request, addContext) constraints = IConstrainTypes(addContext, None) if constraints is not None: include = constraints.getImmediatelyAddableTypes() if len(include) < len(allowedTypes): haveMore = True results.append({'title' : _p(u'folder_add_to_default_page', default=u'Add to default page'), 'description' : _p(u'Add content to the default page'), 'action' : None, 'selected' : False, 'icon' : None, 'extra' : {'id': 'add-to-default', 'separator': 'actionSeparator', 'class': ''}, 'submenu' : None, }) results += factories_view.default_page_addable_types(include=include) if haveMore: url = '%s/folder_factories' % (addContext.absolute_url(),) results.append({ 'title' : _p(u'folder_add_more', default=u'More\u2026'), 'description' : _p(u'Show all available content types'), 'action' : url, 'selected' : False, 'icon' : None, 'extra' : {'id': 'more', 'separator': None, 'class': ''}, 'submenu' : None, }) constraints = ISelectableConstrainTypes(addContext, None) if constraints is not None: if constraints.canSetConstrainTypes() and constraints.getDefaultAddableTypes(): url = '%s/folder_constraintypes_form' % (addContext.absolute_url(),) results.append({'title' : _p(u'folder_add_settings', default=u'Restrictions\u2026'), 'description' : _p(u'title_configure_addable_content_types', default=u'Configure which content types can be added here'), 'action' : url, 'selected' : False, 'icon' : None, 'extra' : {'id': 'settings', 'separator': None, 'class': ''}, 'submenu' : None, }) return results
def getMenuItems(self, context, request): """Return menu item entries in a TAL-friendly form.""" factories_view = getMultiAdapter((context, request), name='folder_factories') haveMore = False include = None addContext = factories_view.add_context() allowedTypes = _allowedTypes(request, addContext) constraints = IConstrainTypes(addContext, None) if constraints is not None: include = constraints.getImmediatelyAddableTypes() if len(include) < len(allowedTypes): haveMore = True results = factories_view.addable_types(include=include) if haveMore: url = '%s/folder_factories' % (addContext.absolute_url(),) results.append({ 'title': _(u'folder_add_more', default=u'More\u2026'), 'description': _(u'Show all available content types'), 'action': url, 'selected': False, 'icon': None, 'extra': { 'id': 'plone-contentmenu-more', 'separator': None, 'class': ''}, 'submenu': None, }) constraints = ISelectableConstrainTypes(addContext, None) if constraints is not None: if constraints.canSetConstrainTypes() and \ constraints.getDefaultAddableTypes(): url = '%s/folder_constraintypes_form' % ( addContext.absolute_url(),) results.append({ 'title': _(u'folder_add_settings', default=u'Restrictions\u2026'), 'description': _( u'title_configure_addable_content_types', default=u'Configure which content types can be ' u'added here'), 'action': url, 'selected': False, 'icon': None, 'extra': { 'id': 'plone-contentmenu-settings', 'separator': None, 'class': ''}, 'submenu': None, }) # Also add a menu item to add items to the default page context_state = getMultiAdapter((context, request), name='plone_context_state') if context_state.is_structural_folder() and \ context_state.is_default_page() and \ self._contentCanBeAdded(context, request): results.append({ 'title': _(u'default_page_folder', default=u'Add item to default page'), 'description': _( u'desc_default_page_folder', default=u'If the default page is also a folder, ' u'add items to it from here.'), 'action': context.absolute_url() + '/@@folder_factories', 'selected': False, 'icon': None, 'extra': { 'id': 'plone-contentmenu-add-to-default-page', 'separator': None, 'class': 'pat-plone-modal'}, 'submenu': None, }) return results
def getMenuItems(self, context, request): """Return menu item entries in a TAL-friendly form.""" results = BaseFactoriesMenu.getMenuItems(self, context, request) factories_view = getMultiAdapter((context, request), name='folder_factories') haveMore = False include = None addContext = factories_view.default_page_add_context() if not addContext: return results allowedTypes = _allowedTypes(request, addContext) constraints = IConstrainTypes(addContext, None) if constraints is not None: include = constraints.getImmediatelyAddableTypes() if len(include) < len(allowedTypes): haveMore = True results.append({ 'title': _p(u'folder_add_to_default_page', default=u'Add to default page'), 'description': _p(u'Add content to the default page'), 'action': None, 'selected': False, 'icon': None, 'extra': { 'id': 'add-to-default', 'separator': 'actionSeparator', 'class': '' }, 'submenu': None, }) results += factories_view.default_page_addable_types(include=include) if haveMore: url = '%s/folder_factories' % (addContext.absolute_url(), ) results.append({ 'title': _p(u'folder_add_more', default=u'More\u2026'), 'description': _p(u'Show all available content types'), 'action': url, 'selected': False, 'icon': None, 'extra': { 'id': 'more', 'separator': None, 'class': '' }, 'submenu': None, }) constraints = ISelectableConstrainTypes(addContext, None) if constraints is not None: if constraints.canSetConstrainTypes( ) and constraints.getDefaultAddableTypes(): url = '%s/folder_constraintypes_form' % ( addContext.absolute_url(), ) results.append({ 'title': _p(u'folder_add_settings', default=u'Restrictions\u2026'), 'description': _p(u'title_configure_addable_content_types', default= u'Configure which content types can be added here'), 'action': url, 'selected': False, 'icon': None, 'extra': { 'id': 'settings', 'separator': None, 'class': '' }, 'submenu': None, }) return results
def get_addable_items(self): """ Return menu item entries in a TAL-friendly form. """ context = self.context request = self.request factories_view = getMultiAdapter( (context, request), name='folder_factories', ) include = None addContext = factories_view.add_context() constraints = IConstrainTypes(addContext, None) if constraints is not None: include = constraints.getImmediatelyAddableTypes() results = factories_view.addable_types(include=include) results_with_icons = [] for result in results: result['icon'] = 'menu-item-icon {0}'.format(self.icon('plus')) results_with_icons.append(result) results = results_with_icons constraints = ISelectableConstrainTypes(addContext, None) if constraints is not None: if constraints.canSetConstrainTypes() and \ constraints.getDefaultAddableTypes(): url = '{0}/folder_constraintypes_form'.format( addContext.absolute_url(), ) results.append({ 'title': _(u'folder_add_settings', default=u'Restrictions'), 'description': _( u'title_configure_addable_content_types', default=u'Configure which content types can be ' u'added here', ), 'action': url, 'selected': False, 'icon': 'menu-item-icon {0}'.format(self.icon('cog')), 'id': 'settings', 'extra': { 'id': 'plone-contentmenu-settings', 'separator': None, 'class': '', }, 'submenu': None, }) # Also add a menu item to add items to the default page context_state = getMultiAdapter( (context, request), name='plone_context_state', ) if context_state.is_structural_folder() and \ context_state.is_default_page() and \ self._contentCanBeAdded(context, request): results.append({ 'title': _(u'default_page_folder', default=u'Add item to default page'), 'description': _( u'desc_default_page_folder', default=u'If the default page is also a folder, ' u'add items to it from here.', ), 'action': context.absolute_url() + '/@@folder_factories', 'selected': False, 'icon': 'menu-item-icon {0}'.format(self.icon('cog')), 'id': 'special', 'extra': { 'id': 'plone-contentmenu-add-to-default-page', 'separator': None, 'class': 'pat-plone-modal', }, 'submenu': None, }) return results
def getMenuItems(self, context, request): """Return menu item entries in a TAL-friendly form.""" factories_view = getMultiAdapter((context, request), name='folder_factories') haveMore = False include = None addContext = factories_view.add_context() allowedTypes = _allowedTypes(request, addContext) constraints = IConstrainTypes(addContext, None) if constraints is not None: include = constraints.getImmediatelyAddableTypes() if len(include) < len(allowedTypes): haveMore = True results = factories_view.addable_types(include=include) if haveMore: url = '%s/folder_factories' % (addContext.absolute_url(), ) results.append({ 'title': _(u'folder_add_more', default=u'More\u2026'), 'description': _(u'Show all available content types'), 'action': url, 'selected': False, 'icon': None, 'extra': { 'id': 'plone-contentmenu-more', 'separator': None, 'class': '' }, 'submenu': None, }) constraints = ISelectableConstrainTypes(addContext, None) if constraints is not None: if constraints.canSetConstrainTypes() and \ constraints.getDefaultAddableTypes(): url = '%s/folder_constraintypes_form' % ( addContext.absolute_url(), ) results.append({ 'title': _(u'folder_add_settings', default=u'Restrictions\u2026'), 'description': _(u'title_configure_addable_content_types', default=u'Configure which content types can be ' u'added here'), 'action': url, 'selected': False, 'icon': None, 'extra': { 'id': 'plone-contentmenu-settings', 'separator': None, 'class': '' }, 'submenu': None, }) # Also add a menu item to add items to the default page context_state = getMultiAdapter((context, request), name='plone_context_state') if context_state.is_structural_folder() and \ context_state.is_default_page() and \ self._contentCanBeAdded(context, request): results.append({ 'title': _(u'default_page_folder', default=u'Add item to default page'), 'description': _(u'desc_default_page_folder', default=u'If the default page is also a folder, ' u'add items to it from here.'), 'action': context.absolute_url() + '/@@folder_factories', 'selected': False, 'icon': None, 'extra': { 'id': 'plone-contentmenu-add-to-default-page', 'separator': None, 'class': 'pat-plone-modal' }, 'submenu': None, }) return results