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