diff --git a/browser/node.py b/browser/node.py index 2763ada..270f459 100644 --- a/browser/node.py +++ b/browser/node.py @@ -195,7 +195,11 @@ class NodeView(BaseView): subMacro=calendar_macros.macros['main'], priority=90) # force early portlet registrations by target by setting up target view - self.virtualTarget + if self.virtualTarget is not None: + std = self.virtualTarget.typeOptions('portlet_states') + if std: + from loops.organize.stateful.browser import registerStatesPortlet + registerStatesPortlet(self.controller, self.virtualTarget, std) @Lazy def usersPresent(self): diff --git a/organize/stateful/browser.py b/organize/stateful/browser.py index ae57c87..42e04a2 100644 --- a/organize/stateful/browser.py +++ b/organize/stateful/browser.py @@ -43,6 +43,16 @@ statefulActions = ('classification_quality', 'publishable_task',) +def registerStatesPortlet(controller, view, statesDefs, + region='portlet_right', priority=98): + cm = controller.macros + stfs = [component.getAdapter(view.context, IStateful, name=std) + for std in statesDefs] + cm.register(region, 'states', title=_(u'States'), + subMacro=template.macros['portlet_states'], + priority=priority, info=view, stfs=stfs) + + class StateAction(Action): url = None diff --git a/organize/stateful/view_macros.pt b/organize/stateful/view_macros.pt index 6dfad17..d1be431 100644 --- a/organize/stateful/view_macros.pt +++ b/organize/stateful/view_macros.pt @@ -68,4 +68,32 @@ + + + +
+
+ Workflow + +
+
+ State: + +
+
+
Available Transitions:
+ +
+
+
+ +