tags in task search

This commit is contained in:
Arnas Udovicius 2018-02-16 17:24:23 +02:00
parent c6eda66e1b
commit 02658555d7
2 changed files with 12 additions and 7 deletions

View file

@ -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

View file

@ -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)