allow editing of workitems on report

This commit is contained in:
Helmut Merz 2014-07-07 12:41:58 +02:00
parent 6dde146189
commit 1a8550995b
4 changed files with 28 additions and 3 deletions

View file

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

View file

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

View file

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

View file

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