bug fix: handling of date and time values
git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@3176 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
		
							parent
							
								
									57f943707c
								
							
						
					
					
						commit
						8af44efcaf
					
				
					 3 changed files with 18 additions and 16 deletions
				
			
		|  | @ -1,5 +1,5 @@ | ||||||
| # | # | ||||||
| #  Copyright (c) 2008 Helmut Merz helmutm@cy55.de | #  Copyright (c) 2009 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 | ||||||
|  | @ -244,7 +244,6 @@ class DateFieldInstance(NumberFieldInstance): | ||||||
|             try: |             try: | ||||||
|                 self.unmarshall(value) |                 self.unmarshall(value) | ||||||
|             except (TypeError, ValueError, DateTimeParseError), e: |             except (TypeError, ValueError, DateTimeParseError), e: | ||||||
|                 #print '*** invalid_datetime:', value, e |  | ||||||
|                 getLogger('cybertools').warn( |                 getLogger('cybertools').warn( | ||||||
|                         'DateFieldInstance: invalid datetime: %s, %s' % (value, e)) |                         'DateFieldInstance: invalid datetime: %s, %s' % (value, e)) | ||||||
|                 self.setError('invalid_datetime') |                 self.setError('invalid_datetime') | ||||||
|  |  | ||||||
|  | @ -206,7 +206,9 @@ class WorkItem(Stateful, Track): | ||||||
|         return new |         return new | ||||||
| 
 | 
 | ||||||
|     def close(self, userName, **kw): |     def close(self, userName, **kw): | ||||||
|         new = self.createNew('close', userName, copyData=False, **kw) |         kw['start'] = kw['end'] = getTimeStamp() | ||||||
|  |         kw['duration'] = kw['effort'] = None | ||||||
|  |         new = self.createNew('close', userName, copyData=('title',), **kw) | ||||||
|         new.state = 'closed' |         new.state = 'closed' | ||||||
|         new.reindex('state') |         new.reindex('state') | ||||||
|         getParent(self).stopRun(runId=self.runId, finish=True) |         getParent(self).stopRun(runId=self.runId, finish=True) | ||||||
|  | @ -233,18 +235,19 @@ class WorkItem(Stateful, Track): | ||||||
|         for k, v in kw.items(): |         for k, v in kw.items(): | ||||||
|             data[k] = v |             data[k] = v | ||||||
| 
 | 
 | ||||||
|     def createNew(self, action, userName, copyData=True, **kw): |     def createNew(self, action, userName, copyData=None, **kw): | ||||||
|  |         if copyData is None: | ||||||
|  |             copyData = self.initAttributes | ||||||
|         newData = {} |         newData = {} | ||||||
|         if copyData: |  | ||||||
|         for k in self.initAttributes: |         for k in self.initAttributes: | ||||||
|             v = kw.get(k, _not_found) |             v = kw.get(k, _not_found) | ||||||
|                 if v is _not_found: |             if v is _not_found and k in copyData: | ||||||
|                 if action == 'start' and k in ('end',): |                 if action == 'start' and k in ('end',): | ||||||
|                     continue |                     continue | ||||||
|                 if action in ('work', 'finish') and k in ('duration', 'effort',): |                 if action in ('work', 'finish') and k in ('duration', 'effort',): | ||||||
|                     continue |                     continue | ||||||
|                 v = self.data.get(k) |                 v = self.data.get(k) | ||||||
|                 if v is not None: |             if v not in (None, _not_found): | ||||||
|                 newData[k] = v |                 newData[k] = v | ||||||
|         workItems = IWorkItems(getParent(self)) |         workItems = IWorkItems(getParent(self)) | ||||||
|         new = workItems.add(self.taskId, userName, self.runId, **newData) |         new = workItems.add(self.taskId, userName, self.runId, **newData) | ||||||
|  |  | ||||||
|  | @ -137,7 +137,7 @@ As the work is now finished, the work item may be closed; the corresponding | ||||||
|   >>> wi06 = wi05.doAction('close', 'john') |   >>> wi06 = wi05.doAction('close', 'john') | ||||||
|   >>> wi06 |   >>> wi06 | ||||||
|   <WorkItem ['001', 1, 'john', '... ...', 'closed']: |   <WorkItem ['001', 1, 'john', '... ...', 'closed']: | ||||||
|    {'created': ..., 'creator': 'john'}> |    {'start': ..., 'created': ..., 'end': ..., 'creator': 'john'}> | ||||||
| 
 | 
 | ||||||
| Let's now check how many work items have been generated. | Let's now check how many work items have been generated. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 helmutm
						helmutm