work in progress: work items listing

git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@3104 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
helmutm 2008-12-30 22:54:34 +00:00
parent ae108065de
commit 60c7d22e61
7 changed files with 63 additions and 25 deletions

View file

@ -69,6 +69,10 @@ table.listing td.center {
text-align: center; text-align: center;
} }
table.listing td.nowrap {
white-space: nowrap;
}
table.listing td.checkbox { table.listing td.checkbox {
text-align: center; text-align: center;
width: 10px; width: 10px;

View file

@ -30,6 +30,8 @@
set_schema="loops.organize.tracking.access.IAccessRecord" /> set_schema="loops.organize.tracking.access.IAccessRecord" />
</zope:class> </zope:class>
<zope:subscriber handler="cybertools.tracking.btree.unindexTrack" />
<zope:subscriber handler="loops.organize.tracking.change.recordModification" /> <zope:subscriber handler="loops.organize.tracking.change.recordModification" />
<zope:subscriber handler="loops.organize.tracking.change.recordAdding" /> <zope:subscriber handler="loops.organize.tracking.change.recordAdding" />
<zope:subscriber handler="loops.organize.tracking.change.recordAssignment" /> <zope:subscriber handler="loops.organize.tracking.change.recordAssignment" />

View file

@ -242,7 +242,15 @@ class TrackDetails(BaseView):
@Lazy @Lazy
def timeStamp(self): def timeStamp(self):
value = datetime.fromtimestamp(self.track.timeStamp) return self.formatTimeStamp(self.track.timeStamp)
#value = datetime.fromtimestamp(self.track.timeStamp)
#return format.formatDate(value, 'dateTime', self.timeStampFormat,
# self.view.languageInfo.language)
def formatTimeStamp(self, ts):
if not ts:
return u''
value = datetime.fromtimestamp(ts)
return format.formatDate(value, 'dateTime', self.timeStampFormat, return format.formatDate(value, 'dateTime', self.timeStampFormat,
self.view.languageInfo.language) self.view.languageInfo.language)

View file

@ -87,8 +87,8 @@ by calling the form controller's update method
>>> request.setPrincipal(pJohn) >>> request.setPrincipal(pJohn)
>>> from loops.browser.node import NodeView >>> from loops.browser.node import NodeView
>>> view = NodeView(home, request) >>> nodeView = NodeView(home, request)
>>> cwiController = CreateWorkItem(view, request) >>> cwiController = CreateWorkItem(nodeView, request)
>>> cwiController.update() >>> cwiController.update()
False False
@ -105,6 +105,11 @@ by calling the form controller's update method
>>> view.taskUrl >>> view.taskUrl
'http://127.0.0.1/loops/concepts/loops_dev/@@SelectedManagementView.html' 'http://127.0.0.1/loops/concepts/loops_dev/@@SelectedManagementView.html'
>>> from loops.organize.work.browser import WorkItemDetails
>>> view = WorkItemDetails(nodeView, wi01)
>>> view.start, view.end
(u'08/12/28 19:00', u'20:15')
Fin de partie Fin de partie
============= =============

View file

@ -75,6 +75,14 @@ class WorkItemDetails(TrackDetails):
def description(self): def description(self):
return self.track.description return self.track.description
@Lazy
def start(self):
return self.formatTimeStamp(self.track.start)
@Lazy
def end(self):
return self.formatTimeStamp(self.track.end)[-5:]
class WorkItemView(BaseTrackView): class WorkItemView(BaseTrackView):
@ -121,7 +129,7 @@ class CreateWorkItem(EditObject, BaseTrackView):
v = form.get(k) v = form.get(k)
if v: if v:
result[k] = v result[k] = v
for k in ('description', 'comment'): for k in ('title', 'description', 'comment'):
setValue(k) setValue(k)
startDate = form.get('start_date') startDate = form.get('start_date')
startTime = form.get('start_time') startTime = form.get('start_time')

View file

@ -8,8 +8,6 @@
<zope:class class="loops.organize.work.base.WorkItem"> <zope:class class="loops.organize.work.base.WorkItem">
<require permission="zope.View" <require permission="zope.View"
interface="cybertools.organize.work.IWorkItem" /> interface="cybertools.organize.work.IWorkItem" />
<require permission="zope.View"
attributes="getName" />
<require permission="zope.ManageContent" <require permission="zope.ManageContent"
set_schema="cybertools.organize.work.IWorkItem" /> set_schema="cybertools.organize.work.IWorkItem" />
</zope:class> </zope:class>

View file

@ -9,39 +9,53 @@
<h2 i18n:translate="">Work Items</h2> <h2 i18n:translate="">Work Items</h2>
<metal:workitems define-macro="workitems_listing" <metal:workitems define-macro="workitems_listing"
tal:define="workItems nocall:workItems|nocall:view/workItems;"> tal:define="workItems nocall:workItems|nocall:view/workItems;">
<tal:workitem tal:repeat="workItem workItems/allWorkItems"> <table class="listing">
<br /> <tr>
<div class="comment"> <th i18n:translate="">Title</th>
<h3> <th i18n:translate="">User</th>
<span tal:content="workItem/description">Subject</span></h3> <th i18n:translate="">Start</th>
<div class="info"> <th i18n:translate="">End</th>
<span tal:replace="workItem/user/title">John</span>, </tr>
<span tal:replace="workItem/timeStamp">2007-03-30</span> <tal:workitem tal:repeat="workItem workItems/allWorkItems">
</div> <tr tal:attributes="class python:
</div> repeat['workItem'].odd() and 'even' or 'odd'">
</tal:workitem> <td>
<span tal:content="workItem/track/title">Title</span></td>
<td>
<span tal:replace="workItem/user/title">John</span></td>
<td class="nowrap">
<span tal:replace="workItem/start">2007-03-30</span></td>
<td class="nowrap">
<span tal:replace="workItem/end">2007-03-30</span></td>
</tr>
</tal:workitem>
</table>
</metal:workitems> </metal:workitems>
</metal:work> </metal:work>
<metal:block define-macro="create_workitem"> <metal:block define-macro="create_workitem">
<form method="post" <form method="post" id="addWorkitem_form" class="dialog"
id="addWorkitem_form" class="dialog"
dojoType="dijit.form.Form"> dojoType="dijit.form.Form">
<input type="hidden" name="form.action" value="create_workitem" /> <input type="hidden" name="form.action" value="create_workitem" />
<input type="hidden" name="workitem.action" value="finish" /> <input type="hidden" name="workitem.action" value="finish" />
<div class="heading" i18n:translate="">Add Work Item</div> <div class="heading" i18n:translate="">Add Work Item</div>
<div> <div>
<label i18n:translate="" <label i18n:translate="" for="title">Title</label>
for="description">Description</label> <div>
<input name="title" id="title"
dojoType="dijit.form.ValidationTextBox" required
style="width: 60em" /></div>
</div>
<div>
<label i18n:translate="" for="description">Description</label>
<div> <div>
<textarea name="description" cols="80" rows="4" id="description" <textarea name="description" cols="80" rows="4" id="description"
dojoType="dijit.form.SimpleTextarea" dojoType="dijit.form.SimpleTextarea"
style="width: 60em"></textarea></div> style="width: 60em"></textarea></div>
</div> </div>
<div> <div>
<label i18n:translate="" <label i18n:translate="" for="start-end">Start - End</label>
for="start-end">Start - End</label>
<div id="start-end"> <div id="start-end">
<input type="text" name="start_date" style="width: 8em" <input type="text" name="start_date" style="width: 8em"
dojoType="dijit.form.DateTextBox" dojoType="dijit.form.DateTextBox"
@ -63,8 +77,7 @@
regexp="[0-9]{1,2}(:[0-5][0-9]){0,1}" /></div> regexp="[0-9]{1,2}(:[0-5][0-9]){0,1}" /></div>
</div> </div>
<div> <div>
<label i18n:translate="" <label i18n:translate="" for="comment">Comment</label>
for="comment">Comment</label>
<div> <div>
<textarea name="comment" cols="80" rows="4" id="comment" <textarea name="comment" cols="80" rows="4" id="comment"
dojoType="dijit.form.SimpleTextarea" dojoType="dijit.form.SimpleTextarea"