prepare stateful (workflow) stuff for concepts
git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@2907 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
		
							parent
							
								
									4a09b21e5f
								
							
						
					
					
						commit
						9af3d9ab29
					
				
					 6 changed files with 43 additions and 7 deletions
				
			
		|  | @ -176,6 +176,14 @@ class ConceptRelationView(BaseView): | ||||||
|     def order(self): |     def order(self): | ||||||
|         return self.relation.order |         return self.relation.order | ||||||
| 
 | 
 | ||||||
|  |     def getActions(self, category='object', page=None, target=None): | ||||||
|  |         t = IType(self.context) | ||||||
|  |         actInfo = t.optionsDict.get('action.' + category, '') | ||||||
|  |         actNames = [n.strip() for n in actInfo.split(',')] | ||||||
|  |         if actNames: | ||||||
|  |             return actions.get(category, actNames, view=self, page=page, target=target) | ||||||
|  |         return [] | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| class ConceptView(BaseView): | class ConceptView(BaseView): | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -12,6 +12,9 @@ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| <metal:title define-macro="concepttitle"> | <metal:title define-macro="concepttitle"> | ||||||
|  |     <tal:actions condition="view/showObjectActions"> | ||||||
|  |         <div metal:use-macro="views/node_macros/object_actions" /> | ||||||
|  |     </tal:actions> | ||||||
|     <h1 tal:attributes="ondblclick item/openEditWindow"> |     <h1 tal:attributes="ondblclick item/openEditWindow"> | ||||||
|       <a name="top" |       <a name="top" | ||||||
|          tal:content="item/title">Title</a> |          tal:content="item/title">Title</a> | ||||||
|  | @ -80,6 +83,8 @@ | ||||||
|             <th i18n:translate="">Type</th> |             <th i18n:translate="">Type</th> | ||||||
|             <th i18n:translate="">Modification Date</th> |             <th i18n:translate="">Modification Date</th> | ||||||
|             <th i18n:translate="">Author(s)</th> |             <th i18n:translate="">Author(s)</th> | ||||||
|  |             <th i18n:translate="" | ||||||
|  |                 tal:condition="view/showObjectActions">Info</th> | ||||||
|           </tr> |           </tr> | ||||||
|           <tal:items repeat="related children"> |           <tal:items repeat="related children"> | ||||||
|             <tal:item define="class python: repeat['related'].odd() and 'even' or 'odd'; |             <tal:item define="class python: repeat['related'].odd() and 'even' or 'odd'; | ||||||
|  | @ -96,6 +101,12 @@ | ||||||
|                           i18n:translate="">Type</span></td> |                           i18n:translate="">Type</span></td> | ||||||
|                 <td><span tal:replace="related/modified">Type</span></td> |                 <td><span tal:replace="related/modified">Type</span></td> | ||||||
|                 <td><span tal:replace="related/creators">Type</span></td> |                 <td><span tal:replace="related/creators">Type</span></td> | ||||||
|  |                 <td style="white-space: nowrap" | ||||||
|  |                     tal:define="target nocall:related; | ||||||
|  |                                 style nothing" | ||||||
|  |                     tal:condition="view/showObjectActions"> | ||||||
|  |                   <div metal:use-macro="views/node_macros/object_actions" /> | ||||||
|  |                 </td> | ||||||
|               </tr> |               </tr> | ||||||
|             </tal:item> |             </tal:item> | ||||||
|           </tal:items> |           </tal:items> | ||||||
|  |  | ||||||
|  | @ -329,6 +329,7 @@ class NodeView(BaseView): | ||||||
|     def targetDefaultView(self): |     def targetDefaultView(self): | ||||||
|         target = self.virtualTargetObject |         target = self.virtualTargetObject | ||||||
|         if target is not None: |         if target is not None: | ||||||
|  |             # zope.app.publisher.browser | ||||||
|             name = zapi.getDefaultViewName(target, self.request) |             name = zapi.getDefaultViewName(target, self.request) | ||||||
|             return self.targetView(name) |             return self.targetView(name) | ||||||
|         return u'' |         return u'' | ||||||
|  | @ -396,6 +397,7 @@ class NodeView(BaseView): | ||||||
|             target = self.virtualTarget |             target = self.virtualTarget | ||||||
|         if target is not None: |         if target is not None: | ||||||
|             actions.extend(target.getActions(category, page=self, target=target)) |             actions.extend(target.getActions(category, page=self, target=target)) | ||||||
|  |         if target != self.virtualTarget:  # self view must be used directly for target | ||||||
|             actions.extend(self.view.getAdditionalActions(category, self, target)) |             actions.extend(self.view.getAdditionalActions(category, self, target)) | ||||||
|         return actions |         return actions | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -109,5 +109,3 @@ | ||||||
|             </a> |             </a> | ||||||
|           </div> |           </div> | ||||||
| </metal:actions> | </metal:actions> | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|  |  | ||||||
|  | @ -31,7 +31,7 @@ from cybertools.meta.interfaces import IOptions | ||||||
| from cybertools.stateful.base import Stateful as BaseStateful | from cybertools.stateful.base import Stateful as BaseStateful | ||||||
| from cybertools.stateful.base import StatefulAdapter, IndexInfo | from cybertools.stateful.base import StatefulAdapter, IndexInfo | ||||||
| from cybertools.stateful.interfaces import IStatesDefinition, ITransitionEvent | from cybertools.stateful.interfaces import IStatesDefinition, ITransitionEvent | ||||||
| from loops.interfaces import ILoopsObject, IResource | from loops.interfaces import ILoopsObject, IConcept, IResource | ||||||
| from loops import util | from loops import util | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @ -59,6 +59,16 @@ class SimplePublishable(StatefulLoopsObject): | ||||||
|     statesDefinition = 'simple_publishing' |     statesDefinition = 'simple_publishing' | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | class StatefulConceptIndexInfo(IndexInfo): | ||||||
|  | 
 | ||||||
|  |     adapts(IConcept) | ||||||
|  | 
 | ||||||
|  |     @property | ||||||
|  |     def availableStatesDefinitions(self): | ||||||
|  |         options = IOptions(self.context.getLoopsRoot()) | ||||||
|  |         return options('organize.stateful.concept', ()) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| class StatefulResourceIndexInfo(IndexInfo): | class StatefulResourceIndexInfo(IndexInfo): | ||||||
| 
 | 
 | ||||||
|     adapts(IResource) |     adapts(IResource) | ||||||
|  |  | ||||||
|  | @ -12,6 +12,13 @@ | ||||||
|     <allow interface="cybertools.stateful.interfaces.IStatefulIndexInfo" /> |     <allow interface="cybertools.stateful.interfaces.IStatefulIndexInfo" /> | ||||||
|   </zope:class> |   </zope:class> | ||||||
| 
 | 
 | ||||||
|  |   <zope:adapter | ||||||
|  |         factory="loops.organize.stateful.base.StatefulConceptIndexInfo" | ||||||
|  |         trusted="True" /> | ||||||
|  |   <zope:class class="loops.organize.stateful.base.StatefulConceptIndexInfo"> | ||||||
|  |     <allow interface="cybertools.stateful.interfaces.IStatefulIndexInfo" /> | ||||||
|  |   </zope:class> | ||||||
|  | 
 | ||||||
|   <!-- stateful definitions and corresponding adapters --> |   <!-- stateful definitions and corresponding adapters --> | ||||||
| 
 | 
 | ||||||
|   <zope:utility |   <zope:utility | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 helmutm
						helmutm