tags in task search
This commit is contained in:
parent
c6eda66e1b
commit
02658555d7
2 changed files with 12 additions and 7 deletions
12
model.py
12
model.py
|
@ -20,7 +20,12 @@ class Model:
|
||||||
return self.conn.execute(query, tag_name)
|
return self.conn.execute(query, tag_name)
|
||||||
|
|
||||||
def get_all_tasks(self):
|
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)
|
return self.conn.execute(query)
|
||||||
|
|
||||||
|
@ -54,9 +59,8 @@ class Model:
|
||||||
WHERE tt.task_id = ?
|
WHERE tt.task_id = ?
|
||||||
'''
|
'''
|
||||||
tags = cursor.execute(tquery, (task['id'],))
|
tags = cursor.execute(tquery, (task['id'],))
|
||||||
task['tags'] = []
|
task['tags'] = [t for t in tags]
|
||||||
for tag in tags:
|
task['tag_names'] = [t['name'] for t in tags]
|
||||||
task['tags'].append(tag)
|
|
||||||
|
|
||||||
return task
|
return task
|
||||||
|
|
||||||
|
|
7
task.py
7
task.py
|
@ -1,6 +1,7 @@
|
||||||
import re
|
import re
|
||||||
import sys
|
import sqlite3
|
||||||
import subprocess
|
import subprocess
|
||||||
|
import sys
|
||||||
import tempfile
|
import tempfile
|
||||||
|
|
||||||
from pyfzf.pyfzf import FzfPrompt
|
from pyfzf.pyfzf import FzfPrompt
|
||||||
|
@ -22,7 +23,7 @@ class Task:
|
||||||
tasksData = self.model.get_all_tasks()
|
tasksData = self.model.get_all_tasks()
|
||||||
|
|
||||||
for t in tasksData:
|
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)
|
selected = self.fzf.prompt(tasks)
|
||||||
if selected:
|
if selected:
|
||||||
|
@ -174,7 +175,7 @@ Created: %s ''' % (task['aid'], tags, long_term, task['created_at'])
|
||||||
def add_tags(self, aid):
|
def add_tags(self, aid):
|
||||||
task = self.model.get_task(aid)
|
task = self.model.get_task(aid)
|
||||||
unlinked_tags = self.model.get_tags_not_in_task(task['id'])
|
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)
|
print(bcolors.FAIL + 'Where is no more unlinked tags left...' + bcolors.ENDC)
|
||||||
self.manage_task(aid)
|
self.manage_task(aid)
|
||||||
|
|
||||||
|
|
Reference in a new issue