allow end date different from start date for appropriate work item types

This commit is contained in:
Helmut Merz 2014-07-07 14:20:03 +02:00
parent 1a8550995b
commit e20feb5851
2 changed files with 32 additions and 2 deletions

View file

@ -106,6 +106,11 @@ class WorkItemDetails(TrackDetails):
def startDay(self):
return self.formatTimeStamp(self.track.timeStamp, 'date')
@Lazy
def endDay(self):
endDay = self.formatTimeStamp(self.track.end, 'date')
return endDay != self.startDay and endDay or ''
@Lazy
def created(self):
return self.formatTimeStamp(self.track.created, 'dateTime')
@ -435,6 +440,13 @@ class CreateWorkItemForm(ObjectForm, BaseTrackView):
return time.strftime('%Y-%m-%d', time.localtime(ts))
return ''
@Lazy
def endDate(self):
ts = self.track.end or self.defaultTimeStamp
if ts:
return time.strftime('%Y-%m-%d', time.localtime(ts))
return ''
@Lazy
def startTime(self):
ts = self.track.start or self.defaultTimeStamp
@ -569,11 +581,12 @@ class CreateWorkItem(EditObject, BaseTrackView):
setValue('task')
result['deadline'] = parseDate(form.get('deadline'))
startDate = form.get('start_date', '').strip()
endDate = form.get('end_date', '').strip() or startDate
startTime = form.get('start_time', '').strip().replace('T', '') or '00:00:00'
endTime = form.get('end_time', '').strip().replace('T', '') or '00:00:00'
if startDate:
result['start'] = parseDateTime('T'.join((startDate, startTime)))
result['end'] = parseDateTime('T'.join((startDate, endTime)))
result['end'] = parseDateTime('T'.join((endDate, endTime)))
result['duration'] = parseTime(form.get('duration'))
result['effort'] = parseTime(form.get('effort'))
return action, result
@ -663,5 +676,9 @@ def formatTimeDelta(value):
if not value:
return u''
h, m = divmod(int(value) / 60, 60)
if h > 24:
#d, h = divmod(h / 24, 24)
#return u'%id %02i:%02i' % (d, h, m)
return str(int(round(h / 24.0)))
return u'%02i:%02i' % (h, m)

View file

@ -173,6 +173,17 @@
dojoType="dijit.form.TimeTextBox"
tal:attributes="value view/endTime" /></div>
</div>
<div id="daterange"
tal:condition="python:'daterange' in workItemType.fields">
<label i18n:translate="" for="daterange-input">Start - End</label>
<div id="daterange-input">
<input type="text" name="start_date" style="width: 8em"
dojoType="dijit.form.DateTextBox"
tal:attributes="value view/date" />
<input type="text" name="end_date" style="width: 8em"
dojoType="dijit.form.DateTextBox"
tal:attributes="value view/endDate" />
</div>
<div id="duration-effort"
tal:condition="python:
'duration-effort' in workItemType.fields">
@ -238,7 +249,9 @@
<td><span i18n:translate="">Start - End</span>:</td>
<td><span tal:content="item/startDay" />
<span tal:content="item/start" /> -
<span tal:content="item/end" /></td>
<span tal:content="item/endDay" />
<span tal:content="item/end" />
</td>
</tr>
<tr>
<td><span i18n:translate="">Duration/Effort</span>:</td>