Added ability to create tasks in project view
This commit is contained in:
23
cmdasana.py
23
cmdasana.py
@@ -74,9 +74,11 @@ class CmdAsana:
|
|||||||
self.state = json.loads(f.readline())
|
self.state = json.loads(f.readline())
|
||||||
f.close()
|
f.close()
|
||||||
except IOError:
|
except IOError:
|
||||||
|
workspace_id = self.myWorkspaces()[0]['id']
|
||||||
self.state = {
|
self.state = {
|
||||||
'view': 'workspace',
|
'view': 'workspace',
|
||||||
'id': self.myWorkspaces()[0]['id']
|
'id': workspace_id,
|
||||||
|
'workspace_id': workspace_id
|
||||||
}
|
}
|
||||||
|
|
||||||
def myWorkspaces(self):
|
def myWorkspaces(self):
|
||||||
@@ -102,8 +104,17 @@ class CmdAsana:
|
|||||||
self.client.tasks.update(task_id, completed=True)
|
self.client.tasks.update(task_id, completed=True)
|
||||||
|
|
||||||
def newTask(self):
|
def newTask(self):
|
||||||
task = self.client.tasks.create_in_workspace(self.workspace_id,
|
if self.state['view'] == 'project':
|
||||||
assignee=self.me['id'])
|
task = self.client.tasks.create_in_workspace(
|
||||||
|
self.state['workspace_id'],
|
||||||
|
projects=[self.state['id']]
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
task = self.client.tasks.create_in_workspace(
|
||||||
|
self.state['workspace_id'],
|
||||||
|
assignee=self.me['id']
|
||||||
|
)
|
||||||
|
|
||||||
task_list,_ = self.frame.contents[1]
|
task_list,_ = self.frame.contents[1]
|
||||||
task_list.insertNewTask(task)
|
task_list.insertNewTask(task)
|
||||||
|
|
||||||
@@ -124,11 +135,11 @@ class CmdAsana:
|
|||||||
def showMyTasks(self, workspace_id):
|
def showMyTasks(self, workspace_id):
|
||||||
self.state['view'] = 'atm'
|
self.state['view'] = 'atm'
|
||||||
self.state['id'] = workspace_id
|
self.state['id'] = workspace_id
|
||||||
|
self.state['workspace_id'] = workspace_id
|
||||||
|
|
||||||
task_list = ui.TaskList(self.allMyTasks(workspace_id))
|
task_list = ui.TaskList(self.allMyTasks(workspace_id))
|
||||||
self.connectTaskListSignals(task_list)
|
self.connectTaskListSignals(task_list)
|
||||||
self.replaceBody(task_list)
|
self.replaceBody(task_list)
|
||||||
self.workspace_id = workspace_id
|
|
||||||
|
|
||||||
def showProject(self, project_id):
|
def showProject(self, project_id):
|
||||||
self.state['view'] = 'project'
|
self.state['view'] = 'project'
|
||||||
@@ -141,6 +152,7 @@ class CmdAsana:
|
|||||||
def showProjectList(self, workspace_id):
|
def showProjectList(self, workspace_id):
|
||||||
self.state['view'] = 'workspace'
|
self.state['view'] = 'workspace'
|
||||||
self.state['id'] = workspace_id
|
self.state['id'] = workspace_id
|
||||||
|
self.state['workspace_id'] = workspace_id
|
||||||
|
|
||||||
self.workspace_id = workspace_id
|
self.workspace_id = workspace_id
|
||||||
project_list = ui.ProjectList(self.allMyProjects())
|
project_list = ui.ProjectList(self.allMyProjects())
|
||||||
@@ -158,9 +170,6 @@ class CmdAsana:
|
|||||||
urwid.connect_signal(task_details, 'loadproject', self.showProject)
|
urwid.connect_signal(task_details, 'loadproject', self.showProject)
|
||||||
self.replaceBody(task_details)
|
self.replaceBody(task_details)
|
||||||
|
|
||||||
def refreshTaskList(self):
|
|
||||||
self.showWorkspace(self.workspace_id)
|
|
||||||
|
|
||||||
def registerSignals(self):
|
def registerSignals(self):
|
||||||
urwid.register_signal(ui.TaskList, [
|
urwid.register_signal(ui.TaskList, [
|
||||||
'complete',
|
'complete',
|
||||||
|
|||||||
4
ui.py
4
ui.py
@@ -97,9 +97,9 @@ class TaskList(urwid.ListBox):
|
|||||||
task_widget = TaskEdit(task, mode=EDIT)
|
task_widget = TaskEdit(task, mode=EDIT)
|
||||||
self.connectSignals(task_widget)
|
self.connectSignals(task_widget)
|
||||||
index = self.focus_position + 1
|
index = self.focus_position + 1
|
||||||
style = 'section' if task['name'][-1] == ':' else 'task'
|
|
||||||
self.body.insert(index,
|
self.body.insert(index,
|
||||||
urwid.AttrMap(task_widget, style, focus_map='selected'))
|
urwid.AttrMap(task_widget, 'task',
|
||||||
|
focus_map='selected'))
|
||||||
self.focus_position += 1
|
self.focus_position += 1
|
||||||
|
|
||||||
def connectSignals(self, task_widget):
|
def connectSignals(self, task_widget):
|
||||||
|
|||||||
Reference in New Issue
Block a user