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:
parent
ae108065de
commit
60c7d22e61
7 changed files with 63 additions and 25 deletions
|
@ -69,6 +69,10 @@ table.listing td.center {
|
|||
text-align: center;
|
||||
}
|
||||
|
||||
table.listing td.nowrap {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
table.listing td.checkbox {
|
||||
text-align: center;
|
||||
width: 10px;
|
||||
|
|
|
@ -30,6 +30,8 @@
|
|||
set_schema="loops.organize.tracking.access.IAccessRecord" />
|
||||
</zope:class>
|
||||
|
||||
<zope:subscriber handler="cybertools.tracking.btree.unindexTrack" />
|
||||
|
||||
<zope:subscriber handler="loops.organize.tracking.change.recordModification" />
|
||||
<zope:subscriber handler="loops.organize.tracking.change.recordAdding" />
|
||||
<zope:subscriber handler="loops.organize.tracking.change.recordAssignment" />
|
||||
|
|
|
@ -242,7 +242,15 @@ class TrackDetails(BaseView):
|
|||
|
||||
@Lazy
|
||||
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,
|
||||
self.view.languageInfo.language)
|
||||
|
||||
|
|
|
@ -87,8 +87,8 @@ by calling the form controller's update method
|
|||
>>> request.setPrincipal(pJohn)
|
||||
|
||||
>>> from loops.browser.node import NodeView
|
||||
>>> view = NodeView(home, request)
|
||||
>>> cwiController = CreateWorkItem(view, request)
|
||||
>>> nodeView = NodeView(home, request)
|
||||
>>> cwiController = CreateWorkItem(nodeView, request)
|
||||
|
||||
>>> cwiController.update()
|
||||
False
|
||||
|
@ -105,6 +105,11 @@ by calling the form controller's update method
|
|||
>>> view.taskUrl
|
||||
'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
|
||||
=============
|
||||
|
|
|
@ -75,6 +75,14 @@ class WorkItemDetails(TrackDetails):
|
|||
def description(self):
|
||||
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):
|
||||
|
||||
|
@ -121,7 +129,7 @@ class CreateWorkItem(EditObject, BaseTrackView):
|
|||
v = form.get(k)
|
||||
if v:
|
||||
result[k] = v
|
||||
for k in ('description', 'comment'):
|
||||
for k in ('title', 'description', 'comment'):
|
||||
setValue(k)
|
||||
startDate = form.get('start_date')
|
||||
startTime = form.get('start_time')
|
||||
|
|
|
@ -8,8 +8,6 @@
|
|||
<zope:class class="loops.organize.work.base.WorkItem">
|
||||
<require permission="zope.View"
|
||||
interface="cybertools.organize.work.IWorkItem" />
|
||||
<require permission="zope.View"
|
||||
attributes="getName" />
|
||||
<require permission="zope.ManageContent"
|
||||
set_schema="cybertools.organize.work.IWorkItem" />
|
||||
</zope:class>
|
||||
|
|
|
@ -9,39 +9,53 @@
|
|||
<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>
|
||||
<table class="listing">
|
||||
<tr>
|
||||
<th i18n:translate="">Title</th>
|
||||
<th i18n:translate="">User</th>
|
||||
<th i18n:translate="">Start</th>
|
||||
<th i18n:translate="">End</th>
|
||||
</tr>
|
||||
<tal:workitem tal:repeat="workItem workItems/allWorkItems">
|
||||
<tr tal:attributes="class python:
|
||||
repeat['workItem'].odd() and 'even' or 'odd'">
|
||||
<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:work>
|
||||
|
||||
|
||||
<metal:block define-macro="create_workitem">
|
||||
<form method="post"
|
||||
id="addWorkitem_form" class="dialog"
|
||||
<form method="post" id="addWorkitem_form" class="dialog"
|
||||
dojoType="dijit.form.Form">
|
||||
<input type="hidden" name="form.action" value="create_workitem" />
|
||||
<input type="hidden" name="workitem.action" value="finish" />
|
||||
<div class="heading" i18n:translate="">Add Work Item</div>
|
||||
<div>
|
||||
<label i18n:translate=""
|
||||
for="description">Description</label>
|
||||
<label i18n:translate="" for="title">Title</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>
|
||||
<textarea name="description" cols="80" rows="4" id="description"
|
||||
dojoType="dijit.form.SimpleTextarea"
|
||||
style="width: 60em"></textarea></div>
|
||||
</div>
|
||||
<div>
|
||||
<label i18n:translate=""
|
||||
for="start-end">Start - End</label>
|
||||
<label i18n:translate="" for="start-end">Start - End</label>
|
||||
<div id="start-end">
|
||||
<input type="text" name="start_date" style="width: 8em"
|
||||
dojoType="dijit.form.DateTextBox"
|
||||
|
@ -63,8 +77,7 @@
|
|||
regexp="[0-9]{1,2}(:[0-5][0-9]){0,1}" /></div>
|
||||
</div>
|
||||
<div>
|
||||
<label i18n:translate=""
|
||||
for="comment">Comment</label>
|
||||
<label i18n:translate="" for="comment">Comment</label>
|
||||
<div>
|
||||
<textarea name="comment" cols="80" rows="4" id="comment"
|
||||
dojoType="dijit.form.SimpleTextarea"
|
||||
|
|
Loading…
Add table
Reference in a new issue