From a78ce4f8800a6b64a3ee5c20c9e357068a68b301 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Tue, 9 Apr 2013 08:38:02 +0200 Subject: [PATCH] work in progress: states portlet --- browser/node.py | 6 +++++- organize/stateful/browser.py | 10 ++++++++++ organize/stateful/view_macros.pt | 28 ++++++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 1 deletion(-) 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:
+ +
+
+
+ +