diff options
author | Cody Hiar <codyfh@gmail.com> | 2018-03-23 21:00:18 -0600 |
---|---|---|
committer | Cody Hiar <codyfh@gmail.com> | 2018-03-23 21:00:18 -0600 |
commit | 1674709eaf04923b8dac4a13ef7661803a4e1c4d (patch) | |
tree | b5c8cd8745342e0e00b5df5bb1a18e213d0683e2 /cli.py | |
parent | e3fb796429c674f2b15a3320144ecd3fbf3139f0 (diff) |
Adding ability to add time record to task
Diffstat (limited to 'cli.py')
-rwxr-xr-x | cli.py | 24 |
1 files changed, 17 insertions, 7 deletions
@@ -25,32 +25,42 @@ def create_time_record(ac): completer = FuzzyCompleter(suggestions) text = prompt('(Project)> ', completer=completer) project = next(x for x in projects if x['name'] == text) - # Value + # Get Task + tasks = ac.get_tasks_by_project(project['id'])['tasks'] + suggestions = [x['name'] for x in tasks] + completer = FuzzyCompleter(suggestions) + text = prompt('(Task)> ', completer=completer) + if text: + task = next(x for x in tasks if x['name'] == text) + else: + task = None + # Get Value value = prompt('(Value)> ') # If integer is passed then treat it as minutes if ('.' not in value) and (':' not in value): value = float(value) / 60 - # Job Type + # Get Job Type job_types = ac.get_job_types() suggestions = [x['name'] for x in job_types] completer = FuzzyCompleter(suggestions) text = prompt('(Job Type)> ', completer=completer) job_type = next(x for x in job_types if x['name'] == text) - # Date + # Get Date completer = DateFuzzyCompleter() text = prompt('(Date)> ', completer=completer) choosen_date = datetime.datetime.strptime(text, '%a, %Y-%m-%d') - # Billable + # Get Billable billable_choices = {True: 1, False: 0} billable = confirm('(Billable (y/n))> ') billable = billable_choices[billable] - # Summary + # Get Summary summary = prompt('(Summary)> ', enable_open_in_editor=True) - # User + # Get User users = ac.get_users() user = next(x for x in users if x['email'] == ac.config.user) data = { 'value': value, + 'task_id': task['id'] if task else None, 'user_id': user['id'], 'job_type_id': job_type['id'], 'record_date': choosen_date.strftime('%Y-%m-%d'), @@ -181,5 +191,5 @@ def main(): if __name__ == '__main__': try: main() - except KeyboardInterrupt: + except (KeyboardInterrupt, EOFError): print('Have a nice day!') |