allow end date different from start date for appropriate work item types
This commit is contained in:
parent
1a8550995b
commit
e20feb5851
2 changed files with 32 additions and 2 deletions
|
@ -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)
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Add table
Reference in a new issue