Show subtasks in details view
This commit is contained in:
13
cmdasana.py
13
cmdasana.py
@@ -270,10 +270,11 @@ class CmdAsana:
|
||||
def runInThread():
|
||||
task = self.client.tasks.find_by_id(task_id)
|
||||
stories = self.client.stories.find_by_task(task_id)
|
||||
update(task, stories)
|
||||
subtasks = self.client.tasks.subtasks(task_id)
|
||||
update(task, stories, subtasks)
|
||||
|
||||
def update(task, stories):
|
||||
task_details = ui.TaskDetails(task, stories)
|
||||
def update(task, stories, subtasks):
|
||||
task_details = ui.TaskDetails(task, stories, subtasks)
|
||||
self.connectDetailsSignals(task_details)
|
||||
self.replaceBody(task_details)
|
||||
|
||||
@@ -301,6 +302,9 @@ class CmdAsana:
|
||||
'updatetask',
|
||||
'usertypeahead',
|
||||
'assigntask',
|
||||
'complete',
|
||||
'newtask',
|
||||
'details',
|
||||
])
|
||||
|
||||
urwid.register_signal(ui.AssigneeTypeAhead, [
|
||||
@@ -339,6 +343,9 @@ class CmdAsana:
|
||||
urwid.connect_signal(task_details, 'updatetask', self.updateTask)
|
||||
urwid.connect_signal(task_details, 'usertypeahead', self.userTypeAhead)
|
||||
urwid.connect_signal(task_details, 'assigntask', self.assignTask)
|
||||
urwid.connect_signal(task_details, 'complete', self.completeTask)
|
||||
urwid.connect_signal(task_details, 'newtask', self.newTask)
|
||||
urwid.connect_signal(task_details, 'details', self.showDetails)
|
||||
|
||||
def handleInput(self, key):
|
||||
if key in ('q', 'Q'):
|
||||
|
||||
30
ui.py
30
ui.py
@@ -265,7 +265,7 @@ class AssigneeTypeAhead(urwid.Pile):
|
||||
self.edit.set_edit_text(user['name'])
|
||||
|
||||
class TaskDetails(urwid.ListBox):
|
||||
def __init__(self, task, stories):
|
||||
def __init__(self, task, stories, subtasks):
|
||||
self.task = task
|
||||
self.stories = stories
|
||||
|
||||
@@ -287,6 +287,19 @@ class TaskDetails(urwid.ListBox):
|
||||
projects = [ProjectIcon(project, self.loadProject)
|
||||
for project in task['projects']]
|
||||
|
||||
if task['parent'] != None:
|
||||
parent = TaskEdit(task['parent'])
|
||||
urwid.connect_signal(parent, 'updatetask', self.updateSubtask)
|
||||
urwid.connect_signal(parent, 'details', self.showDetails)
|
||||
projects.append(parent)
|
||||
|
||||
all_subtasks = [t for t in subtasks]
|
||||
subtask_list = TaskList(all_subtasks)
|
||||
urwid.connect_signal(subtask_list, 'complete', self.completeTask)
|
||||
urwid.connect_signal(subtask_list, 'newtask', self.newTask)
|
||||
urwid.connect_signal(subtask_list, 'updatetask', self.updateSubtask)
|
||||
urwid.connect_signal(subtask_list, 'details', self.showDetails)
|
||||
|
||||
body = projects + \
|
||||
[
|
||||
urwid.Divider('='),
|
||||
@@ -295,6 +308,8 @@ class TaskDetails(urwid.ListBox):
|
||||
urwid.Divider('-'),
|
||||
self.description_edit,
|
||||
urwid.Divider('-'),
|
||||
urwid.BoxAdapter(subtask_list, len(all_subtasks)),
|
||||
urwid.Divider('-'),
|
||||
] + \
|
||||
[urwid.Text('[' + story['created_by']['name'] + '] ' + \
|
||||
story['text']) for story in stories] + \
|
||||
@@ -302,6 +317,19 @@ class TaskDetails(urwid.ListBox):
|
||||
|
||||
super(TaskDetails, self).__init__(body)
|
||||
|
||||
def completeTask(self, task_id):
|
||||
urwid.emit_signal(self, 'complete', task_id)
|
||||
del self.body[self.focus_position]
|
||||
|
||||
def newTask(self, task_after_id=None):
|
||||
urwid.emit_signal(self, 'newtask', task_after_id)
|
||||
|
||||
def updateSubtask(self, task_id, name):
|
||||
urwid.emit_signal(self, 'updatetask', task_id, name)
|
||||
|
||||
def showDetails(self, task_id):
|
||||
urwid.emit_signal(self, 'details', task_id)
|
||||
|
||||
def keypress(self, size, key):
|
||||
key = super(TaskDetails, self).keypress(size, key)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user