- work items: provide move action for assigning a work item to
another task - show work items (if present) for arbitrary concepts git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@4196 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
parent
7859555281
commit
080b3a79f5
11 changed files with 62 additions and 11 deletions
|
@ -6,6 +6,9 @@ $Id$
|
|||
1.1
|
||||
---
|
||||
|
||||
- work items: provide "move" action for assigning a work item to
|
||||
another task
|
||||
- show work items (if present) for arbitrary concepts
|
||||
- portal page with - now fully editable - portal links
|
||||
- calendar portlet
|
||||
|
||||
|
|
|
@ -452,6 +452,11 @@ class ConceptView(BaseView):
|
|||
return False
|
||||
return super(ConceptView, self).checkAction(name, category, target)
|
||||
|
||||
@Lazy
|
||||
def workItems(self):
|
||||
return component.getMultiAdapter((self.context, self.request),
|
||||
name='taskworkitems.html')
|
||||
|
||||
|
||||
class ConceptRelationView(ConceptView, BaseRelationView):
|
||||
|
||||
|
|
|
@ -13,6 +13,9 @@
|
|||
<metal:slot define-slot="resources">
|
||||
<metal:block use-macro="view/concept_macros/conceptresources" />
|
||||
</metal:slot>
|
||||
<metal:slot define-slot="workitems">
|
||||
<metal:block use-macro="view/work_macros/workitems" />
|
||||
</metal:slot>
|
||||
<metal:slot define-slot="querydata" />
|
||||
<metal:block use-macro="view/comment_macros/comments" />
|
||||
</div>
|
||||
|
|
|
@ -34,6 +34,13 @@ function showIf(node, value, targetName) {
|
|||
dojo.byId(targetName).style.display = display;
|
||||
}
|
||||
|
||||
function showIfIn(node, conditions) {
|
||||
dojo.forEach(conditions, function(cond) {
|
||||
var display = (node.value == cond[0]) ? 'inline' : 'none';
|
||||
dojo.byId(cond[1]).style.display = display;
|
||||
})
|
||||
}
|
||||
|
||||
function destroyWidgets(node) {
|
||||
dojo.forEach(dojo.query('[widgetId]', node), function(n) {
|
||||
w = dijit.byNode(n);
|
||||
|
|
Binary file not shown.
|
@ -3,7 +3,7 @@ msgstr ""
|
|||
|
||||
"Project-Id-Version: $Id$\n"
|
||||
"POT-Creation-Date: 2007-05-22 12:00 CET\n"
|
||||
"PO-Revision-Date: 2011-02-18 12:00 CET\n"
|
||||
"PO-Revision-Date: 2011-03-07 12:00 CET\n"
|
||||
"Last-Translator: Helmut Merz <helmutm@cy55.de>\n"
|
||||
"Language-Team: loops developers <helmutm@cy55.de>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -676,6 +676,12 @@ msgstr "Informationen über diese Aktivität."
|
|||
msgid "Edit work item."
|
||||
msgstr "Aktivität bearbeiten."
|
||||
|
||||
msgid "delegate_to_party"
|
||||
msgstr "an"
|
||||
|
||||
msgid "move_to_task"
|
||||
msgstr "nach"
|
||||
|
||||
msgid "new"
|
||||
msgstr "neu"
|
||||
|
||||
|
@ -703,6 +709,9 @@ msgstr "abgeschlossen"
|
|||
msgid "cancelled"
|
||||
msgstr "abgebrochen"
|
||||
|
||||
msgid "moved"
|
||||
msgstr "verschoben"
|
||||
|
||||
msgid "replaced"
|
||||
msgstr "ersetzt"
|
||||
|
||||
|
@ -727,6 +736,9 @@ msgstr "abbrechen"
|
|||
msgid "delegate"
|
||||
msgstr "delegieren"
|
||||
|
||||
msgid "move"
|
||||
msgstr "verschieben"
|
||||
|
||||
msgid "close"
|
||||
msgstr "abschließen"
|
||||
|
||||
|
|
|
@ -3,9 +3,6 @@
|
|||
|
||||
<metal:task define-macro="task">
|
||||
<metal:data use-macro="view/concept_macros/conceptdata">
|
||||
<metal:fill fill-slot="querydata">
|
||||
<metal:workitems use-macro="view/work_macros/workitems" />
|
||||
</metal:fill>
|
||||
</metal:data>
|
||||
</metal:task>
|
||||
|
||||
|
|
|
@ -142,7 +142,7 @@ only available for privileged users.
|
|||
>>> form.actions
|
||||
[{'name': 'plan', 'title': 'plan'}, {'name': 'accept', 'title': 'accept'},
|
||||
{'name': 'start', 'title': 'start working'}, {'name': 'work', 'title': 'work'},
|
||||
{'name': 'finish', 'title': 'finish'},
|
||||
{'name': 'finish', 'title': 'finish'}, {'name': 'move', 'title': 'move'},
|
||||
{'name': 'cancel', 'title': 'cancel'}, {'name': 'modify', 'title': 'modify'}]
|
||||
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2009 Helmut Merz helmutm@cy55.de
|
||||
# Copyright (c) 2011 Helmut Merz helmutm@cy55.de
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -217,7 +217,7 @@ 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',
|
||||
'finished', 'delegated', 'moved',
|
||||
'cancelled']
|
||||
elif state != 'all':
|
||||
result['state'] = state
|
||||
|
@ -348,6 +348,17 @@ class CreateWorkItemForm(ObjectForm, BaseTrackView):
|
|||
return [dict(name=util.getUidForObject(p), title=p.title)
|
||||
for p in persons]
|
||||
|
||||
@Lazy
|
||||
def tasks(self):
|
||||
tasks = []
|
||||
tnames = ['task', 'event']
|
||||
ttypes = [self.conceptManager.get(tname) for tname in tnames]
|
||||
for ttype in ttypes:
|
||||
if ttype is not None:
|
||||
tasks.extend(ttype.getChildren([self.typePredicate]))
|
||||
return [dict(name=util.getUidForObject(t), title=t.title)
|
||||
for t in tasks]
|
||||
|
||||
@Lazy
|
||||
def duration(self):
|
||||
if self.state == 'running':
|
||||
|
@ -411,6 +422,8 @@ class CreateWorkItem(EditObject, BaseTrackView):
|
|||
setValue(k)
|
||||
if action == 'delegate':
|
||||
setValue('party')
|
||||
if action == 'move':
|
||||
setValue('task')
|
||||
startDate = form.get('start_date', '').strip()
|
||||
startTime = form.get('start_time', '').strip().replace('T', '') or '00:00:00'
|
||||
endTime = form.get('end_time', '').strip().replace('T', '') or '00:00:00'
|
||||
|
|
|
@ -90,14 +90,16 @@
|
|||
<div>
|
||||
<label i18n:translate="" for="action">Action</label>
|
||||
<select name="workitem.action" id="action"
|
||||
onChange="showIf(this, 'delegate', 'party')">
|
||||
xonChange="showIf(this, 'delegate', 'party')"
|
||||
onChange="showIfIn(this, [['move', 'target_task'],
|
||||
['delegate', 'target_party']])">
|
||||
<option tal:repeat="action view/actions"
|
||||
tal:attributes="value action/name"
|
||||
tal:content="action/title"
|
||||
i18n:translate="" />
|
||||
</select>
|
||||
<span id="party" style="display: none">
|
||||
<label i18n:translate="" for="input_party"
|
||||
<span id="target_party" style="display: none">
|
||||
<label i18n:translate="delegate_to_party" for="input_party"
|
||||
style="display: inline">to</label>
|
||||
<select name="party" id="input_party">
|
||||
<option tal:repeat="cand view/candidates"
|
||||
|
@ -105,6 +107,15 @@
|
|||
tal:content="cand/title" />
|
||||
</select>
|
||||
</span>
|
||||
<span id="target_task" style="display: none">
|
||||
<label i18n:translate="move_to_task" for="input_task"
|
||||
style="display: inline">to</label>
|
||||
<select name="task" id="input_task">
|
||||
<option tal:repeat="cand view/tasks"
|
||||
tal:attributes="value cand/name"
|
||||
tal:content="cand/title" />
|
||||
</select>
|
||||
</span>
|
||||
</div>
|
||||
<div>
|
||||
<label i18n:translate="" for="start-end">Start - End</label>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2008 Helmut Merz helmutm@cy55.de
|
||||
# Copyright (c) 2011 Helmut Merz helmutm@cy55.de
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
|
Loading…
Add table
Reference in a new issue