From 02658555d7f5f6bf0e7a8c228d4249683f31a4b6 Mon Sep 17 00:00:00 2001 From: Arnas Udovicius Date: Fri, 16 Feb 2018 17:24:23 +0200 Subject: [PATCH] tags in task search --- model.py | 12 ++++++++---- task.py | 7 ++++--- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/model.py b/model.py index 55ab220..de723d0 100644 --- a/model.py +++ b/model.py @@ -20,7 +20,12 @@ class Model: return self.conn.execute(query, tag_name) def get_all_tasks(self): - query = 'SELECT t.* FROM task t' + query = ''' + SELECT t.*, GROUP_CONCAT(g.name, ' ') AS tag_names FROM task t + LEFT JOIN tag_task tt ON tt.task_id = t.id + LEFT JOIN tag g ON g.id = tt.tag_id + GROUP BY t.id + ''' return self.conn.execute(query) @@ -54,9 +59,8 @@ class Model: WHERE tt.task_id = ? ''' tags = cursor.execute(tquery, (task['id'],)) - task['tags'] = [] - for tag in tags: - task['tags'].append(tag) + task['tags'] = [t for t in tags] + task['tag_names'] = [t['name'] for t in tags] return task diff --git a/task.py b/task.py index 5a5ca7c..4331155 100644 --- a/task.py +++ b/task.py @@ -1,6 +1,7 @@ import re -import sys +import sqlite3 import subprocess +import sys import tempfile from pyfzf.pyfzf import FzfPrompt @@ -22,7 +23,7 @@ class Task: tasksData = self.model.get_all_tasks() for t in tasksData: - tasks.append('%s: %s' % (t['aid'], t['description'])) + tasks.append('%s: %s [ %s ]' % (t['aid'], t['description'], t['tag_names'])) selected = self.fzf.prompt(tasks) if selected: @@ -174,7 +175,7 @@ Created: %s ''' % (task['aid'], tags, long_term, task['created_at']) def add_tags(self, aid): task = self.model.get_task(aid) unlinked_tags = self.model.get_tags_not_in_task(task['id']) - if len(unlinked_tags) == 0: + if type(unlinked_tags) is sqlite3.Cursor and unlinked_tags.rowcount == 0: print(bcolors.FAIL + 'Where is no more unlinked tags left...' + bcolors.ENDC) self.manage_task(aid)