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)