diff --git a/tag.py b/tag.py index 1173767..ddc94d5 100644 --- a/tag.py +++ b/tag.py @@ -9,6 +9,7 @@ class Tag: self.model = Model() self.fzf = FzfPrompt() self.screen = Screen() + self.header = '' self.info = None diff --git a/task.py b/task.py index 33c62a8..41590da 100644 --- a/task.py +++ b/task.py @@ -1,19 +1,23 @@ import re import sqlite3 import subprocess -import sys import tempfile from pyfzf.pyfzf import FzfPrompt from model import Model from bcolors import bcolors +from screen import Screen class Task: def __init__(self): self.model = Model() self.fzf = FzfPrompt() + self.screen = Screen() + + self.header = '' + self.info = '' def search(self): tasks = [] @@ -32,18 +36,18 @@ class Task: if aid: self.edit_task(aid) else: - print(bcolors.FAIL + 'Task was not selected...' + bcolors.ENDC) + self.screen.add_fail('Task was not selected...') def add(self): - print(bcolors.HEADER + 'Adding task' + bcolors.ENDC) + self.screen.print_init('Adding task') description = input('Description: ') aid = self.model.create_task_draft(description) - print(bcolors.OKBLUE + '[task has been created]' + bcolors.ENDC) + self.screen.add_message('task has been created') self.manage_task(aid) def manage_task(self, aid): task = self.model.get_task(aid) - print(bcolors.HEADER + 'Managing task: [' + task['aid'] + '] ' + task['description'] + bcolors.ENDC) + self.header = 'Managing task: [' + task['aid'] + '] ' + task['description'] long_term = ' ' if task['long_term'] and task['long_term'] != 'FALSE': @@ -53,28 +57,46 @@ class Task: if task['tags']: tags = ' '.join([t['name'] for t in task['tags']]) - print('''%s + self.info = '''%s Description: %s Tags: [%s] Long Term: [%s] -Created: %s ''' % (task['aid'], task['description'], tags, long_term, task['created_at'])) +Created: %s ''' % (task['aid'], task['description'], tags, long_term, task['created_at']) if task['done'] and task['done'] != 'FALSE': - print(bcolors.OKGREEN + 'Finished: ' + task['finished_at'] + bcolors.ENDC) + self.info += bcolors.ENDC + bcolors.OKGREEN + '\nFinished: ' + task['finished_at'] if task['active'] and task['active'] != 'FALSE': - print(bcolors.WARNING + 'ACTIVE' + bcolors.ENDC) + self.info += bcolors.ENDC + bcolors.WARNING + '\nACTIVE' self.manage_task_menu(aid) def manage_task_menu(self, aid): - menu = input(bcolors.OKBLUE + '~task: ' + bcolors.OKGREEN + 'What you want to do? (?e*+-!v&><q) ' + bcolors.ENDC) + about = ''' +Short instruction +----------------- +? - help (this dialog) +e - edit content +* - toggle long term ++ - add tag +- - remove tag +! - toggle active +v - toggle done +x - delete task +& - add child task +> - go to child +< - back +q - exit + ''' + self.screen.change_path('~task', '?e*+-!v&><q', about, self.header, self.info) + menu = self.screen.print() if menu == 'q': - self.bye() + self.screen.bye() elif menu == '?': - self.manage_task_about(aid) + self.screen.activate_about() + self.manage_task_menu(aid) elif menu == 'e': self.edit_task(aid) @@ -98,28 +120,9 @@ Created: %s ''' % (task['aid'], task['description'], tags, long_term, task[' return else: - print(bcolors.FAIL + 'This is not implemented...' + bcolors.ENDC) + self.screen.add_fail('This is not implemented...') self.manage_task_menu(aid) - def manage_task_about(self, aid): - print(bcolors.WARNING + ''' -Short instruction ------------------ -? - help (this dialog) -e - edit content -* - toggle long term -+ - add tag -- - remove tag -! - toggle active -v - toggle done -x - delete task -& - add child task -> - go to child -< - back -q - exit - ''' + bcolors.ENDC) - self.manage_task_menu(aid) - def edit_task(self, aid): task = self.model.get_task(aid) @@ -170,29 +173,29 @@ Created: %s ''' % (task['aid'], tags, long_term, task['created_at']) found = True self.model.save_content(aid, content) - print(bcolors.OKBLUE + '[content has been saved]' + bcolors.ENDC) + self.screen.add_message('content has been saved') self.manage_task(aid) def toggle_long_term(self, aid): self.model.toggle_long_term(aid) - print(bcolors.OKBLUE + '[task has been updated]' + bcolors.ENDC) + self.screen.add_message('task has been updated') self.manage_task(aid) def toggle_active(self, aid): self.model.toggle_active(aid) - print(bcolors.OKBLUE + '[task has been activated]' + bcolors.ENDC) + self.screen.add_message('task has been activated') self.manage_task(aid) def toggle_done(self, aid): self.model.toggle_done(aid) - print(bcolors.OKBLUE + '[task has been updated]' + bcolors.ENDC) + self.screen.add_message('task has been updated') self.manage_task(aid) def add_tags(self, aid): task = self.model.get_task(aid) unlinked_tags = self.model.get_tags_not_in_task(task['id']) 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.screen.add_fail('Where is no more unlinked tags left...') self.manage_task(aid) tags = [t['name'] for t in unlinked_tags] @@ -200,15 +203,15 @@ Created: %s ''' % (task['aid'], tags, long_term, task['created_at']) selected = self.fzf.prompt(tags, '--multi --cycle') if selected: self.model.link_tags_to_task(task['id'], selected) - print(bcolors.OKBLUE + '[tags have been linked]' + bcolors.ENDC) + self.screen.add_message('tags have been linked') self.manage_task(aid) else: - print(bcolors.FAIL + 'Tag was not selected...' + bcolors.ENDC) + self.screen.add_fail('Tag was not selected...') def remove_tags(self, aid): task = self.model.get_task(aid) if not task['tags']: - print(bcolors.FAIL + 'Where is no tags linked...' + bcolors.ENDC) + self.screen.add_fail('Where is no tags linked...') self.manage_task(aid) tags = [t['name'] for t in task['tags']] @@ -216,11 +219,7 @@ Created: %s ''' % (task['aid'], tags, long_term, task['created_at']) selected = self.fzf.prompt(tags, '--multi --cycle') if selected: self.model.unlink_tags_from_task(task['id'], selected) - print(bcolors.OKBLUE + '[tags have been unlinked]' + bcolors.ENDC) + self.screen.add_message('tags have been unlinked') self.manage_task(aid) else: - print(bcolors.FAIL + 'Tag was not selected...' + bcolors.ENDC) - - def bye(self): - print(bcolors.FAIL + 'bye o/' + bcolors.ENDC) - sys.exit(0) + self.screen.add_fail('Tag was not selected...')