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):
|
def startDay(self):
|
||||||
return self.formatTimeStamp(self.track.timeStamp, 'date')
|
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
|
@Lazy
|
||||||
def created(self):
|
def created(self):
|
||||||
return self.formatTimeStamp(self.track.created, 'dateTime')
|
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 time.strftime('%Y-%m-%d', time.localtime(ts))
|
||||||
return ''
|
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
|
@Lazy
|
||||||
def startTime(self):
|
def startTime(self):
|
||||||
ts = self.track.start or self.defaultTimeStamp
|
ts = self.track.start or self.defaultTimeStamp
|
||||||
|
@ -569,11 +581,12 @@ class CreateWorkItem(EditObject, BaseTrackView):
|
||||||
setValue('task')
|
setValue('task')
|
||||||
result['deadline'] = parseDate(form.get('deadline'))
|
result['deadline'] = parseDate(form.get('deadline'))
|
||||||
startDate = form.get('start_date', '').strip()
|
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'
|
startTime = form.get('start_time', '').strip().replace('T', '') or '00:00:00'
|
||||||
endTime = form.get('end_time', '').strip().replace('T', '') or '00:00:00'
|
endTime = form.get('end_time', '').strip().replace('T', '') or '00:00:00'
|
||||||
if startDate:
|
if startDate:
|
||||||
result['start'] = parseDateTime('T'.join((startDate, startTime)))
|
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['duration'] = parseTime(form.get('duration'))
|
||||||
result['effort'] = parseTime(form.get('effort'))
|
result['effort'] = parseTime(form.get('effort'))
|
||||||
return action, result
|
return action, result
|
||||||
|
@ -663,5 +676,9 @@ def formatTimeDelta(value):
|
||||||
if not value:
|
if not value:
|
||||||
return u''
|
return u''
|
||||||
h, m = divmod(int(value) / 60, 60)
|
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)
|
return u'%02i:%02i' % (h, m)
|
||||||
|
|
||||||
|
|
|
@ -173,6 +173,17 @@
|
||||||
dojoType="dijit.form.TimeTextBox"
|
dojoType="dijit.form.TimeTextBox"
|
||||||
tal:attributes="value view/endTime" /></div>
|
tal:attributes="value view/endTime" /></div>
|
||||||
</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"
|
<div id="duration-effort"
|
||||||
tal:condition="python:
|
tal:condition="python:
|
||||||
'duration-effort' in workItemType.fields">
|
'duration-effort' in workItemType.fields">
|
||||||
|
@ -238,7 +249,9 @@
|
||||||
<td><span i18n:translate="">Start - End</span>:</td>
|
<td><span i18n:translate="">Start - End</span>:</td>
|
||||||
<td><span tal:content="item/startDay" />
|
<td><span tal:content="item/startDay" />
|
||||||
<span tal:content="item/start" /> -
|
<span tal:content="item/start" /> -
|
||||||
<span tal:content="item/end" /></td>
|
<span tal:content="item/endDay" />
|
||||||
|
<span tal:content="item/end" />
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><span i18n:translate="">Duration/Effort</span>:</td>
|
<td><span i18n:translate="">Duration/Effort</span>:</td>
|
||||||
|
|
Loading…
Add table
Reference in a new issue