provide selectable standard texts for work items via data table 'organize.work.texts'

This commit is contained in:
Helmut Merz 2015-04-26 13:16:33 +02:00
parent 9c71572be8
commit c970507c85
3 changed files with 37 additions and 3 deletions

View file

@ -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()

View file

@ -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''

View file

@ -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>