diff --git a/browser/concept_macros.pt b/browser/concept_macros.pt index d48f238..222fa28 100644 --- a/browser/concept_macros.pt +++ b/browser/concept_macros.pt @@ -3,14 +3,18 @@
- - - - - - - - + + + + + + + + + + + +
@@ -209,8 +213,9 @@
- 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