Exemple #1
0
 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
Exemple #2
0
 def get_workflow_actions(self):
     """
     Return menu item entries in a TAL-friendly form.
     """
     from plone.app.contentmenu import PloneMessageFactory as _
     context = self.context
     request = context.REQUEST
     try:
         pkg_resources.get_distribution('Products.CMFPlacefulWorkflow')
         from Products.CMFPlacefulWorkflow.permissions import ManageWorkflowPolicies  # noqa: 501
     except pkg_resources.DistributionNotFound:
         from Products.CMFCore.permissions import ManagePortal as ManageWorkflowPolicies  # noqa: 501
     results = []
     locking_info = queryMultiAdapter(
         (context, request),
         name='plone_lock_info',
     )
     if locking_info and locking_info.is_locked_for_current_user():
         return []
     wf_tool = getToolByName(context, 'portal_workflow')
     workflowActions = wf_tool.listActionInfos(object=context)
     for action in workflowActions:
         if action['category'] != 'workflow':
             continue
         cssClass = ''
         actionUrl = action['url']
         if actionUrl == '':
             actionUrl = '{0}/content_status_modify?workflow_action={1}'
             actionUrl = actionUrl.format(
                 context.absolute_url(),
                 action['id'],
             )
             cssClass = ''
         description = ''
         transition = action.get('transition', None)
         if transition is not None:
             description = transition.description
         if action['allowed']:
             results.append({
                 'title': action['title'],
                 'description': description,
                 'action': addTokenToUrl(actionUrl, request),
                 'selected': False,
                 'icon': None,
                 'extra': {
                     'id': 'workflow-transition-{0}'.format(action['id']),
                     'separator': None,
                     'class': cssClass,
                 },
                 'submenu': None,
             })
     url = context.absolute_url()
     pw = getToolByName(context, 'portal_placeful_workflow', None)
     if pw is not None:
         if _checkPermission(ManageWorkflowPolicies, context):
             results.append({
                 'title': _(u'workflow_policy', default=u'Policy...'),
                 'description': '',
                 'action': url + '/placeful_workflow_configuration',
                 'selected': False,
                 'icon': None,
                 'extra': {
                     'id': 'workflow-transition-policy',
                     'separator': None,
                     'class': '',
                 },
                 'submenu': None,
             })
     return results
Exemple #3
0
# -*- coding: utf-8 -*-

from collective.sidebar import _
from zope.schema.vocabulary import SimpleTerm
from zope.schema.vocabulary import SimpleVocabulary

positionTerms = [
    SimpleTerm(value=u'left', title=_(u'choice_left', default=u'Left')),
    SimpleTerm(value=u'right', title=_(u'choice_right', default=u'Right')),
]

PositionVocabulary = SimpleVocabulary(positionTerms)

fonts = [
    SimpleTerm(value=u'Bootstrap', title=u'Bootstrap'),
    SimpleTerm(value=u'Glyphicons', title=u'Glyphicons'),
    SimpleTerm(value=u'Fontello', title=u'Fontello'),
    SimpleTerm(value=u'Font Awesome', title=u'Font Awesome'),
    SimpleTerm(value=u'Font Awesome Pro', title=u'Font Awesome Pro'),
    SimpleTerm(value=u'Font Awesome Light', title=u'Font Awesome Light'),
    SimpleTerm(value=u'Font Awesome Duotone', title=u'Font Awesome Duotone'),
]

IconFontVocabulary = SimpleVocabulary(fonts)
Exemple #4
0
class ControlPanelEditForm(RegistryEditForm):
    schema = IControlPanel
    schema_prefix = 'collective.sidebar'
    label = _(u'collective_sidebar_title', default=u'Collective Sidebar')
Exemple #5
0
class IControlPanel(Interface):

    root_nav = schema.Bool(
        title=_(
            u'controlpanel_sidebar_show_root_nav_title',
            default='Root Level Navigation',
        ),
        description=_(
            u'controlpanel_sidebar_show_root_nav_description',
            default=(u'When enabled, the sidebar will display '
                     u'the root level navigation.'),
        ),
        required=False,
        default=False,
    )

    dynamic_navigation = schema.Bool(
        title=_(
            u'controlpanel_sidebar_dynamic_navigation_title',
            default='Enable dynamic Navigation',
        ),
        description=_(
            u'controlpanel_sidebar_dynamic_navigation_description',
            default=(u'Enable dynamic navigation inside sidebar.'),
        ),
        required=False,
        default=True,
    )

    enable_actions = schema.Bool(
        title=_(
            u'controlpanel_sidebar_show_actions_title',
            default='Show Actions Section',
        ),
        description=_(
            u'controlpanel_sidebar_show_actions_description',
            default=(u'Show actions section including object '
                     u'buttons for cut, copy, paste, etc.'),
        ),
        required=False,
        default=True,
    )

    enable_cookies = schema.Bool(
        title=_(
            u'controlpanel_sidebar_enable_cookies_title',
            default='Enable Cookies',
        ),
        description=_(
            u'controlpanel_sidebar_enable_cookies_description',
            default=u'Enable cookies for sidebar features.',
        ),
        required=False,
        default=True,
    )

    enable_collapse = schema.Bool(
        title=_(
            u'controlpanel_sidebar_enable_collapse_title',
            default='Collapsible Sections',
        ),
        description=_(
            u'controlpanel_sidebar_enable_collapse_description',
            default=(
                u'When enabled, the sidebar sections can be collapsed. '
                u'This feature is only available when cookies are enabled.'),
        ),
        required=False,
        default=True,
    )

    icon_font = schema.Choice(
        title=_(u'controlpanel_sidebar_choose_icon_font_title',
                default=u'Choose Icon Font'),
        description=_(
            u'controlpanel_sidebar_choose_icon_font_description',
            default=(
                u'When a different icon font is installed, you can tell the '
                u'sidebar to use it. For Fontello we assume you have set '
                u'\"icon\" as the font prefix. '
                u'Note: This does not install the icon font!'),
        ),
        vocabulary=IconFontVocabulary,
        default='Glyphicons',
        required=True,
    )

    sidebar_position = schema.Choice(
        title=_(
            u'controlpanel_sidebar_sidebar_position_title',
            default='Sidebar Position',
        ),
        description=_(
            u'controlpanel_sidebar_sidebar_position_description',
            default=u'Display the sidebar on the left or right.',
        ),
        vocabulary=PositionVocabulary,
        required=True,
        default='left',
    )

    mouse = schema.Bool(
        title=_(
            u'controlpanel_mouse_title',
            default='Mouse activated',
        ),
        description=_(
            u'controlpanel_mouse_description',
            default=(u'When enabled, the sidebar will be opened by mouse.'),
        ),
        required=False,
        default=True,
    )

    mouse_area = schema.Int(
        title=_(
            u'controlpanel_mouse_area_title',
            default='Mouse Activation Area',
        ),
        description=_(
            u'controlpanel_mouse_area_description',
            default=(u'Enter the number of pixels to activate the sidebar.'),
        ),
        required=False,
        default=30,
    )
class IControlPanel(Interface):

    root_nav = schema.Bool(
        title=_(
            u'controlpanel_sidebar_show_root_nav_title',
            default='Root Level Navigation',
        ),
        description=_(
            u'controlpanel_sidebar_show_root_nav_description',
            default=(u'When enabled, the sidebar will display '
                     u'the root level navigation.'),
        ),
        required=False,
        default=False,
    )

    enable_actions = schema.Bool(
        title=_(
            u'controlpanel_sidebar_show_actions_title',
            default='Show Actions Section',
        ),
        description=_(
            u'controlpanel_sidebar_show_actions_description',
            default=(u'Show actions section including object '
                     u'buttons for cut, copy, paste, etc.'),
        ),
        required=False,
        default=True,
    )

    enable_cookies = schema.Bool(
        title=_(
            u'controlpanel_sidebar_enable_cookies_title',
            default='Enable Cookies',
        ),
        description=_(
            u'controlpanel_sidebar_enable_cookies_description',
            default=u'Enable cookies for sidebar features.',
        ),
        required=False,
        default=False,
    )

    enable_collapse = schema.Bool(
        title=_(
            u'controlpanel_sidebar_enable_collapse_title',
            default='Collapsible Sections',
        ),
        description=_(
            u'controlpanel_sidebar_enable_collapse_description',
            default=(
                u'When enabled, the sidebar sections can be collapsed. '
                u'This feature is only available when cookies are enabled.'),
        ),
        required=False,
        default=False,
    )

    icon_font = schema.Choice(
        title=_(u'controlpanel_sidebar_choose_icon_font_title',
                default=u'Choose Icon Font'),
        description=_(
            u'controlpanel_sidebar_choose_icon_font_description',
            default=(
                u'When a different icon font is installed, you can tell the '
                u'sidebar to use it. For Fontello we assume you\'ve set '
                u'\"icon\" as the font prefix. '
                u'Note: This does not install the icon font!')),
        values=(
            'Glyphicons',
            'Fontello',
            'Font Awesome',
            'Font Awesome Pro',
            'Font Awesome Light',
            'Font Awesome Duotone',
        ),
        default='Glyphicons',
        required=True)

    sidebar_position = schema.Choice(
        title=_(
            u'controlpanel_sidebar_sidebar_position_title',
            default='Sidebar Position',
        ),
        description=_(
            u'controlpanel_sidebar_sidebar_position_description',
            default=u'Display the sidebar on the left or right.',
        ),
        vocabulary=positionVocabulary,
        required=True,
        default='left',
    )