work in progress: work items listing
git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@3104 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
		
							parent
							
								
									ae108065de
								
							
						
					
					
						commit
						60c7d22e61
					
				
					 7 changed files with 63 additions and 25 deletions
				
			
		|  | @ -69,6 +69,10 @@ table.listing td.center { | ||||||
|     text-align: center; |     text-align: center; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | table.listing td.nowrap { | ||||||
|  |     white-space: nowrap; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| table.listing td.checkbox { | table.listing td.checkbox { | ||||||
|     text-align: center; |     text-align: center; | ||||||
|     width: 10px; |     width: 10px; | ||||||
|  |  | ||||||
|  | @ -30,6 +30,8 @@ | ||||||
|              set_schema="loops.organize.tracking.access.IAccessRecord" /> |              set_schema="loops.organize.tracking.access.IAccessRecord" /> | ||||||
|   </zope:class> |   </zope:class> | ||||||
| 
 | 
 | ||||||
|  |   <zope:subscriber handler="cybertools.tracking.btree.unindexTrack" /> | ||||||
|  | 
 | ||||||
|   <zope:subscriber handler="loops.organize.tracking.change.recordModification" /> |   <zope:subscriber handler="loops.organize.tracking.change.recordModification" /> | ||||||
|   <zope:subscriber handler="loops.organize.tracking.change.recordAdding" /> |   <zope:subscriber handler="loops.organize.tracking.change.recordAdding" /> | ||||||
|   <zope:subscriber handler="loops.organize.tracking.change.recordAssignment" /> |   <zope:subscriber handler="loops.organize.tracking.change.recordAssignment" /> | ||||||
|  |  | ||||||
|  | @ -242,7 +242,15 @@ class TrackDetails(BaseView): | ||||||
| 
 | 
 | ||||||
|     @Lazy |     @Lazy | ||||||
|     def timeStamp(self): |     def timeStamp(self): | ||||||
|         value = datetime.fromtimestamp(self.track.timeStamp) |         return self.formatTimeStamp(self.track.timeStamp) | ||||||
|  |         #value = datetime.fromtimestamp(self.track.timeStamp) | ||||||
|  |         #return format.formatDate(value, 'dateTime', self.timeStampFormat, | ||||||
|  |         #                         self.view.languageInfo.language) | ||||||
|  | 
 | ||||||
|  |     def formatTimeStamp(self, ts): | ||||||
|  |         if not ts: | ||||||
|  |             return u'' | ||||||
|  |         value = datetime.fromtimestamp(ts) | ||||||
|         return format.formatDate(value, 'dateTime', self.timeStampFormat, |         return format.formatDate(value, 'dateTime', self.timeStampFormat, | ||||||
|                                  self.view.languageInfo.language) |                                  self.view.languageInfo.language) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -87,8 +87,8 @@ by calling the form controller's update method | ||||||
|   >>> request.setPrincipal(pJohn) |   >>> request.setPrincipal(pJohn) | ||||||
| 
 | 
 | ||||||
|   >>> from loops.browser.node import NodeView |   >>> from loops.browser.node import NodeView | ||||||
|   >>> view = NodeView(home, request) |   >>> nodeView = NodeView(home, request) | ||||||
|   >>> cwiController = CreateWorkItem(view, request) |   >>> cwiController = CreateWorkItem(nodeView, request) | ||||||
| 
 | 
 | ||||||
|   >>> cwiController.update() |   >>> cwiController.update() | ||||||
|   False |   False | ||||||
|  | @ -105,6 +105,11 @@ by calling the form controller's update method | ||||||
|   >>> view.taskUrl |   >>> view.taskUrl | ||||||
|   'http://127.0.0.1/loops/concepts/loops_dev/@@SelectedManagementView.html' |   'http://127.0.0.1/loops/concepts/loops_dev/@@SelectedManagementView.html' | ||||||
| 
 | 
 | ||||||
|  |   >>> from loops.organize.work.browser import WorkItemDetails | ||||||
|  |   >>> view = WorkItemDetails(nodeView, wi01) | ||||||
|  |   >>> view.start, view.end | ||||||
|  |   (u'08/12/28 19:00', u'20:15') | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| Fin de partie | Fin de partie | ||||||
| ============= | ============= | ||||||
|  |  | ||||||
|  | @ -75,6 +75,14 @@ class WorkItemDetails(TrackDetails): | ||||||
|     def description(self): |     def description(self): | ||||||
|         return self.track.description |         return self.track.description | ||||||
| 
 | 
 | ||||||
|  |     @Lazy | ||||||
|  |     def start(self): | ||||||
|  |         return self.formatTimeStamp(self.track.start) | ||||||
|  | 
 | ||||||
|  |     @Lazy | ||||||
|  |     def end(self): | ||||||
|  |         return self.formatTimeStamp(self.track.end)[-5:] | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| class WorkItemView(BaseTrackView): | class WorkItemView(BaseTrackView): | ||||||
| 
 | 
 | ||||||
|  | @ -121,7 +129,7 @@ class CreateWorkItem(EditObject, BaseTrackView): | ||||||
|             v = form.get(k) |             v = form.get(k) | ||||||
|             if v: |             if v: | ||||||
|                 result[k] = v |                 result[k] = v | ||||||
|         for k in ('description', 'comment'): |         for k in ('title', 'description', 'comment'): | ||||||
|             setValue(k) |             setValue(k) | ||||||
|         startDate = form.get('start_date') |         startDate = form.get('start_date') | ||||||
|         startTime = form.get('start_time') |         startTime = form.get('start_time') | ||||||
|  |  | ||||||
|  | @ -8,8 +8,6 @@ | ||||||
|   <zope:class class="loops.organize.work.base.WorkItem"> |   <zope:class class="loops.organize.work.base.WorkItem"> | ||||||
|     <require permission="zope.View" |     <require permission="zope.View" | ||||||
|              interface="cybertools.organize.work.IWorkItem" /> |              interface="cybertools.organize.work.IWorkItem" /> | ||||||
|     <require permission="zope.View" |  | ||||||
|              attributes="getName" /> |  | ||||||
|     <require permission="zope.ManageContent" |     <require permission="zope.ManageContent" | ||||||
|              set_schema="cybertools.organize.work.IWorkItem" /> |              set_schema="cybertools.organize.work.IWorkItem" /> | ||||||
|   </zope:class> |   </zope:class> | ||||||
|  |  | ||||||
|  | @ -9,39 +9,53 @@ | ||||||
|   <h2 i18n:translate="">Work Items</h2> |   <h2 i18n:translate="">Work Items</h2> | ||||||
|   <metal:workitems define-macro="workitems_listing" |   <metal:workitems define-macro="workitems_listing" | ||||||
|                    tal:define="workItems nocall:workItems|nocall:view/workItems;"> |                    tal:define="workItems nocall:workItems|nocall:view/workItems;"> | ||||||
|  |     <table class="listing"> | ||||||
|  |       <tr> | ||||||
|  |         <th i18n:translate="">Title</th> | ||||||
|  |         <th i18n:translate="">User</th> | ||||||
|  |         <th i18n:translate="">Start</th> | ||||||
|  |         <th i18n:translate="">End</th> | ||||||
|  |       </tr> | ||||||
|       <tal:workitem tal:repeat="workItem workItems/allWorkItems"> |       <tal:workitem tal:repeat="workItem workItems/allWorkItems"> | ||||||
|       <br /> |         <tr tal:attributes="class python: | ||||||
|       <div class="comment"> |                                 repeat['workItem'].odd() and 'even' or 'odd'"> | ||||||
|         <h3> |           <td> | ||||||
|           <span tal:content="workItem/description">Subject</span></h3> |             <span tal:content="workItem/track/title">Title</span></td> | ||||||
|         <div class="info"> |           <td> | ||||||
|           <span tal:replace="workItem/user/title">John</span>, |             <span tal:replace="workItem/user/title">John</span></td> | ||||||
|           <span tal:replace="workItem/timeStamp">2007-03-30</span> |           <td class="nowrap"> | ||||||
|         </div> |             <span tal:replace="workItem/start">2007-03-30</span></td> | ||||||
|       </div> |           <td class="nowrap"> | ||||||
|  |             <span tal:replace="workItem/end">2007-03-30</span></td> | ||||||
|  |         </tr> | ||||||
|       </tal:workitem> |       </tal:workitem> | ||||||
|  |     </table> | ||||||
|   </metal:workitems> |   </metal:workitems> | ||||||
| </metal:work> | </metal:work> | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| <metal:block define-macro="create_workitem"> | <metal:block define-macro="create_workitem"> | ||||||
|     <form method="post" |     <form method="post" id="addWorkitem_form" class="dialog" | ||||||
|           id="addWorkitem_form" class="dialog" |  | ||||||
|           dojoType="dijit.form.Form"> |           dojoType="dijit.form.Form"> | ||||||
|       <input type="hidden" name="form.action" value="create_workitem" /> |       <input type="hidden" name="form.action" value="create_workitem" /> | ||||||
|       <input type="hidden" name="workitem.action" value="finish" /> |       <input type="hidden" name="workitem.action" value="finish" /> | ||||||
|       <div class="heading" i18n:translate="">Add Work Item</div> |       <div class="heading" i18n:translate="">Add Work Item</div> | ||||||
|       <div> |       <div> | ||||||
|         <label i18n:translate="" |         <label i18n:translate="" for="title">Title</label> | ||||||
|                for="description">Description</label> |         <div> | ||||||
|  |           <input name="title" id="title" | ||||||
|  |                  dojoType="dijit.form.ValidationTextBox" required | ||||||
|  |                  style="width: 60em" /></div> | ||||||
|  |       </div> | ||||||
|  |       <div> | ||||||
|  |         <label i18n:translate="" for="description">Description</label> | ||||||
|         <div> |         <div> | ||||||
|           <textarea name="description" cols="80" rows="4" id="description" |           <textarea name="description" cols="80" rows="4" id="description" | ||||||
|                     dojoType="dijit.form.SimpleTextarea" |                     dojoType="dijit.form.SimpleTextarea" | ||||||
|                     style="width: 60em"></textarea></div> |                     style="width: 60em"></textarea></div> | ||||||
|       </div> |       </div> | ||||||
|       <div> |       <div> | ||||||
|             <label i18n:translate="" |             <label i18n:translate="" for="start-end">Start - End</label> | ||||||
|                    for="start-end">Start - End</label> |  | ||||||
|             <div id="start-end"> |             <div id="start-end"> | ||||||
|               <input type="text" name="start_date" style="width: 8em" |               <input type="text" name="start_date" style="width: 8em" | ||||||
|                      dojoType="dijit.form.DateTextBox" |                      dojoType="dijit.form.DateTextBox" | ||||||
|  | @ -63,8 +77,7 @@ | ||||||
|                      regexp="[0-9]{1,2}(:[0-5][0-9]){0,1}" /></div> |                      regexp="[0-9]{1,2}(:[0-5][0-9]){0,1}" /></div> | ||||||
|       </div> |       </div> | ||||||
|       <div> |       <div> | ||||||
|         <label i18n:translate="" |         <label i18n:translate="" for="comment">Comment</label> | ||||||
|                for="comment">Comment</label> |  | ||||||
|         <div> |         <div> | ||||||
|           <textarea name="comment" cols="80" rows="4" id="comment" |           <textarea name="comment" cols="80" rows="4" id="comment" | ||||||
|                     dojoType="dijit.form.SimpleTextarea" |                     dojoType="dijit.form.SimpleTextarea" | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 helmutm
						helmutm