allow editing of workitems on report
This commit is contained in:
parent
6dde146189
commit
1a8550995b
4 changed files with 28 additions and 3 deletions
|
@ -80,6 +80,17 @@
|
|||
</metal:state>
|
||||
|
||||
|
||||
<metal:state define-macro="workitem_state">
|
||||
<tal:column define="value python:col.getDisplayValue(row)"
|
||||
condition="value">
|
||||
<tal:action repeat="action value/actions">
|
||||
<metal:action tal:condition="action"
|
||||
use-macro="action/macro" />
|
||||
</tal:action>
|
||||
</tal:column>
|
||||
</metal:state>
|
||||
|
||||
|
||||
<metal:target define-macro="target">
|
||||
<tal:column define="value python:col.getDisplayValue(row)">
|
||||
<a tal:omit-tag="python:
|
||||
|
|
|
@ -32,6 +32,7 @@ from cybertools.util.date import timeStamp2Date
|
|||
from cybertools.util.format import formatDate
|
||||
from loops.common import baseObject
|
||||
from loops.expert.report import ReportInstance
|
||||
from loops.organize.work.browser import WorkItemDetails
|
||||
from loops import util
|
||||
|
||||
|
||||
|
@ -109,7 +110,7 @@ class DateField(Field):
|
|||
|
||||
class StateField(Field):
|
||||
|
||||
statesDefinition = 'workItemStates'
|
||||
statesDefinition = None
|
||||
renderer = 'state'
|
||||
|
||||
def getDisplayValue(self, row):
|
||||
|
@ -126,6 +127,18 @@ class StateField(Field):
|
|||
icon='cybertools.icons/' + icon)
|
||||
|
||||
|
||||
class WorkItemStateField(Field):
|
||||
|
||||
statesDefinition = 'workItemStates'
|
||||
renderer = 'workitem_state'
|
||||
|
||||
def getDisplayValue(self, row):
|
||||
if row.context is None:
|
||||
return None
|
||||
details = WorkItemDetails(row.parent.context.view, row.context)
|
||||
return dict(actions=details.actions())
|
||||
|
||||
|
||||
class VocabularyField(Field):
|
||||
|
||||
vocabulary = None
|
||||
|
|
|
@ -229,7 +229,7 @@ The user interface is a ReportConceptView subclass that is directly associated w
|
|||
08/12/28 19:00 20:15
|
||||
{'url': '.../home/.36', 'title': u'loops Development'}
|
||||
{'url': '.../home/.33', 'title': u'john'} 01:15 00:15
|
||||
{'icon': 'cybertools.icons/ledgreen.png', 'title': u'finished'}
|
||||
{'actions': [...]}
|
||||
|
||||
>>> results.totals.data
|
||||
{'effort': 900}
|
||||
|
|
|
@ -37,6 +37,7 @@ from loops.expert.field import Field, TargetField, DateField, StateField, \
|
|||
TextField, HtmlTextField, UrlField
|
||||
from loops.expert.field import SubReport, SubReportField
|
||||
from loops.expert.field import TrackDateField, TrackTimeField
|
||||
from loops.expert.field import WorkItemStateField
|
||||
from loops.expert.report import ReportInstance
|
||||
from loops import util
|
||||
|
||||
|
@ -122,7 +123,7 @@ duration = DurationField('duration', u'Duration',
|
|||
effort = DurationField('effort', u'Effort',
|
||||
description=u'The effort of the work.',
|
||||
executionSteps=['output', 'totals'])
|
||||
state = StateField('state', u'State',
|
||||
state = WorkItemStateField('state', u'State',
|
||||
description=u'The state of the work.',
|
||||
cssClass='center',
|
||||
statesDefinition='workItemStates',
|
||||
|
|
Loading…
Add table
Reference in a new issue