diff --git a/project.py b/project.py index 0adaeb2..541aeab 100644 --- a/project.py +++ b/project.py @@ -26,7 +26,8 @@ def handle_project(args, last_action, conn): sys.exit(0) if args[0].isdigit(): - view_project() + # TODO I see that in the original pit, this command set project as active! + view_project(int(args[0]), last_action.task_id, conn) sys.exit(0) # Use sys.exit when no add/update in Database @@ -177,7 +178,6 @@ def delete_project(project_id, conn): print('deleted project {}: {}'.format(project_id, 'project_name')) def list_project(active_project_id, conn): - logging.info('>> No arguments') query = """ SELECT id, username, name, status, (SELECT count(*) FROM task WHERE task.project_id = project.id) @@ -189,9 +189,35 @@ def list_project(active_project_id, conn): for row in cursor.fetchall(): logging.debug('Project row: {}'.format(row)) project_id, username, name, status, nb_task = row + # TODO Formatting track: https://stackoverflow.com/questions/9989334/create-nice-column-output-in-python print('{:1} {:2d}: ({:8}) | {} | {} ({} tasks)'.format('*' if active_project_id == project_id else '', project_id, username, status, name, nb_task)) -def view_project(): - print("TODO View Project") - #TODO \ No newline at end of file +def view_project(project_id, act_task_id, conn): + # FIXME duplicate with list_project + query = """ + SELECT id, username, name, status, + (SELECT count(*) FROM task WHERE task.project_id = project.id) + FROM project WHERE id = ?; + """ + + cursor = conn.cursor() + cursor.execute(query, (project_id,)) + row = cursor.fetchone() + print('* {:d}: ({}) {} (status: {}, {} tasks)'.format(*row)) + + # FIXME duplicate with list_task + query = """ + SELECT id, username, name, status, priority, date, time, + (SELECT count(*) FROM note WHERE note.task_id = task.id) + FROM task WHERE project_id = ? + """ + cursor.execute(query, (project_id,)) + for row in cursor.fetchall(): + logging.debug('Task row: {}'.format(row)) + task_id, username, name, status, priority, date, time, nb_note = row + message = date + time + name + print(' {} {:d}: ({}) [{}] [{}] {} ({} tasks)'.format('*' if act_task_id == row[0] else ' ', + task_id, username, status, priority, message, nb_note)) + + # TODO Add a -v option to see notes?