- Concept
+ tal:attributes="href python: view.getUrlForTarget(concept)">
+ Concept
(Type)
diff --git a/browser/loops.css b/browser/loops.css
index 9021d6d..cf8d3ad 100644
--- a/browser/loops.css
+++ b/browser/loops.css
@@ -398,6 +398,13 @@ div.comment {
padding-top: 0.4em;
}
+/* calendar, work items */
+
+.today {
+ color: #444488;
+ font-weight: bold;
+}
+
/* dojo stuff */
.dijitDialog {
diff --git a/browser/node.py b/browser/node.py
index fd5386e..1fb04b5 100644
--- a/browser/node.py
+++ b/browser/node.py
@@ -501,13 +501,6 @@ class NodeView(BaseView):
from loops.organize.work.browser import work_macros
return work_macros.macros
- @Lazy
- def workItems(self):
- target = self.virtualTargetObject
- if target is not None:
- return component.getMultiAdapter((target, self.request),
- name='taskworkitems.html')
-
# comments
@Lazy
diff --git a/organize/browser/task.py b/organize/browser/task.py
index 24ae088..7874586 100644
--- a/organize/browser/task.py
+++ b/organize/browser/task.py
@@ -46,5 +46,12 @@ organize_macros = ViewPageTemplateFile('view_macros.pt')
class TaskView(ConceptView):
- pass
+ @Lazy
+ def macro(self):
+ return organize_macros.macros['task']
+
+ @Lazy
+ def workItems(self):
+ return component.getMultiAdapter((self.context, self.request),
+ name='taskworkitems.html')
diff --git a/organize/browser/view_macros.pt b/organize/browser/view_macros.pt
index 86470c6..1d51494 100644
--- a/organize/browser/view_macros.pt
+++ b/organize/browser/view_macros.pt
@@ -1,6 +1,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/organize/work/browser.py b/organize/work/browser.py
index 33056a2..1530bb4 100644
--- a/organize/work/browser.py
+++ b/organize/work/browser.py
@@ -201,12 +201,9 @@ class BaseWorkItemsView(object):
state = form.get('wi_state') or self.options.wi_state
if not state:
result['state'] = ['planned', 'accepted', 'running', 'done', 'done_x',
- 'finished', 'delegated']
- else:
- if state == 'all':
- del result['state']
- else:
- result['state'] = state
+ 'finished', 'delegated']
+ elif state != 'all':
+ result['state'] = state
return result
def query(self, **criteria):
@@ -222,9 +219,14 @@ class TaskWorkItems(BaseWorkItemsView, ConceptView):
columns = set(['User', 'Title', 'Day', 'Start', 'End', 'Duration', 'Info'])
+ @Lazy
+ def target(self):
+ return self.context
+
def listWorkItems(self):
criteria = self.baseCriteria
- criteria['task'] = util.getUidForObject(self.context)
+ criteria['task'] = util.getUidForObject(self.target)
+ # TODO: option: include subtasks
return sorted(self.query(**criteria), key=lambda x: x.track.timeStamp)
diff --git a/organize/work/work_macros.pt b/organize/work/work_macros.pt
index 14f5292..474a1de 100644
--- a/organize/work/work_macros.pt
+++ b/organize/work/work_macros.pt
@@ -5,7 +5,7 @@
Work Items
@@ -25,12 +25,13 @@
tal:attributes="colspan python: len(work.columns)"
tal:content="row/month">2009-01
+ (repeat['row'].odd() and 'even' or 'odd')">
- 2007-03-30 |
+ tal:define="today python: row.isToday and ' today' or ''"
+ tal:attributes="title row/weekDay;
+ class string:nowrap center$today"
+ i18n:attributes="title"
+ tal:content="row/day">2007-03-30
17:30 |
20:00 |
2:30 |