provide selectable standard texts for work items via data table 'organize.work.texts'
This commit is contained in:
		
							parent
							
								
									9c71572be8
								
							
						
					
					
						commit
						c970507c85
					
				
					 3 changed files with 37 additions and 3 deletions
				
			
		|  | @ -989,6 +989,12 @@ class BaseView(GenericView, I18NView, SortableMixin): | ||||||
|         jsCall = 'dojo.require("dojox.image.Lightbox");' |         jsCall = 'dojo.require("dojox.image.Lightbox");' | ||||||
|         self.controller.macros.register('js-execute', jsCall, jsCall=jsCall) |         self.controller.macros.register('js-execute', jsCall, jsCall=jsCall) | ||||||
| 
 | 
 | ||||||
|  |     def registerDojoComboBox(self): | ||||||
|  |         self.registerDojo() | ||||||
|  |         jsCall = ('dojo.require("dijit.form.ComboBox");') | ||||||
|  |         self.controller.macros.register('js-execute',  | ||||||
|  |                 'dojo.require.ComboBox', jsCall=jsCall) | ||||||
|  | 
 | ||||||
|     def registerDojoFormAll(self): |     def registerDojoFormAll(self): | ||||||
|         self.registerDojo() |         self.registerDojo() | ||||||
|         self.registerDojoEditor() |         self.registerDojoEditor() | ||||||
|  |  | ||||||
|  | @ -380,6 +380,10 @@ class CreateWorkItemForm(ObjectForm, BaseTrackView): | ||||||
|     def checkPermissions(self): |     def checkPermissions(self): | ||||||
|         return canAccessObject(self.task or self.target) |         return canAccessObject(self.task or self.target) | ||||||
| 
 | 
 | ||||||
|  |     def setupView(self): | ||||||
|  |         self.setupController() | ||||||
|  |         self.registerDojoComboBox() | ||||||
|  | 
 | ||||||
|     @Lazy |     @Lazy | ||||||
|     def macro(self): |     def macro(self): | ||||||
|         return self.template.macros['create_workitem'] |         return self.template.macros['create_workitem'] | ||||||
|  | @ -404,6 +408,20 @@ class CreateWorkItemForm(ObjectForm, BaseTrackView): | ||||||
|             track.workItemType = types[0].name |             track.workItemType = types[0].name | ||||||
|         return track |         return track | ||||||
| 
 | 
 | ||||||
|  |     @Lazy | ||||||
|  |     def titleSelection(self): | ||||||
|  |         result = [] | ||||||
|  |         dt = adapted(self.conceptManager.get('organize.work.texts')) | ||||||
|  |         if dt is None or not dt.data: | ||||||
|  |             return result | ||||||
|  |         names = ([getName(self.target)] +  | ||||||
|  |                  [getName(p.object)  | ||||||
|  |                     for p in self.target.getAllParents(ignoreTypes=True)]) | ||||||
|  |         for name, text in dt.data.values(): | ||||||
|  |             if not name or name in names: | ||||||
|  |                 result.append(text) | ||||||
|  |         return result | ||||||
|  | 
 | ||||||
|     @Lazy |     @Lazy | ||||||
|     def title(self): |     def title(self): | ||||||
|         return self.track.title or u'' |         return self.track.title or u'' | ||||||
|  |  | ||||||
|  | @ -70,7 +70,8 @@ | ||||||
|     <form method="post" id="addWorkitem_form" class="dialog" |     <form method="post" id="addWorkitem_form" class="dialog" | ||||||
|           xx_dojoType="dijit.form.Form" |           xx_dojoType="dijit.form.Form" | ||||||
|           tal:define="workItemTypes view/workItemTypes; |           tal:define="workItemTypes view/workItemTypes; | ||||||
|                       workItemType view/workItemType"> |                       workItemType view/workItemType; | ||||||
|  |                       dummy view/setupView"> | ||||||
|       <input type="hidden" name="form.action" value="create_workitem" /> |       <input type="hidden" name="form.action" value="create_workitem" /> | ||||||
|       <input type="hidden" name="id" |       <input type="hidden" name="id" | ||||||
|              tal:attributes="value request/form/id|nothing" /> |              tal:attributes="value request/form/id|nothing" /> | ||||||
|  | @ -94,8 +95,17 @@ | ||||||
|                  tal:attributes="value python:workItemTypes[0].name" /> |                  tal:attributes="value python:workItemTypes[0].name" /> | ||||||
|         </tal:type> |         </tal:type> | ||||||
|         <label i18n:translate="" for="title">Title</label> |         <label i18n:translate="" for="title">Title</label> | ||||||
|         <div> |         <div tal:define="titleSelection view/titleSelection"> | ||||||
|           <input name="title" id="title" style="width: 60em" |           <select tal:condition="titleSelection" | ||||||
|  |                   data-dojo-type="dijit/form/ComboBox" required | ||||||
|  |                   name="title" id="title" style="width: 100%" | ||||||
|  |                   tal:attributes="value view/title" > | ||||||
|  |             <option selected></option> | ||||||
|  |             <option tal:repeat="text view/titleSelection" | ||||||
|  |                     tal:content="text"></option> | ||||||
|  |           </select> | ||||||
|  |           <input tal:condition="not:titleSelection" | ||||||
|  |                  name="title" id="title" style="width: 60em" | ||||||
|                  dojoType="dijit.form.ValidationTextBox" required |                  dojoType="dijit.form.ValidationTextBox" required | ||||||
|                  tal:attributes="value view/title" /></div> |                  tal:attributes="value view/title" /></div> | ||||||
|       </div> |       </div> | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue