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>
|
||||||
|
|
||||||
|
|
||||||
|
<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">
|
<metal:target define-macro="target">
|
||||||
<tal:column define="value python:col.getDisplayValue(row)">
|
<tal:column define="value python:col.getDisplayValue(row)">
|
||||||
<a tal:omit-tag="python:
|
<a tal:omit-tag="python:
|
||||||
|
|
|
@ -32,6 +32,7 @@ from cybertools.util.date import timeStamp2Date
|
||||||
from cybertools.util.format import formatDate
|
from cybertools.util.format import formatDate
|
||||||
from loops.common import baseObject
|
from loops.common import baseObject
|
||||||
from loops.expert.report import ReportInstance
|
from loops.expert.report import ReportInstance
|
||||||
|
from loops.organize.work.browser import WorkItemDetails
|
||||||
from loops import util
|
from loops import util
|
||||||
|
|
||||||
|
|
||||||
|
@ -109,7 +110,7 @@ class DateField(Field):
|
||||||
|
|
||||||
class StateField(Field):
|
class StateField(Field):
|
||||||
|
|
||||||
statesDefinition = 'workItemStates'
|
statesDefinition = None
|
||||||
renderer = 'state'
|
renderer = 'state'
|
||||||
|
|
||||||
def getDisplayValue(self, row):
|
def getDisplayValue(self, row):
|
||||||
|
@ -126,6 +127,18 @@ class StateField(Field):
|
||||||
icon='cybertools.icons/' + icon)
|
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):
|
class VocabularyField(Field):
|
||||||
|
|
||||||
vocabulary = None
|
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
|
08/12/28 19:00 20:15
|
||||||
{'url': '.../home/.36', 'title': u'loops Development'}
|
{'url': '.../home/.36', 'title': u'loops Development'}
|
||||||
{'url': '.../home/.33', 'title': u'john'} 01:15 00:15
|
{'url': '.../home/.33', 'title': u'john'} 01:15 00:15
|
||||||
{'icon': 'cybertools.icons/ledgreen.png', 'title': u'finished'}
|
{'actions': [...]}
|
||||||
|
|
||||||
>>> results.totals.data
|
>>> results.totals.data
|
||||||
{'effort': 900}
|
{'effort': 900}
|
||||||
|
|
|
@ -37,6 +37,7 @@ from loops.expert.field import Field, TargetField, DateField, StateField, \
|
||||||
TextField, HtmlTextField, UrlField
|
TextField, HtmlTextField, UrlField
|
||||||
from loops.expert.field import SubReport, SubReportField
|
from loops.expert.field import SubReport, SubReportField
|
||||||
from loops.expert.field import TrackDateField, TrackTimeField
|
from loops.expert.field import TrackDateField, TrackTimeField
|
||||||
|
from loops.expert.field import WorkItemStateField
|
||||||
from loops.expert.report import ReportInstance
|
from loops.expert.report import ReportInstance
|
||||||
from loops import util
|
from loops import util
|
||||||
|
|
||||||
|
@ -122,7 +123,7 @@ duration = DurationField('duration', u'Duration',
|
||||||
effort = DurationField('effort', u'Effort',
|
effort = DurationField('effort', u'Effort',
|
||||||
description=u'The effort of the work.',
|
description=u'The effort of the work.',
|
||||||
executionSteps=['output', 'totals'])
|
executionSteps=['output', 'totals'])
|
||||||
state = StateField('state', u'State',
|
state = WorkItemStateField('state', u'State',
|
||||||
description=u'The state of the work.',
|
description=u'The state of the work.',
|
||||||
cssClass='center',
|
cssClass='center',
|
||||||
statesDefinition='workItemStates',
|
statesDefinition='workItemStates',
|
||||||
|
|
Loading…
Add table
Reference in a new issue