2012-02-22 49 views
1

我想使用collective.easytemplate生成模板化電子郵件(適用於內容規則)。但是,我不確定它是否可以輸出對象工作流程狀態。任何人都知道這是否可能,以及它是如何完成的?在collective.easytemplate中訪問對象的工作流程狀態

謝謝。

+0

請在你的問題:你曾試圖尋找答案的方式,要求對計算器 – aclark 2012-02-22 18:27:49

+0

很抱歉,我真的在黑暗中摸索,因爲我不熟悉Plone的API之前。更多谷歌指向我這個代碼{{here.portal_workflow.getInfoFor(here,'review_state')}}我剛剛用上下文替換了它,它工作。但是,我得到了國家的標識而不是標題。任何人都知道如何獲得審查狀態標題,而不是ID? – h2o 2012-02-23 03:06:11

回答

4

您可以,有可能,一種方法是使用portal_workflow工具,例如,從parts/omelette/plone/app/contentrules/tests/test_action_workflow.py

self.assertEquals('published', 
    self.portal.portal_workflow.getInfoFor(self.folder.d1, 'review_state')) 

更一般地,是這樣的:

context.portal_workflow.getInfoFor(context, 'review_state') 

在一個頁面模板應該工作。或者如Spanky所建議的那樣使用portal_catalog。如果「OBJ」是目錄「大腦」(即從目錄搜索的結果集的一部分),那麼:

obj.review_state 

應該工作。

+0

謝謝aclark。這和我上面發現和提到的完全一樣。我在模板化的電子郵件中使用了{{context.portal_workflow.getInfoFor(context,'review_state')}}。 – h2o 2012-02-23 03:13:17

1

portal_catalog還具有工作流審閱狀態的索引,因此如果您尚未擁有正在處理的對象(例如上下文≠對象),則可以使用該目錄查找該對象並獲取從產生的「大腦」對象審查狀態。

顯然也有ALSO瀏覽器視圖方法可供您使用,並且我注意到其中之一是workflow_state。請參閱:

http://plone.org/documentation/manual/theme-reference/page/otherinfo

+0

collective.easytemplate可以對門戶目錄執行查詢,但這對我來說似乎更加複雜。感謝你的協助。 – h2o 2012-02-23 03:31:11

+0

我錯過了你編輯你的文章。是的,瀏覽器視圖方法也可以從collective.easytemplate中訪問。獲取工作流狀態的代碼是{{view(「plone_context_state」,「workflow_state」)}} – h2o 2012-02-29 02:29:50