From 67335db1e738338d742ee7efa0b276d022898f84 Mon Sep 17 00:00:00 2001 From: Nathan Delhaye Date: Mon, 20 Mar 2023 22:18:22 +0100 Subject: [PATCH 1/4] Add show tasks command --- asana_cli/cli.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/asana_cli/cli.py b/asana_cli/cli.py index 65769a6..56202e0 100644 --- a/asana_cli/cli.py +++ b/asana_cli/cli.py @@ -122,6 +122,9 @@ def get_tasks(project, section=None): tasks = get_paginated_json(f"https://app.asana.com/api/1.0/projects/{project_gid}/tasks?opt_expand=completed,memberships") return tasks +def get_task(gid): + return get(f"https://app.asana.com/api/1.0/tasks/{gid}") + @click.group() def main(): """ @@ -135,6 +138,9 @@ def main(): asana list sections --workspace="Personal Projects" --project="Test" asana list tasks --workspace="Personal Projects" --project="Test" --section="Column 1" + \b + asana show tasks --workspace="Personal Projects" --project="Test" --section="Column 1" + \b asana delete tasks --workspace="Personal Projects" --project="Test" --section="Column 1" @@ -190,6 +196,25 @@ def list_tasks(workspace, project, section): for task in tasks: print(json.dumps(task)) +# --------------------------------- +# show + +@main.group(name='show') +def show_(): + pass + +@show_.command(name='tasks') +@click.option('--workspace', required=True) +@click.option('--project', required=True) +@click.option('--section') +def show_tasks(workspace, project, section): + workspace_obj = get_workspace(workspace) + project_obj = get_project(project, workspace=workspace_obj) + section_obj = get_section(section, project=project_obj) if section else None + tasks = get_tasks(project_obj, section=section_obj) + for task in tasks: + print(json.dumps(get_task(task['gid']))) + # --------------------------------- # move From 36e2d7300d4537ad36f91489c2ec148b1cff361d Mon Sep 17 00:00:00 2001 From: Nathan Delhaye Date: Mon, 20 Mar 2023 22:51:32 +0100 Subject: [PATCH 2/4] add --subtasks to show tasks command --- asana_cli/cli.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/asana_cli/cli.py b/asana_cli/cli.py index 56202e0..fa36b01 100644 --- a/asana_cli/cli.py +++ b/asana_cli/cli.py @@ -125,6 +125,9 @@ def get_tasks(project, section=None): def get_task(gid): return get(f"https://app.asana.com/api/1.0/tasks/{gid}") +def get_subtasks(gid): + return get_paginated_json(f"https://app.asana.com/api/1.0/tasks/{gid}/subtasks") + @click.group() def main(): """ @@ -140,6 +143,7 @@ def main(): \b asana show tasks --workspace="Personal Projects" --project="Test" --section="Column 1" + asana show tasks --workspace="Personal Projects" --project="Test" --section="Column 1" --subtasks \b asana delete tasks --workspace="Personal Projects" --project="Test" --section="Column 1" @@ -207,13 +211,20 @@ def show_(): @click.option('--workspace', required=True) @click.option('--project', required=True) @click.option('--section') -def show_tasks(workspace, project, section): +@click.option('--subtasks', is_flag=True, default=False) +def show_tasks(workspace, project, section, subtasks): workspace_obj = get_workspace(workspace) project_obj = get_project(project, workspace=workspace_obj) section_obj = get_section(section, project=project_obj) if section else None tasks = get_tasks(project_obj, section=section_obj) - for task in tasks: - print(json.dumps(get_task(task['gid']))) + for task_obj in tasks: + task = get_task(task_obj['gid']) + if subtasks: + task['subtasks'] = [] + for subtask_obj in get_subtasks(task_obj['gid']): + task['subtasks'].append(get_task(subtask_obj['gid'])) + + print(json.dumps(task)) # --------------------------------- # move From 3ab5c955b3d30a38ea98369515bef8e1976ea369 Mon Sep 17 00:00:00 2001 From: Nathan DELHAYE Date: Fri, 24 Mar 2023 20:51:41 +0100 Subject: [PATCH 3/4] Add documentation --- README.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.rst b/README.rst index 6e9c68e..b1ad500 100644 --- a/README.rst +++ b/README.rst @@ -28,6 +28,9 @@ CLI asana list sections --workspace="Personal Projects" --project="Test" asana list tasks --workspace="Personal Projects" --project="Test" --section="Column 1" + asana show tasks --workspace="Personal Projects" --project="Test" --section="Column 1" + asana show tasks --workspace="Personal Projects" --project="Test" --section="Column 1" --subtasks + asana delete tasks --workspace="Personal Projects" --project="Test" --section="Column 1" asana mark tasks --workspace="Personal Projects" --project="Test" --section="Column 1" --completed From 50a2ec2d1ebf061162834f931000584cfecd2eb8 Mon Sep 17 00:00:00 2001 From: Nathan DELHAYE Date: Fri, 24 Mar 2023 20:52:45 +0100 Subject: [PATCH 4/4] Bump version --- asana_cli/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/asana_cli/version.py b/asana_cli/version.py index ffcc925..156d6f9 100644 --- a/asana_cli/version.py +++ b/asana_cli/version.py @@ -1 +1 @@ -__version__ = '0.0.3' +__version__ = '0.0.4'