work in progress: view work items

git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@3098 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
helmutm 2008-12-29 15:05:25 +00:00
parent a77166dfee
commit 94d38bbe2c
6 changed files with 79 additions and 6 deletions

View file

@ -404,19 +404,16 @@ class BaseView(GenericView, I18NView):
@Lazy
def versionId(self):
#versionable = IVersionable(self.context, None)
versionable = IVersionable(self.target, None)
return versionable and versionable.versionId or ''
@Lazy
def currentVersionId(self):
#versionable = IVersionable(self.context, None)
versionable = IVersionable(self.target, None)
return versionable and versionable.currentVersion.versionId or ''
@Lazy
def hasVersions(self):
#versionable = IVersionable(self.context, None)
versionable = IVersionable(self.target, None)
return versionable and len(versionable.versions) > 1 or False
@ -424,8 +421,6 @@ class BaseView(GenericView, I18NView):
def versionInfo(self):
if not self.useVersioning:
return None
#context = self.context
#versionable = IVersionable(context, None)
target = self.target
versionable = IVersionable(target, None)
if versionable is None:
@ -512,6 +507,11 @@ class BaseView(GenericView, I18NView):
inlineEditable = False
# work items
@Lazy
def workItems(self):
return []
# comments
@Lazy

View file

@ -7,6 +7,7 @@
<metal:fields use-macro="item/template/macros/conceptfields" />
<metal:fields use-macro="item/template/macros/conceptchildren" />
<metal:fields use-macro="item/template/macros/conceptresources" />
<metal:fields use-macro="view/work_macros/workitems" />
<metal:fields use-macro="view/comment_macros/comments" />
</div>
</metal:data>

View file

@ -482,8 +482,19 @@ class NodeView(BaseView):
self.recordAccess('external_edit')
return ExternalEditorView(target, self.request).load(url=url)
# comments
# work items
@Lazy
def work_macros(self):
from loops.organize.work.browser import work_macros
return work_macros.macros
@Lazy
def workItems(self):
return component.getMultiAdapter((self.context, self.request),
name='workitems.html')
# comments
@Lazy
def comment_macros(self):

View file

@ -34,8 +34,10 @@ from cybertools.browser.action import actions
from cybertools.organize.interfaces import IWorkItems
from loops.browser.action import DialogAction
from loops.browser.form import ObjectForm, EditObject
from loops.browser.node import NodeView
from loops.organize.party import getPersonForUser
from loops.organize.tracking.browser import BaseTrackView
from loops.organize.tracking.report import TrackDetails
from loops import util
from loops.util import _
@ -43,6 +45,37 @@ from loops.util import _
work_macros = ViewPageTemplateFile('work_macros.pt')
class WorkItemsView(NodeView):
def __init__(self, context, request):
self.context = context
self.request = request
@Lazy
def workItems(self):
ts = self.loopsRoot.getRecordManager().get('work')
if ts is not None:
return IWorkItems(ts)
@Lazy
def allWorkItems(self):
result = []
target = self.virtualTargetObject
workItems = self.workItems
if None in (workItems, target):
return result
for wi in workItems.query(task=util.getUidForObject(target)):
result.append(WorkItemDetails(self, wi))
return result
class WorkItemDetails(TrackDetails):
@Lazy
def description(self):
return self.track.description
class WorkItemView(BaseTrackView):
pass

View file

@ -24,6 +24,12 @@
<!-- application views -->
<browser:page
name="workitems.html"
for="loops.interfaces.INode"
class="loops.organize.work.browser.WorkItemsView"
permission="zope.View" />
<browser:page
name="create_workitem.html"
for="loops.interfaces.INode"

View file

@ -2,6 +2,28 @@
<!-- $Id$ -->
<metal:work define-macro="workitems"
tal:define="workItems nocall:view/workItems"
tal:condition="workItems/allWorkItems">
<br />
<h2 i18n:translate="">Work Items</h2>
<metal:workitems define-macro="workitems_listing"
tal:define="workItems nocall:workItems|nocall:view/workItems;">
<tal:workitem tal:repeat="workItem workItems/allWorkItems">
<br />
<div class="comment">
<h3>
<span tal:content="workItem/description">Subject</span></h3>
<div class="info">
<span tal:replace="workItem/user/title">John</span>,
<span tal:replace="workItem/timeStamp">2007-03-30</span>
</div>
</div>
</tal:workitem>
</metal:workitems>
</metal:work>
<metal:block define-macro="create_workitem">
<form method="post"
id="addWorkitem_form" class="dialog"