Skip to content

Commit

Permalink
added method from old toolbar
Browse files Browse the repository at this point in the history
  • Loading branch information
sarn0ld authored and santonelli committed Oct 18, 2018
1 parent 8ec6441 commit b8acee2
Show file tree
Hide file tree
Showing 2 changed files with 103 additions and 7 deletions.
96 changes: 96 additions & 0 deletions src/collective/sidebar/browser/sidebar.py
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,102 @@ def get_workflow_data(self):
result['transitions'] = transitions
return result

def getMenuItems(self):
"""Return menu item entries in a TAL-friendly form."""
context = self.context
request = context.REQUEST
from plone.app.contentmenu import PloneMessageFactory as _
from zope.component import queryMultiAdapter
from Products.CMFCore.utils import getToolByName
from plone.protect.utils import addTokenToUrl
from Products.CMFCore.utils import _checkPermission
import pkg_resources
try:
pkg_resources.get_distribution('Products.CMFPlacefulWorkflow')
from Products.CMFPlacefulWorkflow.permissions import \
ManageWorkflowPolicies
except pkg_resources.DistributionNotFound:
from Products.CMFCore.permissions import \
ManagePortal as ManageWorkflowPolicies # noqa

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()

if len(results) > 0:
results.append({
'title': _(u'label_advanced', default=u'Advanced...'),
'description': '',
'action': url + '/content_status_history',
'selected': False,
'icon': None,
'extra': {
'id': 'workflow-transition-advanced',
'separator': 'actionSeparator',
'class': 'pat-plone-modal'},
'submenu': None,
})

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


class CoverViewlet(SidebarViewlet):

Expand Down
14 changes: 7 additions & 7 deletions src/collective/sidebar/browser/templates/sidebar.pt
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,12 @@
<!-- Workflow -->

<div class="menu-section"
tal:define="data view/get_workflow_data;
i18n:domain="plone"
tal:define="data view/get_workflow_data;
absolute_url context/absolute_url;
content_status_modify python:absolute_url + '/content_status_modify';
state python:data['state'];
transitions python:data['transitions']"
tal:condition="python:view.can_edit() and transitions">
state python:data['state'];"
tal:condition="python:view.can_edit()">

<a href="${absolute_url}/content_status_history" i18n:translate="navigation_heading_workflow">
<div class="menu-section-title">
Expand All @@ -69,9 +69,9 @@
<span class="menu-item-icon glyphicon glyphicon-record ${state/color}"></span> <span class="menu-item-title">${state/name/title}</span>
</a>

<tal:repeat tal:repeat="transition transitions">
<a href="${content_status_modify}?workflow_action=${transition/id}${token_arg}" title="${transition/title}">
<span class="menu-item-icon glyphicon glyphicon-transfer"></span> <span class="menu-item-title">${transition/name}</span>
<tal:repeat tal:repeat="action view/getMenuItems">
<a href="${action/action}">
<span class="menu-item-icon glyphicon glyphicon-transfer"></span> <span class="menu-item-title" i18n:translate="">${action/title}</span>
</a>
</tal:repeat>

Expand Down

0 comments on commit b8acee2

Please sign in to comment.