From beff6ef2ddb863199bfac269d691ae16eb9b0745 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Mon, 16 Mar 2015 11:17:38 +0100 Subject: [PATCH] new fields: priority, activity --- organize/work/browser.py | 17 ++++++++++- organize/work/work_macros.pt | 55 +++++++++++++++++++++++++++--------- table.py | 13 +++++++++ 3 files changed, 71 insertions(+), 14 deletions(-) diff --git a/organize/work/browser.py b/organize/work/browser.py index 9678a83..ca8d058 100644 --- a/organize/work/browser.py +++ b/organize/work/browser.py @@ -524,7 +524,10 @@ class CreateWorkItemForm(ObjectForm, BaseTrackView): return [dict(name=util.getUidForObject(p), title=p.title) for p in persons] - taskTypes = ['task', 'event', 'agendaitem'] + @Lazy + def taskTypes(self): + return (self.globalOptions('organize.work.task_types') or + ['task', 'event', 'agendaitem']) @Lazy def followUpTask(self): @@ -544,6 +547,16 @@ class CreateWorkItemForm(ObjectForm, BaseTrackView): return [dict(name=util.getUidForObject(t), title=t.title) 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 def duration(self): if self.state == 'running': @@ -610,6 +623,8 @@ class CreateWorkItem(EditObject, BaseTrackView): result['deadline'] = parseDateTime('T'.join((deadline, deadlineTime))) else: result['deadline'] = None + result['priority'] = form.get('priority') + result['activity'] = form.get('activity') 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' diff --git a/organize/work/work_macros.pt b/organize/work/work_macros.pt index 80aa11e..abc9682 100644 --- a/organize/work/work_macros.pt +++ b/organize/work/work_macros.pt @@ -150,19 +150,48 @@ view.getUidForObject(view.followUpTask)" /> -
-
- -
- - -
+
+ +
+ + +
+
+ + + + + + + + +
+ +
+ + + +
diff --git a/table.py b/table.py index d381f34..d09c194 100644 --- a/table.py +++ b/table.py @@ -93,6 +93,19 @@ class DataTable(AdapterBase): self.context._data = OOBTree(data) 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,)