new fields: priority, activity
This commit is contained in:
		
							parent
							
								
									2c112703a3
								
							
						
					
					
						commit
						beff6ef2dd
					
				
					 3 changed files with 71 additions and 14 deletions
				
			
		|  | @ -524,7 +524,10 @@ class CreateWorkItemForm(ObjectForm, BaseTrackView): | ||||||
|         return [dict(name=util.getUidForObject(p), title=p.title) |         return [dict(name=util.getUidForObject(p), title=p.title) | ||||||
|                     for p in persons] |                     for p in persons] | ||||||
| 
 | 
 | ||||||
|     taskTypes = ['task', 'event', 'agendaitem'] |     @Lazy | ||||||
|  |     def taskTypes(self): | ||||||
|  |         return (self.globalOptions('organize.work.task_types') or | ||||||
|  |                 ['task', 'event', 'agendaitem']) | ||||||
| 
 | 
 | ||||||
|     @Lazy |     @Lazy | ||||||
|     def followUpTask(self): |     def followUpTask(self): | ||||||
|  | @ -544,6 +547,16 @@ class CreateWorkItemForm(ObjectForm, BaseTrackView): | ||||||
|         return [dict(name=util.getUidForObject(t), title=t.title) |         return [dict(name=util.getUidForObject(t), title=t.title) | ||||||
|                     for t in tasks] |                     for t in tasks] | ||||||
| 
 | 
 | ||||||
|  |     @Lazy | ||||||
|  |     def priorities(self): | ||||||
|  |         prio = self.conceptManager.get('organize.work.priorities') | ||||||
|  |         return prio and adapted(prio).dataAsRecords or [] | ||||||
|  | 
 | ||||||
|  |     @Lazy | ||||||
|  |     def activities(self): | ||||||
|  |         act = self.conceptManager.get('organize.work.activities') | ||||||
|  |         return act and adapted(act).dataAsRecords or [] | ||||||
|  | 
 | ||||||
|     @Lazy |     @Lazy | ||||||
|     def duration(self): |     def duration(self): | ||||||
|         if self.state == 'running': |         if self.state == 'running': | ||||||
|  | @ -610,6 +623,8 @@ class CreateWorkItem(EditObject, BaseTrackView): | ||||||
|             result['deadline'] = parseDateTime('T'.join((deadline, deadlineTime))) |             result['deadline'] = parseDateTime('T'.join((deadline, deadlineTime))) | ||||||
|         else: |         else: | ||||||
|             result['deadline'] = None |             result['deadline'] = None | ||||||
|  |         result['priority'] = form.get('priority') | ||||||
|  |         result['activity'] = form.get('activity') | ||||||
|         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' | ||||||
|  |  | ||||||
|  | @ -150,19 +150,48 @@ | ||||||
|                       view.getUidForObject(view.followUpTask)" /> |                       view.getUidForObject(view.followUpTask)" /> | ||||||
|         </span> |         </span> | ||||||
|       </div> |       </div> | ||||||
|       <div> |       <div id="deadline" | ||||||
|         <div id="deadline" |            tal:condition="python:'deadline' in workItemType.fields"> | ||||||
|              tal:condition="python:'deadline' in workItemType.fields"> |         <label i18n:translate="" for="deadline-input">Deadline</label> | ||||||
|           <label i18n:translate="" for="deadline-input">Deadline</label> |         <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" /> | ||||||
|                    tal:attributes="value view/deadline" /> |           <input type="text" name="deadline_time" style="width: 6em" | ||||||
|             <input type="text" name="deadline_time" style="width: 6em" |                  dojoType="dijit.form.TimeTextBox" | ||||||
|                    dojoType="dijit.form.TimeTextBox" |                  tal:condition="view/deadlineWithTime" | ||||||
|                    tal:condition="view/deadlineWithTime" |                  tal:attributes="value view/deadlineTime" /> | ||||||
|                    tal:attributes="value view/deadlineTime" /> |         </div> | ||||||
|           </div> |         <div id="priority-activity" | ||||||
|  |              tal:condition="python:'priority' in workItemType.fields or | ||||||
|  |                                    'activity' in workItemType.fields"> | ||||||
|  |           <table style="width: auto"> | ||||||
|  |             <tr> | ||||||
|  |               <td tal:condition="python:'priority' in workItemType.fields"> | ||||||
|  |                 <label i18n:translate="" for="priority">Priority</label></td> | ||||||
|  |               <td tal:condition="python:'activity' in workItemType.fields"> | ||||||
|  |                 <label i18n:translate="" for="activity">Activity</label></td> | ||||||
|  |             </tr> | ||||||
|  |             <tr> | ||||||
|  |               <td tal:condition="python:'priority' in workItemType.fields"> | ||||||
|  |                 <select name="priority" id="priority" | ||||||
|  |                         tal:define="value view/track/data/priority|nothing"> | ||||||
|  |                   <option tal:repeat="prio view/priorities" | ||||||
|  |                           tal:attributes="value prio/name; | ||||||
|  |                                           selected python:prio['name'] == value" | ||||||
|  |                           tal:content="prio/title" /> | ||||||
|  |                 </select> | ||||||
|  |               </td> | ||||||
|  |               <td tal:condition="python:'activity' in workItemType.fields"> | ||||||
|  |                 <select name="activity" id="activity" | ||||||
|  |                         tal:define="value view/track/data/activity|nothing"> | ||||||
|  |                   <option tal:repeat="act view/activities" | ||||||
|  |                           tal:attributes="value act/name; | ||||||
|  |                                           selected python:act['name'] == value" | ||||||
|  |                           tal:content="act/title" /> | ||||||
|  |                 </select> | ||||||
|  |               </td> | ||||||
|  |           </table> | ||||||
|         </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"> | ||||||
|  |  | ||||||
							
								
								
									
										13
									
								
								table.py
									
										
									
									
									
								
							
							
						
						
									
										13
									
								
								table.py
									
										
									
									
									
								
							|  | @ -93,6 +93,19 @@ class DataTable(AdapterBase): | ||||||
|         self.context._data = OOBTree(data) |         self.context._data = OOBTree(data) | ||||||
|     data = property(getData, setData) |     data = property(getData, setData) | ||||||
| 
 | 
 | ||||||
|  |     @property | ||||||
|  |     def dataAsRecords(self): | ||||||
|  |         result = [] | ||||||
|  |         for k, v in sorted(self.data.items()): | ||||||
|  |             item = {} | ||||||
|  |             for idx, c in enumerate(self.columns): | ||||||
|  |                 if idx == 0: | ||||||
|  |                     item[c] = k | ||||||
|  |                 else: | ||||||
|  |                     item[c] = v[idx-1] | ||||||
|  |             result.append(item) | ||||||
|  |         return result | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| TypeInterfaceSourceList.typeInterfaces += (IDataTable,) | TypeInterfaceSourceList.typeInterfaces += (IDataTable,) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue