From 3db84cf21520a6386a4b3cf4484b49502932ea1c Mon Sep 17 00:00:00 2001 From: "James E. Blair" Date: Mon, 27 Nov 2017 11:47:04 -0800 Subject: [PATCH] Fix creating new stories Look up the story by key, not id. Pre-fill the project if in the context of a project story list. Change-Id: I2a8ff647deee84a292d25e358ebf5c948a4374b8 --- boartty/app.py | 8 ++++++-- boartty/view/story.py | 11 +++++++++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/boartty/app.py b/boartty/app.py index c81fd42..b6528da 100644 --- a/boartty/app.py +++ b/boartty/app.py @@ -774,7 +774,11 @@ class App(object): return ret def newStory(self): - dialog = view_story.NewStoryDialog(self) + if hasattr(self.frame.body, 'project_key'): + project_key = self.frame.body.project_key + else: + project_key = None + dialog = view_story.NewStoryDialog(self, project_key) urwid.connect_signal(dialog, 'save', lambda button: self.saveNewStory(dialog)) urwid.connect_signal(dialog, 'cancel', @@ -793,7 +797,7 @@ class App(object): description=dialog.description_field.edit_text, pending=True) task = story.addTask( - project=session.getProjectByID(dialog.project_button.key), + project=session.getProject(dialog.project_button.key), title=dialog.title_field.edit_text, pending=True) diff --git a/boartty/view/story.py b/boartty/view/story.py index 0aec955..3931cff 100644 --- a/boartty/view/story.py +++ b/boartty/view/story.py @@ -39,7 +39,7 @@ except AttributeError: class NewStoryDialog(urwid.WidgetWrap, mywid.LineBoxTitlePropertyMixin): signals = ['save', 'cancel'] - def __init__(self, app): + def __init__(self, app, project_key): self.app = app save_button = mywid.FixedButton(u'Save') cancel_button = mywid.FixedButton(u'Cancel') @@ -53,7 +53,14 @@ class NewStoryDialog(urwid.WidgetWrap, mywid.LineBoxTitlePropertyMixin): ('pack', cancel_button)] buttons = urwid.Columns(buttons, dividechars=2) - self.project_button = ProjectButton(self.app) + if project_key: + with self.app.db.getSession() as session: + project = session.getProject(project_key) + project_name = project.name + else: + project_name = None + + self.project_button = ProjectButton(self.app, project_key, project_name) self.title_field = mywid.MyEdit(u'', edit_text=u'', ring=app.ring) self.description_field = mywid.MyEdit(u'', edit_text='', multiline=True, ring=app.ring)