optionally allow time part for deadline

This commit is contained in:
Helmut Merz 2015-03-14 11:41:10 +01:00
parent d05b3cd544
commit 2c112703a3
2 changed files with 39 additions and 4 deletions

View file

@ -1,5 +1,5 @@
# #
# Copyright (c) 2014 Helmut Merz helmutm@cy55.de # Copyright (c) 2015 Helmut Merz helmutm@cy55.de
# #
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
@ -85,6 +85,14 @@ class WorkItemDetails(TrackDetails):
def deadline(self): def deadline(self):
return self.formatTimeStamp(self.track.deadline, 'date') return self.formatTimeStamp(self.track.deadline, 'date')
@Lazy
def deadlineTime(self):
return self.formatTimeStamp(self.track.deadline, 'time')
@Lazy
def deadlineWithTime(self):
return self.globalOptions('organize.work.deadline_with_time')
@Lazy @Lazy
def start(self): def start(self):
result = self.formatTimeStamp(self.track.start, 'time') result = self.formatTimeStamp(self.track.start, 'time')
@ -429,6 +437,17 @@ 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 deadlineTime(self):
ts = self.track.deadline# or getTimeStamp()
if ts:
return time.strftime('T%H:%M', time.localtime(ts))
return ''
@Lazy
def deadlineWithTime(self):
return self.globalOptions('organize.work.deadline_with_time')
@Lazy @Lazy
def defaultTimeStamp(self): def defaultTimeStamp(self):
if self.workItemType.prefillDate: if self.workItemType.prefillDate:
@ -583,7 +602,14 @@ class CreateWorkItem(EditObject, BaseTrackView):
setValue('party') setValue('party')
if action == 'move': if action == 'move':
setValue('task') setValue('task')
result['deadline'] = parseDate(form.get('deadline')) #result['deadline'] = parseDate(form.get('deadline'))
deadline = form.get('deadline')
if deadline:
deadlineTime = (form.get('deadline_time', '').
strip().replace('T', '') or '00:00:00')
result['deadline'] = parseDateTime('T'.join((deadline, deadlineTime)))
else:
result['deadline'] = None
startDate = form.get('start_date', '').strip() startDate = form.get('start_date', '').strip()
endDate = form.get('end_date', '').strip() or startDate 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'

View file

@ -157,7 +157,12 @@
<div id="deadline-input"> <div id="deadline-input">
<input type="text" name="deadline" style="width: 8em" <input type="text" name="deadline" style="width: 8em"
dojoType="dijit.form.DateTextBox" dojoType="dijit.form.DateTextBox"
tal:attributes="value view/deadline" /></div> tal:attributes="value view/deadline" />
<input type="text" name="deadline_time" style="width: 6em"
dojoType="dijit.form.TimeTextBox"
tal:condition="view/deadlineWithTime"
tal:attributes="value view/deadlineTime" />
</div>
</div> </div>
<div id="start-end" <div id="start-end"
tal:condition="python:'start-end' in workItemType.fields"> tal:condition="python:'start-end' in workItemType.fields">
@ -243,7 +248,11 @@
</tr> </tr>
<tr> <tr>
<td><span i18n:translate="">Deadline</span>:</td> <td><span i18n:translate="">Deadline</span>:</td>
<td tal:content="item/deadline"></td> <td>
<span tal:content="item/deadline" />
<span tal:condition="item/deadlineWithTime"
tal:content="item/deadlineTime" />
</td>
</tr> </tr>
<tr> <tr>
<td><span i18n:translate="">Start - End</span>:</td> <td><span i18n:translate="">Start - End</span>:</td>